獨斷論

선형회귀분석 Linear Regression (SPSS 사용설명서 17) 본문

과학과 기술/SPSS

선형회귀분석 Linear Regression (SPSS 사용설명서 17)

부르칸 2015. 3. 28. 00:06

선형회귀분석이란 하나 이상의 독립변수로부터 종속변수의 값을 선형으로 모델링하는 것이다


독립변수는 영어로 여러가지 다른 말로 존재하는데 다음과 같다. 주로 많이 쓰는 단어를 굵게 표시하였다.

  • independent variables
  • predictor variables
  • explanatory variable
  • regressor
  • controlled variable, manipulated variable, exposure variable
  • risk factor(의학통계분야에서 쓰임)
  • feature와 input variable(machine learning에서 쓰임)


종속변수도 영어로 여러가지 다른말로 존재한다. 역시 많이 쓰는 단어를 굵게 표시하였다.

  • dependent variables
  • response variables 또는 responding variables
  • explained variable
  • regressand 
  • measured variables
  • outcome variable
  • experimental variable
  • output variable

잘 기억해두었다가 영문으로 된 통계책을 볼때 헷갈리지 말자.


일단 아래 파일을 내려받아서 SPSS에서 읽고 car_sales2.sav파일로 저장하자. 

car_sales2.csv


잘했다면 아래와 같이 나올것이다.

  • manufact는 제조사이고
  • model은 자동차의 모델명이고
  • sales는 판매수이고
  • type은 자동차가 승용차이냐 트럭이냐를 알려준다.
  • price는 자동차 가격
  • engine_s는 엔진의 용량
  • horsepow는 자동차의 마력
  • wheelbas는 앞바퀴와 뒷바퀴의 거리
  • width 차의 폭
  • length는 차의 길이
  • curb_wgt는 차에 아무것도 싣지 않고 엔진오일등만 넣었을때 차의 무게이다.
  • fuel_cap은 연료탱크의 용량
  • lnsales는 sales 변수를 log-transform한 것이다.

sales 변수의 값은 정규분포를 따르지 않으므로 정규분포에 더 가까운 lnsales를 종속변수로 두고 나머지 모든 변수를 독립변수로 설정하여 선형회귀분석을 실행한다(manufact와 model과 sales는 제외).


Analyze > Regression > Linear...를 클릭하면


아래와 같은 선형회귀분석을 위한 창이 뜬다.



선형회귀분석을 하려면 아래와 같은 절차를 따르면 된다.

1) 우선 Dependent에 lnsales를 설정한다. 

2) Independent에 type, price, ...중략...mpg를 설정한다. 

3) Statistics를 클릭하면 또하나의 대화창이 뜨는데

4) Part and partial correlations와 collinearity diagnostics를 클릭하고

5) Continue를 클릭후에 OK를 클릭하면 아래와 같은 결과를 얻을 수 있다.




독립변수로 사용된 변수명과 표 아래에 종속변수가 무엇인지를 보여주었다.

Method가 Enter라고 되어 있는 것은 어떤 변수가 사용되었는지 나타내주는데 여기서 stepwise regression을 실행하지 않았으므로 모든 변수가 사용되었다고 명기되어 있다.




R square 값이 0.486이므로 판매량 변동의 50% 정도를 설명해준다고 볼수 있다. 뭐 이정도면 괜찮은 모델링 결과이다.





이제 ANOVA table을 보면 F statistics 값이 13.3이고 p-value가 0.000이므로 모델은 통계적으로 의미가 있다는 것을 보여준다.


전체 모델이 괜찮아 보인다 할지라도 독립변수에 대한 각각의 계수 값을 따져보아야만 한다.



우선 p-value를 보면 0.05(또는 0.1)보다 큰값이 꽤 많다.

이는 모델을 구성하는데 있어서 별 쓸데 없는 독립변수가 들어갔다는 말이다.

그렇다면 어떤 독립변수가 lnsales를 예측하는게 가장 많이 기여하였을까?

이것은 Standardized Coefficients Beta를 보면 알수 있다. 

Standardized coefficients의 절대값이 클수록 예측모델에 기여를 많이 하는 것인데, price 변수는 표준화지 않았을때 그 값이 -0.045이지만 표준화하면 -0.502이므로 가장 큰 기여를 하는 것은 price라는 것을 알수있다. 


그 오른쪽으로 독립변수들간의 correlations과 collinearity statistics를 나타내는 표가 보인다.

변수 price는 zero order correlation이 크고 partial 또는 part correlation이 zero order correlation에 비하여 매우 작다. 이는 상당부분 price 이외의 다른변수에 의하여 lnsales가 설명될수 있다는 것을 의미한다.

이를 통계적으로 명확하게 알기위하여 VIF를 보면되는데 VIF란 variance inflation factor라는 말이다.

대개 VIF값이 2.0보다 클 경우에 collinearity가 문제를 일으킬수 있다고 하는데 위 표에서 모든 값이 2.0보다 크다. 


Collinearity를 보는 다른 방법을 알아보면



위 표에서 11개의 eigenvalue 값들 가운데 많은 값들이 0과 가깝다. 이것은 독립변수가 서로 독립이 아니라 correlation이 매우 크다는 것을 보여주며 작은 데이터값의 변화에도 coefficients의 추정값이 매우 달라진다.

대가 condition index의 값이 15보다 클때에 공선성의 문제가 있다고 보여지며 30보다 클때에는 매우 심각하다고 한다.

본 모델에서는 11개 중에 6개가 30보다 크므로 공선성의 문제를 해결해야만 하는데 이는 다음번 사용설명서에서 알아보기로 하겠다.


Comments