BookmarkSubscribeRSS Feed

[SAS 활용 노하우] 설명변수의 비선형(Nonlinearity) 검정

Started ‎11-28-2021 by
Modified ‎11-28-2021 by
Views 196

 

대부분의 경우 설명변수를 있는 그대로 사용하지 않고 비선형 변형(Non-linear transformation)을 회귀식에 사용하는 경우는 거의 없습니다. 비선형 변형의 예로는 설명변수의 로그 변형, 자승, 설명분수들끼리 곱한 변수를 사용하는 것이 회귀분석 결과를 개선할 수 있습니다.

이러한 비선형으로 변형된 설명변수를 사용하거나, 설명변수끼리 곱하거나 나누거나 설명변수로 사용하는 것에 대한 통계학적 정당성은 LM 검정을 통하여 분별할 수 있습니다.

LM검정은 Large Multiplier으로

아래와 같은 검정 통계식을 같습니다.



스크린샷 2021-11-28 오후 11.31.13.png

 

 

위 식에서 ' a -> '는 점근적 확률분포(asymptotic distribution)을 의미하며 q는 귀무가설의 자유도(Degree of Freedom of Null Hyphothesis)를 의미하며 q는 귀무가설의 자유도는 귀무가설로 제한받는 계수의 수가 몇 개인지에 의해 결정됩니다.

예를 들면, β2 = β3 = 0 이라면 귀무가설의 자유도는 2개이고

β2 = β3 라면 귀무가설의 자유도는 1개 입니다.

LM 검정통계식 이외에도 Wald 검정통계식, Likelihood Ratio 검정통계식이 있습니다.

다시 설명변수의 비선형 변형이 통계적으로 유의한지 돌아와 보면,

통계적으로 유의한지 여부는 아래와 같은 식을 이용하여 검정할 수 있습니다.

 

스크린샷 2021-11-28 오후 11.31.20.png

 

위의 식을 설명하자면,

Yt = ipg : 산업생산성장률

X1t = fyff : 4달 전 연방펀드 이자율

X2t = dunemp : 민간실업률의 1차 차분

비선형으로 변환된 설명변수들이 위 (1) 식에 존재하는지에 대한 LM 검정을 하기 위해서는

아래 회귀식 (2) 를 OLS로 추정한 후, 얻어진 residual ert 를 식 (1) 에 있는 설명변수 모두에 회귀분석하고, LM 검정치 nR2를 구하면 됩니다.

 

 

스크린샷 2021-11-28 오후 11.31.27.png

 

 

여기서 식 (2) 의 종속변수와 독립변수들은 위 식 (1)과 같습니다.

식 (2) 에는 식 (1) 에 있는 설명변수 X1t 와 X2t 를 자승하여 얻은 변수들과 X1t 와  X2t 를 곱해서 얻은 변수가 없습니다.

즉, 식 (2) 은 귀무가설 B3 = B4 = B5 = 0 을 적용한 제한된 (restricted) 모형이며, 식 (1)은 대안가설(alternative hyphothesis)을 적용한 모형입니다.

 

 

 

                                                                                                                                       

SAS CODE

 

설명변수의 비선형 변형과 귀무가설 검정을 코드를 통해 실행해보겠습니다.

 

data ip;
infile '/home/u45061472/ip.prn';
input mon ip;
logip = log(ip);
ipg = dif(logip)*1200;
if mon < 20080101 then delete;
run;

data fyff;
infile '/home/u45061472/fyff.prn';
input mon fyff;
fyff4 = lag4(fyff);
fyff42 = fyff4**2;  /* ..... (1)*/
if mon < 20080101 then delete;
run;

 

위 코드 중 주석에 (1) 표시가 된 코드를 보면,

fyff4의 제곱을 만들어 그 이름을 fyff42로 하는 명령어입니다. 제일 마지막 회귀분석에 fyff4의 제곱항이 필요해서 만들어 놓은 것입니다.

 

data unemp;
infile '/home/u45061472/unemp.prn';
input mon unemp;
dunemp = dif(unemp)*10; /* ..... (2)*/
dunemp2 = dunemp**2;    /* ..... (3)*/
if mon < 20080101 then delete;
run;

 

위의 코드는 실업률 데이터 입니다.

주석에 (2)라고 표시된 코드는 실업률의 1차 차분한 값에 10을 곱하는 명령어입니다. 실업률을 1차 차분하지 않고 그대로 사용하면 통계적으로 유의하지 않지만, 1차 차분한 변수를 사용하면 상당히 유의하게 나옵니다.

실제, fyff4보다 절대값으로 더 큰 t 값이 나옵니다. 10을 곱하는 이유는 ipg 변수와 데이터 단위 (unit)를 비슷하게 반들어 추정치의 단위가 10 이상으로 나오지 않게 하기 위함입니다.

주석에 (3)이라고 표시된 코드는 실업률 unemp를 1차 차분한 값의 제곱을 만드는 명령어 입니다.

 

 

data all;
merge ip fyff unemp;
by mon;
fy4dun = fyff4*dunemp; /* ...... (4)*/
run;

 

주석에 (4)라고 표시된 코드는 연방펀드이자율에 실업률의 1차 차분한 값을 곱한 것입니다. 두 설명변수를 서로 곱하여 비선형 설명변수로 만들어 사용하고자 합니다.

 

proc reg data=all;
model ipg = fyff4 dunemp / DWPROB;  /* ..... (5) */
output out=out1 RESIDUAL=resid;  /* ...... (6) */
model ipg = fyff4 dunemp fyff42 dunemp2 fy4dun / DWPROB; /* .... (7)*/
test fyff42 = 0, dunemp2=0, fy4dun=0; /* ..... (8)*/
run; 

 

주석 (5)는 비선형 설명변수가 하나도 없는 선형인 fyff4와 dunemp만 설명변수로 있는 회귀모형입니다.

주석 (6)는 회귀모형 주석 (5) 줄을 추정한 후 얻을 수 있는 residual을 얻기 위해 필요한 명령어입니다.

우선, output 은 회귀모형을 추정하고 나서 뭔가를 얻고자 한다는 명령어입니다.

그 다음에는 OUT이 나오고 OUT = out1은 회귀분석 결과에 얻은 변수들은 out1이라고 붙여진 데이터 바구니에 넣으라고 바구니 이름을 지정해 주는 명령어 입니다.

주석 (7)는 회귀모형으로 5개의 설명변수 중 3개가 비선형 변환(nonlinear transformation)을 한 설명변수를 포함하고 있습니다.

주석 (8)는 검정명령으로 3개 비선형 설명변수들의 계수값 모두가 0이라는 귀무가설을 F test 러로 검정하라는 명령입니다.

SAS에서 가설검정은 default로 F 검정을 실시합니다.

 

 

 

data all;
set out1;
run;

proc reg data=all;
model resid = fyff4 dunemp fyff42 dunemp2 fy4dun;  /* .... (9)*/
run;
 

주석 (9) 라인에서는 주석 (5)에서 실시한 회귀분석 후 얻은 residual을 종속변수로 하고,

주석 (7) 라인에서 사용한 5개 설명변수를 모두 설명변수로 사용하여 회귀분석하는 모형입니다.

이 회귀분석에서 얻은 R2에 샘플 수 n을 곱하여 LM 검정통계치(Test Statistic)을 얻습니다.

 

                                                                                                                             

 

결과

 

 

스크린샷_2021-11-28_오후_11.15.13.png

 

본 결과는 아래의 코드를 통해서 생성된 것입니다.

 

proc reg data=all;
model ipg = fyff4 dunemp / DWPROB;
output out=out1 RESIDUAL=resid;
model ipg = fyff4 dunemp fyff42 dunemp2 fy4dun / DWPROB;
test fyff42 = 0, dunemp2=0, fy4dun=0;
run;

설명변수 2개의 선형형태만 있는 귀무가설의 회귀모형입니다.

즉, fyff4와 dunemp 변수만 있고 이 변수들의 제곱이나 두 변수를 곱한 비선형(nonlinear) 변수들의 계수들은 모두 0이라는 귀무가설하에 얻은 회귀모형입니다.

데이터 기간은 2008년 1월 부터 2018년 9월로 129개의 샘플이 있으며 실제 사용된 샘플 수는 128개입니다.

결과를 살펴보면 2개의 설명변수인 fyff4와 dunemp만을 사용하였고, 비선형으로 전환된 변수 3개는 위 회귀분석에 사용되지 않았기 대문에 위 회귀모형은 여기서 빠진 3개 변수들의 계수들은 모두 0이라는 귀무가설을 반영한 모형입니다.

그러므로 위 Sum of Squares of Error 값 9063.59858은 SSER 값이 됩니다.

우선 4달 전의 연방정부 이자율 (fyff4)와 실업률 1차 차분값 (dunemp) 변수들의 계수추정치들은 모두 음수이며 5% 유의수준에서 통계적으로 유의합니다.

즉, 이자율이 1% 상승하거나 실업률이 1% 상승하면 종속변수인 산업생산성장률이 각 2.0581%, 1.50436% 씩 감소합니다.

이 회귀모형의 질적수준을 보기 위해서는 오차항에 자기상관이 있는지 Durbin - Watson D 검정을 통해 확인할 수 있습니다.

 

 

스크린샷_2021-11-28_오후_11.27.18.png

 

 

위의 결과를 보면 민간 실업률의 1차 차분 값 ( dunemp)를 설명변수로 회귀식에 추가할 경우 fyff4의 계수추정치, t value, Durbin-Watson D값, Pr < DW 등에 상당한 변화가 있을 수 있습니다.

우선, fyff4 계수 추정치는 -2.05810으로 fyff4 하나만 설명변수로 사용했을 때의 추정치 -2.90보다 크기가 큰 포긍로 감소하였고 t-value도 -3.61에서 -2.56으로 절대값이 상당폭 감소했습니다.

그러므로 위 Durbin Watson 검정결과는 fyff4와 Dunemp, 2개의 설명변수가 있는 회귀모형의 오차항에 자기상관이 존재하지 않기 때문에 회귀모형의 품질에는 하자가 없다고 판단할 수 있습니다.

Version history
Last update:
‎11-28-2021 09:38 AM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags