통계공부/Stata

[Stata] 회귀분석 관련 명령어(1): reg, hireg

대학원생A씨 2020. 4. 22. 08:55
반응형

이번 포스팅에서는 회귀분석과 관련한 명령어를 알아보고자 한다. 회귀분석과 관련하여 소개할 명령어는 단순히 회귀분석을 돌리는 명령어뿐만 아니라 회귀분석의 기본 가정과 관련한 명령어까지 설명할 예정이라, 포스팅이 조금 길어질 것으로 예상된다. 어찌되었든 이번 포스팅에서는 회귀분석을 실행하는 명령어를 알아보고자 한다. 예전 포스팅과 마찬가지로 stata에서 기본적으로 제공하는 auto 데이터를 예제로 사용하고자 한다.lifeexp 데이터 불러오는 방법

 


1. reg

reg 종속변수 독립변수: 회귀분석을 실행하는 stata 명령어의 기본 형태
reg 종속변수 i.독립변수: 자동으로 독립변수를 dummy로 변환하여 회귀분석을 진행
reg 종속변수 독립변수1##독립변수2: 독립변수1,2의 상호작용항을 투입하여 회귀분석 진행
reg 종속변수 독립변수, beta: 회귀분석 결과에서 표준화 회귀계수 제시
reg 종속변수 독립변수, robust: 잔차의 등분산성을 어느 정도 보정해주는 옵션

 

reg는 회귀분석을 진행하는 명령어로, 가장 기본적인 형태가 reg 종속변수 독립변수이다. 예제를 들어 설명하자면, auto 데이터에서 차의 가격(price)이 연비(mpg)에 영향을 받는다고 해보자. 즉, 차의 가격이 종속변수, 연비가 독립변수라고 가정하고 회귀분석을 돌리려면 다음과 같이 command를 입력해주어야 한다.

 

reg price mpg

 

회귀분석 실행 결과

 

사진에서와 같이 회귀분석을 실행하면, R스퀘어값과 수정된 R스퀘어값이 제시되고 각 회귀계수의 비표준화계수 값과 p값을 알 수 있다. 예시에서는 독립변수로 연비 1개만을 투입하였는데, 당연히 독립변수의 갯수를 더 늘려도 상관없으며 명령어 역시 동일한 형태이다. 차의 가격이 연비에 의해서만 결정되는 것은 아니므로, 이번에는 차의 종류가 국산(domestic)인지 혹은 수입(foreign)인지에 영향을 받는다고 가정해보자. 즉, 독립변수로 foreign이라는 범주형 변수를 추가할 것이다.

 

reg price mpg i.foreign

 

여기서 주목할 점은 foreign이라는 범주형 변수 앞에 i.를 붙여준 것이다. 이는 해당 변수가 범주형 변수임을 표시하기 위한 싸인으로, 변수 앞에 i.를 붙여주면 stata 프로그램이 뒤에 붙은 변수를 범주형 변수로 인식하고 분석을 진행해준다. 참고로 연속형 변수는 c.를 붙여주면 된다.

 

foreign이라는 독립변수 투입 후의 분석 결과

만약, 여기서 연구자가 연비(mpg)와 차 종류(foreign) 간에 상호작용 효과가 있는지 궁금하다고 해보자. 그러면 상호작용항을 투입해줘야 하는데, 이를 위한 코드는 다음과 같다(둘 중 아무거나 입력하면 된다).

 

reg price c.mpg##i.foreign
reg price mpg i.foreign c.mpg#i.foreign

 

상호작용항 투입 후, 분석 결과

 

앞선 분석 결과들은 모두 비표준화회귀계수만을 알려주고 있다. 그렇지만 일반적으로 논문 작성을 할 때, 회귀분석 결과는 비표준화회귀계수뿐만 아니라 표준화회귀계수도 표시를 해준다. 왜냐하면 비표준화회귀계수로는 변수들 간의 상대적인 영향력을 비교할 수 없기 때문이다. 그렇다면 표준화회귀계수는 어떻게 알 수 있을까? 답은 바로 옵션으로 beta를 붙여주는 것이다.

 

reg price mpg i.foreign, beta

 

위의 분석 결과를 보면 알 수 있듯이, beta라는 옵션을 붙여주면 비표준화 회귀계수와 함꼐 표준화 회귀계수가 제시된다.

 

마지막으로, 회귀분석을 진행할 때는 회귀분석의 기본 가정들을 충족하는지 확인하는 것이 중요한데 이 중 하나가 잔차의 등분산성을 확인하는 것이다. 그런데 가끔 분석을 해보면 잔차의 등분산성이 충족되지 않는 경우가 있는데, 이 경우에 option으로 robust를 붙여주면 잔차의 등분산성을 어느 정도 보정해주는 효과가 있다. 이는 다음 포스팅에서 조금 더 구체적으로 다루고자 한다.

 

 

2. hireg

hireg 종속변수 (1차 투입 독립변수(들)) ... (N차 투입 독립변수(들)): 위계적 회귀분석 명령어

 

논문을 읽다보면 회귀분석 결과를 다음과 같이 표시한 경우를 볼 수 있을 것이다. 

출처: 이슬비, 배은희, 손영우, 이수란(2016). 부정적 피드백의 완충제, 투지(Grit): 부정적 피드백에 대한 정서 반응에 투지가 미치는 영향. 한국심리학회지: 사회 및 성격, 30(3), 25-45.

 

이는 위계적 회귀분석 결과를 제시한 것으로, 위계적 회귀분석을 실행하는 명령어는 hireg이다. 아마 stata 프로그램에 기본적으로 깔려 있는 명령어가 아니었던 것 같다. 만약 hireg라는 명령어를 인식하지 못하면 findit이라는 명령어를 이용하여 hireg 명령어를 설치하면 된다. ☞ findit 명령어 설명

 

위계적 회귀분석에서는 독립변수의 투입 순서를 연구자가 결정하는데, 투입 단계에 따라 괄호로 구분하여 command를 입력하면 된다. 즉, 위의 논문을 예시로 1단계에서 성별/자존감/성실성/신경증/T0부정정서가, 2단계에서 투지가 독립변수로 투입되는데 Stata에서는 이를 (성별 자존감 성실성 신경증 T0부정정서) (투지)와 같은 형태로 입력하면 된다. 

 

Stata의 auto 데이터를 통해 다시 설명하도록 해보자. 앞서 차의 가격(price)을 종속변수로, 연비(mpg)와 차 유형(foreign)을 독립변수로 하여 회귀분석을 실행하였다. 이 때, 연구자가 독립변수 투입을 단계적으로 진행하여 1차적으로 연비(mpg)를, 2차적으로는 차의 유형(foreign)을 투입한다고 해보자. 이를 위한 command는 다음과 같다.

 

hireg price (mpg) (foreign)

 

 

분석 결과를 보면, Model 1에서는 독립변수로 연비(mpg)만 투입되었음을 확인할 수 있다. 반면 Model 2에서는 차의 유형(foreign)이 투입되어 분석결과에서 독립변수로 mpg, foreign이 모두 명시되어 있다. 그리고 맨 아래 R-Square diff. Model 2- Model1이라는 부분을 보면, 추가적으로 독립변수 foreign을 투입하는 것이 통계적으로 유의미한지 결과를 제시하고 있다. 여기서 p-value가 .05미만의 유의한 결과가 나왔으므로, 독립변수로 foreign을 추가하는 것이 통계적으로 보다 적절한 모형이라고 볼 수 있다.

 

참고로 위의 결과에서 제시된 회귀계수는 모두 비표준화 회귀계수로, 표준화 회귀계수가 궁금하다면 아래와 같이 코드를 입력하면 된다. 앞선 reg 명령어에서 표준화 회귀계수를 출력하기 위해 옵션으로 beta를 추가해야 했는데, 이와 유사하게 hireg에서는 r(beta)를 붙여준다.

 

hireg price (mpg) (foreign), r(beta)

 

반응형