Beta(市场模型回归)以移动窗口为价值公司明智

时间:2019-05-07 05:14:09

标签: r ggplot2 dplyr regression

我有一个看起来像这样的数据框:

company_name  co_stkdate  dailyreturns  marketreturn
A             01-01-2000  5.67          4.54
A             02-01-2000  3.43          1.23
A             03-01-2000 -1.01         -0.53
.
.
.
A             30-12-2018  5.65          3.45
A             31-12-2018  2.32          1.32
B             01-01-2000 -2.34         -1.12
B             02-01-2000  1.32          0.34
.
.
.

有数百家这样的公司。我想在移动窗口为1年的情况下对公司进行OLS回归。

回归模型是

  

dailyreturn = alpha + beta * marketreturn

执行回归后。我想获得每年的beta值。

输出应类似于。

company_name   year  beta
 A             2000  0.87
 A             2001  0.99
 A             2002  0.76
 A             2003  0.65
.
.
.

这是我到目前为止所做的。

betas <- dbdf %>% group_by(co_code,company_name) %>% do(model=lm(formula=dailylogrtn~niftyreturns,data=.))

这帮助我在2000-2018年间获得了一个beta价值的公司。我不确定如何使用1年的移动窗口执行回归分析。 回归分析应该是从01-01-2000到31-12-2000,然后是新窗口01-01-2001到31-12-2001,然后是01-01-2002到31-12-2002,依此类推。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。首先,您需要将日期转换为年份。您只需要替换group_by()中的某些术语即可。

betas <- dbdf %>% group_by(company_name,year) %>% do(model=lm(formula=dailylogrtn~niftyreturns,data=.))

模型可以通过库(扫帚)中的tiny()函数转换为数据框