이전의 게시글에는 단순회귀모형을 활용하여 회귀계수를 추정하였습니다.
이번 게시글은 다중 회귀모형을 활용하여 오차항의 자기상관도 허락한 모형의 최우추정을 소개하고,
이 모형에 있는 계수들 중 2개 이상의 계수들에 대한 다중가설검정, Joint Null Hyphothesis Testing도 수행하고자 합니다.
사용할 데이터 fyff(the U.S Federal funds interest rate)로 미국 연방펀드 이자율에 대한 자료와 'monthly industrial production(산업생산)의 연간 성장률' 데이터를 날짜를 기준으로 merge한 데이터 입니다.
데이터 형식은 첫번째 칼럼은 일자가 나와있으며 두번째 칼럼은 미국의 금리와 산업생산 연간률 지수입니다.
세번째로 사용할 데이터는 소비자물가지수(Consumer Price Index)와 실업율(Unemployed) 데이터를 사용합니다. 각 데이터 역시 첫번째 칼럼은 일자와 두번째 칼럼은 소비자물가지수와 실업율을 나타내고 있습니다.
(데이터는 파일을 첨부하였습니다.)
다중회귀모형과 오차항의 자기상관은 다음과 같습니다.
변수는 아래와 같습니다.
Yt = ipg : 미국 산업생산성장률
X1t = fyff4 : 4달 전 연방정부펀드 이자율
X2t = cpiinf : 소비자물가지수 인플레이션
X3t = dunemp : 민간실업률의 1차 차분
모두 월별자료이며 샘플기간은 2008년 1월 ~ 2018년 8월 (128개의 샘플)입니다.
오차항의 자기상관 식은 식 (2)의 AR(1) 을 사용하였습니다.
단순회귀모형에서 미국의 산업생산성장률(ipg)을 연방정부펀드 이자율의 4달 전 값 (fyff4)을 유일한 설명변수로 사용하였으나, 식 (1) 에는 소비자물가지수를 기반으로한 인플레이션 변수와 민간실업률 변수의 1차 차분값을 추가하여 회귀분석을 진행하려 합니다.
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);
if mon < 20080101 then delete;
run;
data inf;
infile '/home/u45061472/cpiinf.prn';
input mon cpi;
logcpi = log(cpi);
cpiinf = dif(logcpi)*1200;
if mon < 20080101 then delete;
run;
data unemp;
infile '/home/u45061472/unemp.prn';
input mon unemp;
dunemp = dif(unemp)*10;
if mon < 20080101 then delete;
run;
data all;
merge ip fyff inf unemp;
by mon;
run;
inf 데이터는 Consumer price index로 소비자물가지수 자료입니다.
CPI 자료가 있는 파일을 열고 CPI 로부터 얻은 인플레이션을 구하는 것입니다. CPI를 로그값으로 변환시킨 뒤 1차 차분(DIF)하여 인플레이션을 구합니다.
즉, log(cpit) - log(cpit-1) = 월별 인플레이션입니다. 월별 인플레이션에 1200을 곱해서 퍼센트(%) 연간 인플레이션을 구하는 것입니다.
unemp 데이터는 실업율 자료입니다.
dunemp = dif(unemp)*10;
위의 코드는 실업률을 1차 차분하는 명령입니다.
실업률 시계열 자료는 종종 비정규성(nonstationary)을 띨 정도로 persistency가 심하여 산업생산정장률과 같이 정규성을 띄는 종속변수을 설명변수로 사용하면 통계적 유의성이 사라집니다.
그러므로 실업률을 1차 차분하여 설명변수로 사용하는 것이 유용하고 이번 게시글에서도 실업률을 1차 차분하여 설명변수로 사용하는 것이 유의하지 않지만, 1차 차분한 실업률 dunemp를 설명변수로 사용하면 통계적으로 유의하게 나옵니다.
proc autoreg data=all;
model ipg = fyff4 / nlag=1 method=ml maxiter=200; /* ...... (5) */
model ipg = fyff4 cpiinf dunemp / nlag=1 method=ml maxiter=200; /*.......(6)*/
test cpiinf = 0, dunemp = 0 / type=wald; /*......(7)*/
run;
위의 코드에 (5)는 최우추정법을 사용하는 명령이이며, 설명변수로 fyff4만을 사용하였습니다.
그 이유는 (6)에서 다중회귀분석을 하고 계수 2개가 0이라는 귀무가설을 검정하고 있기 때문에 검정통계식(Test Statistic)을 구하기 위하여 귀무가설 하의 회귀모형을 추정하도록 하였습니다.
위의 코드에서 (6)은 다중회귀분석모형을 최우추정하는 명령어입니다.
추가한 설명변수는 소비자가격에서 얻은 인플레이션(cpiinf), 민간실업률의 1차 차분한 값 (dunemp) 두개 입니다.
(7)에는 검정명령 TEST가 있고, 귀무가설은 cpiinf와 dunemp의 계수들 값이 모두 0이라는 것 입니다.
두 개의 계수가 0이라는 가설은 t 검정으로는 할 수 가 없고, F 검정이나 카이자승 χ2 검정을 해야합니다.
type = wald; 명령어는 귀무가설 cpiinf = dunemp = 0을 검정할 대 검정통계량을 WALD 검정을 사용하라는 옵션입니다.
위의 결과는 미국의 산업생산성장률 ipg의 설명변수로 연방펀드 이자율, fyff4뿐만 아니라, 소비자 물가지수를 사용하여 얻은 인플레이션(cpiinf)와 민간실업률의 1차 차분변수(dunemp)를 추가한 최귀식과 오차항의 자기상관식을 최우추정한 결과입니다.
결과 중 맨 아래에 있는 'Autoregressive parameters assumed given'을 보면 fyff4 변수와 dunemp 변수는 5% 유의수준에서 통계적으로 유의한 것을 알 수 있습니다.
하지만, 소비자물가지수에서 얻은 인플레이션(cpiif) 변수는 t-value가 0.93으로 유의하지 않습니다.
그러므로, 산업생산성장률(ipg)를 종속변수로 할 때, 설명변수로 cpiinf보다 dunemp 변수가 꼭 필요하다는 것을 알 수 있습니다.
위의 코드 중 (7)은 결과 중 Test Results로 나옵니다.
검정통계인 WALD 통계치는 8.44이고 이 chi-square 값을 확률값, Pr > ChiSq으로 변환하면 0.0147이 됩니다. 임계확률값 0.05보다 작기 때문에 귀무가설인 cpiinf와 dunemp 변수들의 계수들이 0이라는 다중귀무가설(Joint Null Hypothesis)는 기각됩니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.