R 36个月滚动回归,至少观察24次

R 36个月滚动回归,至少观察24次,r,regression,zoo,rolling-computation,R,Regression,Zoo,Rolling Computation,例如,假设数据从1999年1月开始,然后在1999年1月至2001年12月的36个月窗口上运行第一次回归,要求只有在至少有24个月的数据可用的情况下才能得出结果。否则,对于特定的回归,应该跳过该股票。下一次滚动回归将从1999年2月开始,到2002年1月结束(考虑到最少的观测次数),依此类推,直到2020年3月。由于是月度滚动回归,因此从2001年12月到2020年3月,将按月报告回归输出。 需要运行的所需回归方程: E(ri)=α+β1(rmt)+β2(rmt-1)+ut E(ri)=证券的预

例如,假设数据从1999年1月开始,然后在1999年1月至2001年12月的36个月窗口上运行第一次回归,要求只有在至少有24个月的数据可用的情况下才能得出结果。否则,对于特定的回归,应该跳过该股票。下一次滚动回归将从1999年2月开始,到2002年1月结束(考虑到最少的观测次数),依此类推,直到2020年3月。由于是月度滚动回归,因此从2001年12月到2020年3月,将按月报告回归输出。 需要运行的所需回归方程:

E(ri)=α+β1(rmt)+β2(rmt-1)+ut

E(ri)=证券的预期超额收益 α=截距,β1=超额市场收益系数,β2=滞后超额市场收益系数,rm t=时间t的超额市场收益,rm t-1=时间t-1的超额市场收益,ut=误差项

下面的代码已运行,但它不查看访问多个股票,也不检查条件

在R studio上使用此选项

library(ggplot2)
library(tseries)

spy <- get.hist.quote(instrument="SPY", start="2003-01-01",
                      end=Sys.Date(), quote="AdjClose",
                      provider="yahoo", origin="1970-01-01",
                      compression="d", retclass="zoo")
ief <- get.hist.quote(instrument="IEF", start="2003-01-01",
                      end=Sys.Date(), quote="AdjClose",
                      provider="yahoo", origin="1970-01-01",
                      compression="d", retclass="zoo")
z <- merge.zoo(spy,ief)

rollingbeta <- rollapply(z.logrtn,
                         width=262,
                         FUN = function(Z)
                         {
                           t = lm(formula=SPY~IEF, data = as.data.frame(Z), na.rm=T);
                           return(t$coef)
                         },
                         by.column=FALSE, align="right")
库(ggplot2)
图书馆(tseries)
spy我向您推荐这套套餐。小插曲中有一个取决于日期的日期。您的示例可以通过以下方式解决:

#使用df
df我推荐你的套餐。小插曲中有一个取决于日期的日期。您的示例可以通过以下方式解决:

#使用df

df显示的代码不使用返回。它使用调整后的价格。你想要退货还是价格?是否可以将数据缩减为每月一次,然后处理每月的价格或回报?在每次回归中仍然会得到36分。您可以使用partial=TRUE,并在函数中添加一行,检查输入的大小,如果太小,则返回NAs。代码使用的价格是错误的,我只需要对具有最少24个月数据或最多36个月数据的股票运行回归,因此我的第一次回归将针对回报运行(针对股票级别数据)显示的代码不使用返回。它使用调整后的价格。你想要退货还是价格?是否可以将数据缩减为每月一次,然后处理每月的价格或回报?在每次回归中仍然会得到36分。您可以使用partial=TRUE,并在函数中添加一行,检查输入的大小,如果太小,则返回NAs。代码使用的价格是错误的,我只需要对具有最少24个月数据或最多36个月数据的股票运行回归,因此我的第一次回归将针对回报运行(针对股票级别数据)