【发布时间】:2019-02-18 06:30:03
【问题描述】:
我有一个如下面板数据集:
id date1 Returns Mkt.RF SMB.y HML.y RMW.y CMA.y RF.y
1 LP60068503 200002 3.9487727 5.95 0.47 -9.00 3.25 -7.18 0.43
2 LP60068503 200003 4.6201232 0.66 -5.04 3.10 -2.74 4.82 0.47
3 LP60068503 200004 -1.2757605 -5.58 -4.37 5.67 -1.08 1.22 0.46
4 LP60068503 200005 -1.3916501 -0.08 0.18 6.05 -3.30 4.84 0.50
5 LP60068503 200006 -2.4193548 0.67 0.50 2.94 -3.15 1.10 0.40
6 LP60068503 200007 0.8264463 -1.58 -0.71 3.25 -0.19 -0.10 0.48
id date1 Returns Mkt.RF SMB.y HML.y RMW.y CMA.y RF.y
340373 LP65117791 201207 3.4376360 0.56 -1.38 -2.57 2.29 -2.04 0.00
340374 LP65117791 201208 0.7893412 4.51 0.06 3.38 -1.68 1.45 0.01
340375 LP65117791 201209 0.2556494 3.49 1.65 2.33 -1.52 0.69 0.01
340376 LP65117791 201210 -1.0310320 1.67 -0.61 2.06 -0.93 -0.15 0.01
340377 LP65117791 201211 0.3411351 2.28 -2.40 -0.55 0.62 -0.80 0.01
340378 LP65117791 201212 0.7903986 3.38 2.48 3.09 -0.53 0.89 0.01
我想用三个独立变量计算以下滚动回归,并在新列中获得 alpha (a) 截距。
返回 ~ a + ß1*Mkt.RF + ß3*SMB.y + ß3*HML.y + e
宽度窗口应为 36 个月。
使用 rollRegres 函数可以处理一个自变量,但我想知道如何将此包调整为三个自变量。在具有 one 因变量的新列中获取 alpha 截距的代码如下所示:
返回 ~ a + ß1*Mkt.RF + e
dt[, alpha:=
roll_regres.fit(x = cbind(1, .SD[["Mkt.RF"]]), y = .SD[["return"]],
width = 36L)$coefs[, 1],
by = id]
所以我想知道如何将其调整为三个或更多自变量。
【问题讨论】:
标签: r regression