0

我有一个这样的面板数据框。其中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         ……

你能在这方面帮助我吗?

4

2 回答 2

0

年份栏

test$Year <- format(test$date,format="%Y")

每年创建组 - 公司

test$id <- paste(test$Firm, test$Year, sep="_")

使用 lme4 包运行 GroupWise 回归。这里 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
于 2018-10-22T11:34:26.500 回答
0

如果我理解正确(您的数据框的名称是 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) 
于 2018-10-22T10:21:24.160 回答