Коэффициент периодической регрессии в панели данных r
У меня есть панель данных панели, как это. где return является зависимой переменной, а mkreturn является независимой переменной.
Firm date return mkreturn
A Jan-07 7 12
A Feb-07 8 14
A Mar-07 2 16
A Apr-07 4 18
A May-07 2 20
A Jun-07 5 15
A Jul-07 3 17
A Aug-07 4 13
A Sep-07 2 19
A Oct-07 5 20
A Nov-07 4 21
A Dec-07 6 13
A Jan-08 7 21
A Feb-08 7 33
A Mar-08 5 12
A Apr-08 5 12
A May-08 5 15
A Jun-08 4 17
A Jul-08 4 13
A Aug-08 4 12
A Sep-08 2 12
A Oct-08 3 17
A Nov-08 4 15
A Dec-08 7 10
B Jan-07 12 12
B Feb-07 4 14
B Mar-07 10 16
B Apr-07 9 18
B May-07 9 20
B Jun-07 13 15
B Jul-07 7 17
B Aug-07 14 13
B Sep-07 21 19
B Oct-07 13 20
B Nov-07 12 21
B Dec-07 18 13
B Jan-08 13 21
B Feb-08 16 33
B Mar-08 14 12
B Apr-08 5 12
B May-08 21 15
B Jun-08 12 17
B Jul-08 16 13
B Aug-08 11 12
B Sep-08 11 12
B Oct-08 10 17
B Nov-08 15 15
B Dec-08 9 10
Теперь я хочу узнать годовой коэффициент регрессии, подобный этому (однако данные могут быть ежедневными, а ожидаемый выпуск может быть ежемесячным).
mkreturn coeff
2007 A ……
2008 A ……
2007 B ……
2008 B ……
Не могли бы вы помочь мне с этим?
2 ответа
столбец года
test$Year <- format(test$date,format="%Y")
создавать группы каждый год-фирма
test$id <- paste(test$Firm, test$Year, sep="_")
запустить регрессию GroupWise с помощью пакета lme4. Здесь id - столбец группы
library(lme4)
fits <- lmList(return ~ mkreturn | id, data=df)
coefficients(fits)
выход
(Intercept) mkreturn
A_2007 10.501558 -3.738318e-01
A_2008 2.967155 1.131965e-01
B_2007 11.833333 -6.869076e-16
B_2008 9.230499 2.234604e-01
Если я правильно понимаю (ваш фрейм данных называется df)
#create new variable which is a combination of firm and date
df$tuple=factor(paste0(df$Firm,substr(df$date,5,6)))
#linear model with interatcions
lm(return~tuple*mkreturn,data=df)