설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
엑셀 회귀분석 (1)
엑셀로 통계하기 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