본문 바로가기
Data Science/Regression Analysis

[Regression] 회귀계수의 신뢰구간 및 검정 방법

by AI_Wooah 2022. 3. 30.

1. 단순회귀의 추정과 검정

기울기에 대한 추정값 $b_1$과 절편에 대한 추정값 $b_0$을 이용해 구간추정과 가설검정을 한다.

정규분포를 따른다고 가정할 수 있다.

따라서 관측되는 값들이 전부 회귀선과 가까이 있다면 분산의 추정값은 작아진다.

 

2. $\beta_1$의 신뢰구간

- 회귀계수 기울기 $\beta_1$의 추정량

- 기댓값, 분산

- $\sigma^2$의 추정값은 MSE에 의하여 구해짐

- $b_1$의 분산에 대한  추정값

- $\beta_1$의 신뢰계수 100(1-$\alpha$)% 신뢰구간

- 절편 $\beta_0$의 추정량

- 기댓값 및 분산

- $\beta_0$의 100(1-$\alpha$)%의 신뢰구간

 

3. R 결과에서 $\beta_1$과 $\beta_0$ 신뢰구간 구하기

> market.lm = lm(Y ~ X, data=market)
> summary(market.lm)

Call:
lm(formula = Y ~ X, data = market)

Residuals:
   Min     1Q Median     3Q    Max 
-3.600 -1.502  0.813  1.128  4.617 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -2.2696     3.2123  -0.707 0.499926    
X             2.6087     0.3878   6.726 0.000149 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.631 on 8 degrees of freedom
Multiple R-squared:  0.8497,	Adjusted R-squared:  0.831 
F-statistic: 45.24 on 1 and 8 DF,  p-value: 0.0001487

$\beta_1$의 95% 신뢰구간

> q.val=qt(0.975,13)
> 2.6087-q.val*0.3878
[1] 1.770909
> 2.6087+q.val*0.3878
[1] 3.446491

$\beta_0$의 95% 신뢰구간

> q.val=qt(0.975,13)
> -2.2696-q.val*3.2123
[1] -9.209352
> -2.2696+q.val*3.2123
[1] 4.670152

 

4. 추정값의 신뢰구간

어떤 주어진 값 X에서 Y의 기대값을

라고 하면, 이는 다음과 같이 추정된다.

1) 추정량$\hat Y$의 기댓값 및 분산

이렇게 유도한 식으로 신뢰구간을 구할 수 있다.

=> $\hat Y$의 분산은 X의 함수로서 $X=\bar X$일 경우에 최소가 되며,

$X=\bar X$를 대칭으로 X의 값이 $\bar X$에서 멀어질수록 분산이 커진다.

또한 표본의 크기 n이 커져도 Var($\hat Y$)이 작아지는 것을 알 수 있다.

 

2) 예측값의 신뢰구간

주어진 X의 값에서 새로운 예측값 $Y_{new}$의 신뢰구간

추정값에 대한 분산을 더해주게 되면 1만큼 커진다.

새로운 예측값 y의 신뢰구간은 오차항의 분산을 더해서 추정한다.

 

- 모집단 회귀모형의 오차항은 평균이 0이고 분산이 σ2인 정규분포를 따른다고 가정했을 때 회귀계수 α, β와 그 외 모수에 대해 추론할 수 있다.

 

3) 신뢰대 그리기

X의 주어진 값에서 신뢰대 그리기

> pred.frame = data.frame(X=seq(3.5, 14.5, 0.2))
> # 기댓값 신뢰구간
> pc = predict(market.lm, int="c", newdata=pred.frame)
> # 예측값 신뢰구간
> pp = predict(market.lm, int="p", newdata=pred.frame)
> head(pc, 3)
       fit      lwr      upr
1 6.860870 2.402421 11.31932
2 7.382609 3.084944 11.68027
3 7.904348 3.765982 12.04271
> head(pp, 3)
       fit         lwr      upr
1 6.860870 -0.66731914 14.38906
2 7.382609 -0.05148732 14.81670
3 7.904348  0.56119219 15.24750

위에서 구한 pp, pc로 x변수와 y변수의 산점도를 그린다.

범위를 충분히 잡아주기 위해서 range 사용한다.

 

> pred.X = pred.frame$X
> pred.X
 [1]  3.5  3.7  3.9  4.1  4.3  4.5  4.7  4.9  5.1  5.3  5.5  5.7  5.9  6.1  6.3  6.5  6.7  6.9  7.1
[20]  7.3  7.5  7.7  7.9  8.1  8.3  8.5  8.7  8.9  9.1  9.3  9.5  9.7  9.9 10.1 10.3 10.5 10.7 10.9
[39] 11.1 11.3 11.5 11.7 11.9 12.1 12.3 12.5 12.7 12.9 13.1 13.3 13.5 13.7 13.9 14.1 14.3 14.5
> plot(market$X, market$Y, ylim = range(market$Y, pp))
> matlines(pred.X, pc, lty=c(1,2,2), col='BLUE')
> matlines(pred.X, pp, lty=c(1,3,3), col='RED')

5. $\beta_1$의 검정

앞에서 분산에 대한 것을 구해봤고 이것을 이용하여 t 통계량을 구할 수 있다.

t 검정방법을 이용한 결과값이 크면 클수록 귀무가설을 기각하게 된다.

- $\beta_1$ 검정

> market.lm = lm(Y~X, data = market)
> summary(market.lm)

Call:
lm(formula = Y ~ X, data = market)

Residuals:
   Min     1Q Median     3Q    Max 
-3.600 -1.502  0.813  1.128  4.617 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -2.2696     3.2123  -0.707 0.499926    
X             2.6087     0.3878   6.726 0.000149 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.631 on 8 degrees of freedom
Multiple R-squared:  0.8497,	Adjusted R-squared:  0.831 
F-statistic: 45.24 on 1 and 8 DF,  p-value: 0.0001487

여기서 기울기 $\beta_1$의 추정값 $b_1 = 2.6087$, t-value는 2.6087/0.3878=6.726이다.

> # 기각역 및 p-value 구하기
> # 유의수준 0.05 자유도가 13인 기각역
> qt(0.975, 13)
[1] 2.160369
> # 유의확률 p-value
> 2*(1-pt(12.889, 13))
[1] 8.827548e-09

 

반응형

댓글