본문 바로가기
데이터 분석/인과 추론

[R] Plm vs lm 모델의 R square 값 차이

by 장찐 2022. 10. 2.

📚 Plm vs lm 함수의 결과 차이   

 

 R 에서 Two-way Fixed effect regression 분석을 하기 위해서는 plm()과 lm() + dummy variables 방식을 사용할 수 있는데, R-squared 값에서 차이가 나타난다.  (coefficient,  p-value는 동일) 

 

 특히 plm()을 사용할 때, adjusted R 값이 음수가 나와서 모델이 제대로 fit 되어있지 않은 문제가 종종 발생한다. 

lm() + 더미변수에서는 충분한 R^2 값이 나오지만, plm() 을 사용할 경우 그 값이 낮아지거나 음수가 되는 케이스들을 아래와 같이 찾을 수 있었다. 

https://stats.stackexchange.com/questions/496761/negative-adjusted-r-square-when-using-plm-fixed-effect-model-but-not-when-using

https://stackoverflow.com/questions/64845515/negative-adjusted-r-squared-of-fixed-effect-plm-function

 

구글링해서 이유를 찾아본 결과, 

plm()의 경우 lm() + 더미변수에서 더미변수에 해당하는 fixed effect가 R^2 계산에서 제외된다.

 

또한 FE 모델에서의 R^2는 일반적으로 within  R^2 값을 의미한다. stata 에서는 overall, within, between  R^2 값을 모두 출력하지만, R에서는 within  R^2 값만 출력한다.

 

• within R2 : 

"How much of the variance within the panel units does my model account for" (패널그룹 내에서 시간 흐름에 따른 차이) 

A라는 entity 내에서 설명변수 값이 변할 때, A entity 내에서 종속변수 값이 얼마나 변하는가? 

 

• between R2 :

"How much of the variance between seperate panel units does my model account for" (패널그룹 간 차이) 

entity들 사이의 변동을 의미함. A/B/C라는 서로다른 entity간의 설명변수 차이가 종속변수 차이를 얼마만큼 설명하는가?


• R2 overall :

a weighted average of these two.

 

* 참고 :  variation이란 설명변수의 변화가 종속변수의 변화를 얼마나 설명하는지를 의미한다.  

 

 

즉, 정리하자면 

• lm()은 전체 회귀 모델의 standard value for r-squared를 제공

• plm(model = 'within')은 within r-squared for demeaned model 제공 

https://stackoverflow.com/questions/49058092/plm-vs-lm-different-results

하기 때문에 결과에서 차이가 나타난다. 

 

 

📚 Reference 

https://stats.stackexchange.com/questions/262246/difference-of-r2-between-ols-with-individual-dummies-to-panel-fixed-effect-mo 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=s2ak74&logNo=221260653652 

 

https://stats.stackexchange.com/questions/401264/which-r-squared-value-to-report-while-using-a-fixed-effects-model-within-betw

 

https://www.princeton.edu/~otorres/Panel101.pdf

 

 

 

 

댓글