설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
선형회귀 (2)
엑셀로 통계하기 22 - 단순선형회귀(2)
반응형


단순선형회귀 (1)


  회귀분석은 변수 사이의 관계를 알아내는 통계 기법입니다. 독립변수를 통해 종속변수를 예측하는데, 독립변수와 종속변수가 각각 하나고 둘 사이 관계가 선형이라고 가정하는 회귀분석이 단순선형회귀입니다.

 

  지난 시간에는 (현실을 모델로 만든 회귀모형의 기댓값인 회귀식의 표본추정식인) 추정회귀식을 구해 봤습니다. 최고제곱법으로 식을 찾았습니다. 과연 이 식이 적합한지 영희를 예로 들어 설명했습니다. 이제 두 번째 질문, 과연 xy가 통계적으로 유의미한 관계인지 답해 보려고 합니다.

 

유의성 검정



단순선형회귀 모형




단순선형회귀 회귀식


  회귀식에 x값을 넣으면 y값이 나옵니다. 그런데 이 값은 y가 아닙니다. 정확히는 y의 기댓값이죠. 단순선형회귀 모형에는 오차항이 있는데, 오차항은 정규분포를 따릅니다. 따라서 y도 분포를 가지는 값입니다. 우리가 추세선으로 구하는 값은 y의 기댓값이었죠.


 

단순선형회귀모형에서 오차항에 대한 가정은 다음과 같습니다.


1) 오차항은 확률변수다.

2) 오차항은 모든 x마다 분산이 같다.

3) 오차항은 독립이다(어떤 x에 대한 오차항이 다른 x에 대한 오차항과 무관).

4) 오차항은 정규분포를 따른다.

 

  이 가정들, 특히 4번 가정 때문에 오차항을 포함하는 y도 확률변수처럼 행동합니다. 단순선형회귀분석에서 선을 긋고 x를 식에 넣어 구한 yy값이 아니라 y의 기댓값, 평균임을 다시 강조합니다. xy에 관계가 있는지 검사하는 과정에 이게 필요한가 싶지만, 곧 필요해집니다.

 

  이제 유의성 검정을 해 보죠. 유의성 검정은 두 변수가 과연 유의미한 관계인지 검사하는 과정입니다.



 

  회귀식에서 x의 기울기가 0이면, x가 있는 항은 통째로 0이 됩니다. x값이 y에 아무런 영향을 주지 못합니다. 그런데 관계가 있다고 말할 수 있을까요? 따라서 우리는 저 β1이 0인지 아닌지 판단해야 합니다. 유의성을 검정하는 방법은 크게 두 가지, t검정과 F검정이 있습니다.

 


잠깐. 두 가지 검정을 시작하기 전에 알아야 할 식


평균제곱오차(MSE) - SSE를 자유도로 나눈 값. 오차항 분산의 불편추정량



평균제곱오차의 제곱근은 추정값의 표준오차라고 부름.



 

t검정



1. 귀무가설과 대립가설을 세우고 유의수준을 정한다.




2. 회귀식 기울기(β1)의 표준편차를 구한다. β는 모집단 모수이므로 추정회귀식으로 추정해 구한다.




3. 검정통계량 t를 구한다.




4. 자유도 n-2인 스튜던트 t분포에서 절댓값이 검정통계량 이상인 양측 날개 면적을 p값으로 한다.




5. p값이 유의수준 이하면 귀무가설을 기각한다.


 

F검정



1. 귀무가설과 대립가설을 세우고 유의수준을 정한다.



2. 평균제곱회귀(MSR)를 구한다. SSR을 회귀자유도로 나눈 값으로, 회귀자유도는 일단 독립변수의 수라고 생각한다. 단순선형회귀에서 독립변수는 하나이므로 회귀자유도는 1이다.




3. F비를 구한다. MSR/MSE.




4. 자유도가 1, n-2F분포에서 F비 오른쪽의 날개 넓이를 p값으로 한다.




5. p값이 유의수준 이하면 귀무가설을 기각한다.

 

 

참고 : 독립변수가 하나라면 t검정과 F검정의 결과는 같습니다.

 

주의 : 통계적 유의성은 인과와 다릅니다.

 





신뢰구간과 예측구간



  추정회귀식도 세웠고, 식이 (영희보다) 적합한지도 검정했고, 두 변수가 통계적으로 유의미한 관계에 있는지도 파악했습니다. 이제 하루 공부 시간에 따른 기말고사 점수를 예측할 수 있을 겁니다.



 

  추정회귀식에 따르면 x=2.5일 때 y는 약 60.7입니다. 그럼 하루에 2.5시간 공부하는 학생은 기말고사 점수가 60.7이라고 말할 수 있을까요? 바로 결정하기 전에 짚고 넘어갑시다. ‘하루에 2.5시간 공부하는 학생은 누굽니까?

 


'하루에 2.5시간 공부하는 학생'의 뜻


1 : 하루에 2.5시간 공부하는 학생 전부. 따라서 하루에 2.5시간 공부하는 학생의 기말고사 점수는 이들 점수의 평균이다.


2 : 하루에 2.5시간 공부하는 특정 누군가. 예를 들어 2.5시간 공부하던 17살 김민수 학생의 기말고사 점수를 추정한다는 뜻이다.

 

1y값의 평균을 예측합니다. 2y 개별값을 예측합니다. 아시다시피 y는 값이 아니라 확률분포입니다. 따라서 뜻 1이든 2든 정해진 값이 아니라 범위, 구간을 구해야 합니다.

 

1은 표본회귀로 y값의 평균, 즉 모집단 회귀(E(y))를 추정합니다.

2는 표본회귀로 모집단 회귀를 넘어 실제 값을 추정합니다.





  상식적으로 뜻 2가 더 맞추기 어렵겠죠. 따라서 신뢰수준이 같다면 뜻 2로 구한 구간이 뜻 1로 구한 구간보다 넓을 수밖에 없습니다.

 

1로 구한 구간은 신뢰구간(Confidence interval),

2로 구한 구간은 예측구간(Prediction interval)이라고 합니다.

 

 

신뢰구간



  신뢰구간 공식은 다음과 같습니다.



 

신뢰구간 식에서 무얼 알 수 있을까요?


- xx평균과 같을 때 신뢰구간이 제일 좁습니다.

- 자료 크기 n이 클수록 신뢰구간이 좁습니다.

 

 

예측구간




  예측구간 공식은 다음과 같습니다.



 

예측구간 식에서 무얼 알 수 있을까요?


- 자료크기와 신뢰수준이 같다면 예측구간은 신뢰구간보다 넓습니다.(y 평균이 아니라 y 개별값을 구하기는 더 어려우니 같은 정확도가 필요할 때 범위는 더 넓겠죠.)

- 예측구간 역시 신뢰구간처럼 x가 평균일 때 제일 좁습니다.

 




 

엑셀에서 단순선형회귀 하기



  엑셀 회귀분석을 이용하면 추정회귀식, 결정계수, 추정값의 표준오차, t검정과 F검정 결과까지 전부 한 번에 볼 수 있습니다.



 

[데이터 분석] - [회귀분석]에 들어갑니다.



  x,y축 입력 범위, 신뢰수준을 입력합니다.

  '이름표'에 체크하면 맨 위 셀은 제목으로 취급합니다.

  '이름표'에 체크했으면 입력범위는 제목도 포함시켜야 합니다.




  '확인'을 누르면 회귀분석 결과가 나타납니다. 추정회귀식에 쓸 계수와 y절편, 결정계수, 표준 오차, t검정과 F검정 결과가 나타납니다. 보시다시피 t검정 p값과 F검정 p값이 똑같습니다.

반응형
  Comments,     Trackbacks
엑셀로 통계하기 21 - 단순선형회귀(1)
반응형








  오래 공부할수록 시험 성적이 높을까요? 키가 클수록 100m 달리기 기록도 빠를까요? 마트에 들르는 사람이 많을수록 매출도 높을까요?

 

  이 질문에 대답하려면 학생들의 공부 시간과 시험 점수를 조사하고, 사람들의 키와 달리기 기록을 재보고, 매일 마트에 들르는 사람을 세고 그날 매출을 알아봐야 합니다. 그런 다음 공부 시간과 시험 점수, 키와 달리기 기록, 들르는 사람 수와 매출 사이에 어떤 관계가 있는지 확인하면 됩니다. 그럼 공부하는 시간을 알면 시험점수를, 키를 알면 달리기 기록을, 들르는 손님 수를 알면 그날 매출을 추측할 수 있겠죠.

 

  이렇게 두 변수 사이 연관성을 알아내는 통계방법을 회귀분석(Regression Analysis)이라고 합니다. 단어 Regression에는 후퇴, 퇴보라는 뜻이 있습니다. 유전학자 프랜시스 골턴은 키가 큰 부모가 자식을 낳더라도 자식의 키가 더 커지는 쪽이 아니라 평균으로 되돌아간다는이론을 만들었습니다. 훗날 다른 학자들이 골턴의 이론을 수학이론으로 재정비했지만 회귀라는 단어는 살아남았습니다.

 

  학생의 공부시간과 시험점수 사이 관계를 안다면, 공부하는 시간으로 다음 시험 점수를 예측할 수 있습니다. 예측하려는 변수는 시험 점수고 예측에 사용하는 변수는 공부시간입니다. 시험 점수처럼 예측하려는 변수를 종속변수(dependent variable, 설명변수), 공부 시간처럼 예측에 사용하는 변수는 독립변수(independent variable)라고 부릅니다.

 

  제일 간단한 회귀분석은 종속변수 하나와 독립변수 하나만 있고, 둘 사이 관계는 1차함수처럼 직선 관계인 회귀겠죠. 이렇게 분석하는 것을 단순선형회귀(Simple linear regression)라고 합니다. 독립변수가 여럿인 분석, 관계가 선형이 아니라고 가정한 분석, 심지어 종속변수가 스칼라가 아니라 벡터라고 가정한 분석 등 회귀분석은 가정이 여러 가지입니다. 여러 가정을 시험해 보면서 두 변수 사이 관계를 알아내는 것이 중요하겠죠. 세상 모든 관계가 선형은 아니니까 말입니다. 이번 시간에는 제일 쉬운 단순선형회귀분석으로 두 변수 사이 관계를 밝혀 봅시다.

 


단순선형회귀



 

 

  학생 열 명에게 하루 평균 공부하는 시간과 이번 기말고사 점수를 물어봤습니다. x축을 공부 시간, y축을 기말고사 점수로 하는 그래프를 그리면 다음과 같습니다.



 

  사람에 따라 다르겠지만 두 변수 사이 관계는 꽤 직선처럼 보입니다. 정말 직선이라고 봐도 좋은지 단순선형회귀를 통해 분석해 보죠. 세상은 그대로 인식하기에는 너무 복잡합니다. 그래서 모델링이 필요합니다. ‘현실은 아마 이러이러할 것이다라는 가정이죠. 회귀분석에서 만드는 모델을 회귀모형(Regression model)이라고 합니다. 단순선형회귀 모형은 종속변수는 독립변수의 1차함수 + 오차입니다.


단순선형회귀 모형


 

  우리가 구해야 할 베타값은 모수(parameter), 뒤에는 오차항이 있습니다. 뒤에 설명하겠지만 오차항은 기댓값이 0인 정규분포를 따른다고 가정합니다. , 압니다. 실제 오차는 정규분포가 아니겠죠. 하지만 이건 모델이지 실제가 아닙니다.

 

  정규분포의 기댓값은 0이므로 y의 기댓값을 구할 때 오차항의 기댓값도 0이 되어 사라집니다. β는 상수니까 기댓값도 똑같습니다. 결국 xy의 기댓값 사이를 나타내는 식이 나오죠. 이걸 회귀식(Regression equation)이라고 합니다.


회귀식



  이 회귀식은 모집단을 설명합니다. 우리는 표본을 조사해서 회귀분석을 하니까, 회귀식을 알 수 없습니다. 마치 표본평균만 알 수 있고 모집단 평균은 추정만 할 수 있는 것과 비슷합니다. 우리는 y의 기댓값, 베타들을 알 수는 없고 추정만 할 수 있습니다. 이렇게 표본으로 추정한 회귀식을 뭐라고 할까요? 추정한 회귀식이니 추정회귀식(Estimated regression equation)이라고 하겠죠?


추정회귀식


 

  표본평균이 모집단 평균의 점추정량인 것처럼 추정회귀식에서 구한 y값은 ‘y의 기댓값(=E(y))의 점추정량입니다. 실제 세계를 알 수 없으니 모델을 만들고, 모델을 그대로 구하는 대신 모델의 기댓값을 구하고, 그 기댓값마저 표본으로 추정해야 합니다. 헷갈리지 마셨기를 빕니다.



 

  주의 : 척 보기에 직선이어도 사실 직선이 아닐 수 있습니다. 우리가 보는 부분은 아주 완만한 곡선 일부분이거나 딱 그 부분만 기울기가 작은 곡선 일부분일 수 있습니다. 그래서 자료의 x 범위를 벗어나는 x가 만드는 y값을 추정할 때는 조심해야 합니다.




 

최소제곱법


 


 

  우리가 구할 것은 모델도 아니고 기댓값을 적용한 모집단 회귀식도 아니고 그 모집단 회귀식의 추정회귀식입니다. 직선 하나 긋기 참 힘듭니다. 그럼 직선을 어떻게 그어야 할까요?실제 관찰한 값과 제일 비슷하게 그어야 합니다.” 맞습니다. 그런데 비슷하다의 기준이 무엇일까요? 철수가 그은 선과 민수가 그은 선이 있으면, 둘 중 어느 선이 자료를 더 잘 반영할까요?



 

  추정회귀식을 구하는 방법은 여러 가지가 있습니다. 그중 하나를 생각해 보죠. y값에는 실제 관측한 y값과 직선에 해당하는 y값이 있습니다. 이 둘의 차이가 작을수록 좋겠죠. 그럼 관측값과 추정값의 차이가 제일 작게 되는 직선이 최고의 직선이라고 생각해도 나쁘지 않겠죠.

 

  관측값이 더 크면 차이는 양수고 추정값이 더 크면 차이는 음수입니다. 양수와 음수가 상쇄할 수도 있으니까 차이를 제곱해서 합합니다. 마치 분산을 구하면서 자료와 평균의 차를 제곱하는 것과 비슷하죠. 이렇게 구한 편차제곱합이 최소가 되는 직선이 생기도록 추정회귀식을 구하는 방법을 최소제곱법(Method of Least Squares, 최소자승법)이라고 합니다. 최소제곱법에 따른 직선의 두 숫자, y절편과 기울기는 이미 공식이 있습니다.





 






 

엑셀에서 추세선 긋기




  엑셀에서 두 변수로 분산형 그래프를 제작한 다음, 그래프를 클릭해 맨 위 [차트 도구] - [디자인]으로 들어갑니다.




  왼쪽 [차트 요소 추가]에서 [추세선] - [선형]을 선택합니다.




엑셀 추세선 식 표시하기





  [차트 요소 추가] - [추세선] - [기타 추세선 옵션]에 들어가거나 그래프에 있는 추세선을 선택해 오른쪽 마우스 - [추세선 서식]에 들어갑니다. '수식을 차트에 표시'를 누르면 추정회귀선 식이 표시됩니다.



 

 

적합성 검정, 결정계수




 

  직선을 긋는다고 끝은 아닙니다. 최소제곱법으로 그었으니 오차제곱합은 최소겠지만 그게 자료를 잘 반영하느냐는 다른 문제입니다. 이걸 알려면 두 가지를 물어야 합니다.

 

질문 1) 이 추정회귀식이 xy의 관계를 잘 설명하나?

질문 2) 아니, xy가 애초에 관계가 있긴 하나?


먼저 첫 번째 질문부터 답해 봅시다. 영희라는 학생의 예를 들어 보죠.

 




  영희는 어제까지 친구랑 노느라 추정회귀식을 구하지 못했습니다. 다른 학생들이 추정회귀식을 구하고, 추정회귀식을 바탕으로 학생의 공부 시간으로 시험 점수를 추정하는 사이 영희는 낑낑대기만 합니다.





  영희는 그러던 중 시험점수 평균이 50임을 알게 됩니다. 빙고! 영희는 공부 시간에 상관없이 모든 시험점수를 50으로 추정합니다. y를 죄다 평균으로 추정하면 아주 많이 틀리지는 않을 테니까요.

 

  추정회귀식을 구한 학생들은 영희보다 정확할 겁니다. 아니, 영희보다 정확해야 합니다. 그렇지 않으면 회귀분석을 하는 의미가 없지 않겠습니까. 추정회귀식을 구한 학생들이 보람을 느끼게 하기 위해서라도 그들이 영희보다 정확하다는 걸 보여야 하겠죠.

 

  영희가 낸 오류(관측값과 영희가 만든 추정값의 차이)는 영희와 학생들의 차이와 학생들의 오류(추정회귀식의 오류)로 구성됩니다.

 


영희의 오류

=

영희와 학생들의 차이 + 추정회귀식이 낸 오류



수학적으로 말해...

관측값과 평균의 차이

=

추정값과 평균의 차이 + 관측값과 추정값의 차이

 



  이 식의 양변을 제곱해 총합을 구합니다. 관측값과 평균의 차이 제곱합은 총제곱합(SST), 관측값과 추정값의 차이 오차제곱합(SSE), 추정값과 평균의 차이 제곱합은 회귀제곱합(SSR)이라고 부릅니다.


 

  관측자료가 변하지 않는 이상 자료의 평균은 일정하고, 자료의 평균만으로 추정하는 영희의 오류도 일정합니다.




  이때 학생들이 구한 추정회귀식이 정확할수록 추정회귀식이 낸 오류는 줄어들고 영희와 학생들의 차이는 늘어납니다. 영희 오류에서 영희와 학생들의 차이가 차지하는 비율을 생각해 봅시다. 이 비율은 추정회귀식이 정확할수록 1에 가까워집니다.




  이 비율, SSR/SST는 추정회귀식의 적합성을 판단하는 수치 중 하나로 결정계수(Coefficient of determination)라고 부르며 R^2으로 씁니다.

 

R^2가 있다면 R도 있겠죠? 결정계수의 제곱근은 표본상관계수, 두 변수 사이의 선형관계를 나타냅니다.

 

 

엑셀 그래프에 결정계수 표시하기




  [차트 요소 추가] - [추세선] - [기타 추세선 옵션]에 들어가거나 그래프에 있는 추세선을 선택해 오른쪽 마우스 - [추세선 서식]에 들어갑니다. 'R-제곱 값을 차트에 표시'를 누르면 결정계수가 표시됩니다.




  글이 길어졌습니다. 다음 시간에는 두 번째 질문, 두 변수가 통계적으로 유의미한 관계인지 유의성 검정을 해 보겠습니다. 그리고 공부 시간이 2.5시간인 학생의 시험 점수는 얼마일지도 추정하겠습니다.



반응형
  Comments,     Trackbacks