본문 바로가기
Statistics

[회귀] 단순회귀분석에서의 구간추정과 가설검정

by jangpiano 2021. 1. 10.
반응형

이전 포스팅에서는 최소제곱법을 활용하여 추정량을 추론하는 방법을 설명했다.

https://jangpiano-science.tistory.com/103?category=875432

 

최소제곱법 - Method of least squares / 단순 선형 회귀모형/ 특성 / 가우스 마코브 정리

<단순 선형 회귀 모형 Simple Regression Model > 설명변수(X) 와 반응변수(Y) 의 관계성을 가지고, 설명변수 값만으로 반응변수값을 예측하는 학문인 회귀분석에서, 몇가지 가정들로 구성된 가장 간단

jangpiano-science.tistory.com

최소제곱법으로 구한 추정량의 분포를 알아보기 위해선, 역시 오차에 대한 정규성이 전제되어야 한다. 따라서, 오차의 표준 정규 분포성에 대한 가정이 필요하다. 오차의 분포에 대한 가정에 의해, 반응변수가 정규분포를 따른다는 가정이 성립된다.

반응변수가 정규분포를 따르며, 서로 독립이면, 반응변수의 선형결합으로 표현되는 기울기 모수와 절편 모수의 추정량 역시 정규분포를 따른다. 

오차의 분산이 알려지지 않은경우, 표본의 크기가 큰 경우에, 분산을 분산의 일치추정량(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

 

Chi-Square distribution

Chi-Square distribution Chi-Square distribution is a distribution with parameter n which is called 'degree of freedom.' The distribution is closely related to Normal distribution and Gamma distribut..

jangpiano-science.tistory.com

 

반응형