R과 plm을 사용하여 시간과의 상호 작용을 포함하는 고정 효과 모델 추정


16

plm()양식의 고정 효과 모델을 추정 하는 데 사용 하고 있습니다.

y ~ x + time + time:fixed_trait

여기서 fixed_trait개인마다 다양하지만 개인 내에서는 일정한 변수가 있습니다.

상호 작용의 점 time으로는 fixed_trait효과 허용하는 것입니다 fixed_trait시간에 걸쳐 변화 할 수 있습니다. (저는 고정 효과에 관한 Paul Allison의 최근 소책자에서 일하고 있습니다. 인용이 추가되었습니다.)

plm()이러한 모델의 계수 및 표준 오류를 추정하는 데 문제가 없습니다. 그러나이 summary.plm()모델들에 대해서는 R ^ 2를 계산할 수 없습니다. 이것이 내가 고치고 싶은 문제입니다.

다음은 최소한의 예입니다.

library(plm)
tmp <- data.frame(ID=rep(1:3, 2), year=rep(0:1, each=3), 
                  y=rnorm(6), const=rep(1:3, 2))
fe1 <- plm(y ~ year,              index=c('ID', 'year'), data=tmp)
fe2 <- plm(y ~ year + year:const, index=c('ID', 'year'), data=tmp)
summary(fe1)  # works fine
summary(fe2)  # Error in crossprod(t(X), beta) : non-conformable arguments

조사 plm:::summary.plm하면 문제가 더 명확 해집니다. R ^ 2를 계산하려면 다음 plm을 수행하십시오.

beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)

beta대한 견적 만 포함 year1하고 year0:constX대한 열도 포함 하기 때문에 작동하지 않습니다 year1:const. 다시 말해, 및에 X대한 열을 모두 포함하므로 두 계수를 모두 추정 할 수 없습니다.year0:constyear1:const

해결 방법은 수식에 입력하기 전에 "손으로"상호 작용 용어를 만드는 것입니다.

tmp$yearXconst <- tmp$year*tmp$const
fe3 <- plm(y ~ year + yearXconst, index=c('ID', 'year'), data=tmp)
summary(fe3)  # works fine

그러나 이것은 성가신 일입니다. 이것의 부족으로, summary.plm그러한 모델로 작업 하기 위해 할 수있는 일이 있습니까?

===

Allison, Paul D. 2009. 고정 효과 회귀 모델. 로스 앤젤레스, 캘리포니아 : 세이지. 특히 19-21 페이지를 참조하십시오.


1
plm버전 1.6-4 부터는 증가 된 계수가 단순히 삭제되므로 더 이상 문제가되지 않습니다.
Helix123

답변:


9

사용해보십시오

fe3 <- plm(y ~ year * const, index = c('ID', 'year'), data = tmp)

대신에. *상호 작용 에 시간 고정 효과를 중복 포함하는 경우에도 작동합니다 (시간이 고정되어 효과가 있기 때문에).

fe4 <- plm(y ~ year * const, index = c('ID', 'year'), data = tmp, effect = "twoway")

*대신 사용해야하는데 :, 비상 호작용 계수의 출력을 억제하는 방법이 있습니까?
Arthur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.