이전 포스팅에서는 최소제곱법을 활용하여 추정량을 추론하는 방법을 설명했다.
https://jangpiano-science.tistory.com/103?category=875432
최소제곱법으로 구한 추정량의 분포를 알아보기 위해선, 역시 오차에 대한 정규성이 전제되어야 한다. 따라서, 오차의 표준 정규 분포성에 대한 가정이 필요하다. 오차의 분포에 대한 가정에 의해, 반응변수가 정규분포를 따른다는 가정이 성립된다.
반응변수가 정규분포를 따르며, 서로 독립이면, 반응변수의 선형결합으로 표현되는 기울기 모수와 절편 모수의 추정량 역시 정규분포를 따른다.
오차의 분산이 알려지지 않은경우, 표본의 크기가 큰 경우에, 분산을 분산의 일치추정량(consistent estimator)인 MSE 로 대체하여 기울기 모수와 절편 모수의 추정량의 분포를 추정할 수 있다.
<B0과 B1의 추정량에 대한 구간추정>
두 추정량이 모수들의 비편향 추정량라는 사실과 두 추정량이 정규분포를 따른다는것을 조합하면, 기울기모수와 절편모수의 추정량의 표준화된 통계량은 자유도를 n-2로 하는 t-분포를 따른다.
<B0과 B1에 대한 가설검정>
기울기 모수와 절편 모수에 대한 검정통계량(test statistics)이 기각영역에 들어가면, 우리는 절편과 기울기의 모수에 대한 귀무가설(H0: B0과 B1에 대한 기존의 가설 )을 reject 한다. 즉, 유의수준(significance level)이 0.05 일때, B0과 B1에 대한 검정통계량의 절댓값이 기각값(critical value) 인 t(a/2, n-2) 보다 크게 나오면, 귀무가설(B0과 B1에 대한 추정) 을 기각한다.
<설명변수가 주어졌을때, 반응변수의 기댓값에 대한 신뢰구간>
설명변수가 주어졌을때, 반응변수의 기댓값 역시 추정량의 비편향성과 추정량의 정규성을 고려하여, 평균과 분산을 구해 t 분포를(자유도 n-2) 따르는 검정통계량(test statistics)을 구할 수 있다. 단, 반응변수의 기댓값의 추정량에 대한 분산을 구할때는, 앞선 포스팅에서 설명한 '대체 모형' (단순 선형 회귀 모형의 모든 x 값에서 x의 평균값을 뺀 모형이다. 즉, 기울기는 같은 상태에서, y 축을 x 의 표본평균만큼 오른쪽으로 이동한 모형)을 사용하는것이 용이하다.
<R>
#confidence interval for expected value of Y when X is given
conf_int_exp_Y = function(X,Y,x,a){
estimated_B0 = lm(Y~X)$coefficients[[1]]
estimated_B1 = lm(Y~X)$coefficients[[2]]
y_estimate = estimated_B1*x + estimated_B0
t_critical = abs(qt(a/2, length(X)-2))
MSE = anova(lm(Y~X))[2,3]
sample_mean = mean(X)
Sxx = (sum((X - sample_mean)^2))
lower_bound = y_estimate - t_critical * sqrt(MSE) * (1/length(X)+ (x-sample_mean)^2/Sxx)^0.5
upper_bound = y_estimate + t_critical * sqrt(MSE) * (1/length(X)+ (x-sample_mean)^2/Sxx)^0.5
return(c(lower_bound, upper_bound))
}
<설명변수가 주어졌을때, 반응변수의 새로운 관측값에 대한 신뢰구간>
설명변수가 주어졌을때, 반응변수의 새로운 관측값 역시 추정량의 비편향성과 추정량의 정규성을 고려하여, 평균과 분산을 구해 t 분포를(자유도 n-2) 따르는 검정통계량(test statistics)을 구할 수 있다. y 관측값에 대한 신뢰구간은 y의 기댓값에 대한 신뢰구간과 매우 유사함을 알 수 있다.
<R>
#confidence interval for Y when X is given
conf_int_Y = function(X,Y,x,a){
estimated_B0 = lm(Y~X)$coefficients[[1]]
estimated_B1 = lm(Y~X)$coefficients[[2]]
y_estimate = estimated_B1*x + estimated_B0
t_critical = abs(qt(a/2, length(X)-2))
MSE = anova(lm(Y~X))[2,3]
sample_mean = mean(X)
Sxx = (sum((X - sample_mean)^2))
lower_bound = y_estimate - t_critical * sqrt(MSE) * (1 + 1/length(X)+ (x-sample_mean)^2/Sxx)^0.5
upper_bound = y_estimate + t_critical * sqrt(MSE) * (1+ 1/length(X)+ (x-sample_mean)^2/Sxx)^0.5
return(c(lower_bound, upper_bound))
}
<분산의 신뢰구간>
MSE란 SSE(residual sum of error/ 잔차 제곱합)을 자유도(n-2) 로 나눈 값으로, 분산에 대한 일치추정량(consistent estimator)으로 쓰인다. MSE는 자유도를 n-2로 하는 카이제곱 분포로 표현될 수 있다.
https://jangpiano-science.tistory.com/105이 포스팅에서 MSE가 카이제곱분포를 따르게 된 자세한 증명을 찾을 수 있다.
*SSE = (n-2) MSE*
<R>
#confidence interval for variance
conf_int_var = function(X,Y,a){
#주의해야할 구간: chisquare(a/2, n-2) = qchisq(1-a/2, length(X)-2)
chi_square_critical_upper = qchisq(1-a/2, length(X)-2)
#주의해야할 구간: chisquare(1-a/2, n-2) = qchisq(a/2, length(X)-2)
chi_square_critical_lower = qchisq(a/2, length(X)-2)
MSE = anova(lm(Y~X))[3][[1]][2]
lower_bound = (length(X)-2)*MSE/chi_square_critical_upper
upper_bound = (length(X)-2)*MSE/chi_square_critical_lower
return(c(lower_bound, upper_bound))
}
> conf_int_var(X, Y, 0.05)
[1] 0.5212181 2.5740244
#chisquare 그래프에 대한 이해: https://jangpiano-science.tistory.com/33
'Statistics' 카테고리의 다른 글
[회귀] 다중회귀에서 조정된 회귀계수와 최종회귀식 R (0) | 2021.01.14 |
---|---|
[회귀] Lack of fit test with R/ Simple Linear regression/ 적합 결여 검정 / 단순 선형 회귀 (0) | 2021.01.13 |
[회귀] Anova in Simple regression /단순회귀 분산분석, 결정계수 (1) | 2021.01.10 |
[회귀] Method of least squares - 최소제곱법 / 단순 선형 회귀모형/ 특성 / 가우스 마코브 정리 (5) | 2021.01.03 |
Uniformly Most Powerful Test - Monotonic likelihood Ratio (0) | 2020.11.12 |