14.6 회귀분석을 위한 R 통계 분석 도구 활용
학습 목표
이 절을 마치면 다음을 할 수 있습니다:
- R 통계 도구를 사용하여 상관계수를 구합니다.
- R 통계 도구를 사용하여 선형 회귀 모형을 만듭니다.
R 통계 도구를 사용한 상관계수 구하기
R은 금융 업계에서 널리 사용되는 오픈 소스 통계 분석 도구입니다. R은 무료 프로그램으로 제공되며, 데이터 분석, 그래프 작성, 통계 프로그래밍을 위한 통합 함수 모음을 제공합니다. R은 회귀분석을 위한 다양한 함수와 기능을 제공합니다.
R에서 대부분의 계산은 함수를 통해 처리된다는 점을 상기하십시오.
통계 응용에서 함수를 사용하는 일반적인 방법은 먼저 데이터 값으로 이루어진 벡터를 만드는 것입니다. R에서 벡터를 만드는 방법은 여러 가지가 있습니다. 예를 들어, 값들을 하나의 벡터로 결합할 때 c 함수가 자주 사용됩니다. 예를 들어, 다음 R 명령은 데이터 값 40,000, 50,000, 75,000, 92,000을 담은 salaries라는 벡터를 생성합니다:
> salaries <- c(40000, 50000, 75000, 92000)
상관계수 r을 계산하려면 cor라는 R 명령을 사용합니다.
예를 들어, 표 14.8의 데이터 집합을 생각해 봅시다. 이 데이터 집합은 7개월 동안의 S&P 500 수익과 코카콜라 주식 수익을 비교하여 추적합니다.
| 월 | S&P 500 월간 수익률(%) | 코카콜라 월간 수익률(%) |
|---|---|---|
| 1월 | 8 | 6 |
| 2월 | 1 | 0 |
| 3월 | 0 | -2 |
| 4월 | 2 | 1 |
| 5월 | -3 | -1 |
| 6월 | 7 | 8 |
| 7월 | 4 | 2 |
R에서 벡터 두 개를 만듭니다. 하나는 S&P 500 수익률 벡터이고, 다른 하나는 코카콜라 수익률 벡터입니다.
> SP500 <- c(8,1,0,2,-3,7,4)
> CocaCola <- c(6,0,-2,1,-1,8,2)
cor라는 R 명령은 x 데이터 벡터와 y 데이터 벡터(수익 데이터)의 상관계수를 반환합니다:
> cor(SP500, CocaCola)
R 통계 도구를 사용한 선형 회귀 모형 생성
상관이 유의하다고 가정할 때, R에서 선형 모형을 만들려면 lm(선형 모형) 명령을 사용합니다. 이 명령은 선형 회귀방정식의 기울기와 y절편을 제공합니다.
R 명령의 형식은 다음과 같습니다.
lm(dependent_variable_vector ~ independent_variable_vector)
종속변수 벡터와 독립변수 벡터 사이의 구분자로 물결표 기호를 사용한다는 점에 유의하십시오.
코카콜라 주식의 수익률을 종속변수로, S&P 500의 수익률을 독립변수로 사용하므로 R 명령은 다음과 같습니다.
> lm(CocaCola ~ SP500)
Call:
lm(formula = CocaCola ~ SP500)
Coefficients:
(Intercept) SP500
-0.3453 0.8641
R 출력 결과는 y절편의 값을 로, 기울기의 값을 0.8641로 제공합니다. 이를 바탕으로 한 선형 모형은 다음과 같습니다.
여기서 x는 S&P 500 수익률의 값을 나타내고, y는 코카콜라 주식 수익률의 값을 나타냅니다.
다음 R 명령을 사용하면 결과를 공식으로 저장하고 “model”이라는 이름을 붙일 수도 있습니다. 선형 회귀에 대한 더 자세한 결과를 얻으려면 다음과 같이 summary 명령을 사용할 수 있습니다.
> model <- lm(CocaCola ~ SP500)
> summary(model)
Call:
lm(formula = CocaCola ~ SP500)
Residuals:
1 2 3 4 5 6 7
-0.5672 -0.5188 -1.6547 -0.3828 1.9375 2.2969 -1.1109
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3453 0.7836 -0.441 0.67783
SP500 0.8641 0.1734 4.984 0.00416 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.658 on 5 degrees of freedom
Multiple R-squared: 0.8325, Adjusted R-squared: 0.7989
F-statistic: 24.84 on 1 and 5 DF, p-value: 0.004161
이 출력에는 y절편과 기울기뿐만 아니라 각 x 값에 대한 잔차도 제시됩니다. 출력에는 회귀분석에 관한 추가적인 통계 정보도 포함됩니다.
R에서는 예측값과 예측 구간도 생성할 수 있습니다.
먼저, 예측을 생성하고자 하는 독립변수의 값을 담기 위해 R에서 데이터 프레임이라는 구조를 만들 수 있습니다. 예를 들어, S&P 500의 수익률이 6일 때 코카콜라 주식의 예측 수익률을 생성하고자 한다고 합시다.
predict라는 R 명령을 사용합니다.
S&P 500의 값이 6인 데이터 프레임을 사용하여 model이라는 선형 회귀방정식에 대한 예측값을 생성하려면 R 명령은 다음과 같습니다.
> a <- data.frame(SP500=6)
> predict(model, a)
1
4.839062
predict 명령의 출력은 S&P 500의 수익률이 6%일 때 코카콜라 주식의 예측 수익률이 4.8%임을 나타냅니다.
다음 R 명령을 사용하여 이 분석을 확장하면 이 결과에 대한 95% 예측 구간을 생성할 수 있습니다. 이 명령은 predict 명령에 예측 구간을 생성하는 옵션을 추가합니다.
> predict(model,a, interval="predict")
fit lwr upr
1 4.839062 0.05417466 9.62395
따라서 S&P 500의 수익이 6%일 때 코카콜라 수익에 대한 95% 예측 구간은 (0.05%, 9.62%)입니다.