Time Dummy变量和回归数据帧的列作为因变量

时间:2013-08-12 10:13:32

标签: r

我试图在这里搜索这个问题,但如果这个问题已经得到解答我找不到任何对不起。我的数据集包含10年期间大量股票(1000+)的每日信息。所以我已经将我的数据集读作数据框时间序列,其中每列是一个单独的股票。我想回归每个股票的月份虚拟变量捕获季节变化并获得残差。我所做的是以下内容:

for (i in 1:1000){
month.f<-factor(months(time(stockinfo[,i])))
dummy<-model.matrix(month.f)
residStock[,1]<-residuals(lm(stockinfo[,i]~dummy,na.action=na.exclude))
}
#Stockinfo is data.frame

这是正确的方法吗?

其次,我想使用残差作为因变量和其他数据框的其他独立变量进行回归。什么是最好的方法,我是否必须再次使用for循环?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以按如下方式创建股票列表,然后使用Map函数并避免使用R for loop(未测试,因为您未提供样本数据)

假设您的数据是mydata,月份为1,2,如果有12个月,则使用11个月作为假人

mystock<-list("APP~","INTEL~","MICROSOFT~") # stocks with tilde sign
myresi<-Map(function(x) resi(lm(as.formula(paste(x,paste(levels(as.factor(mydata$month))[-1],collapse="+"))),data=mydata),mystock) #-1 means we are using only 11 months excluding first as base month

假设你的独立变量是indep1,indep2和indep3,而依赖是dep(假设dep和indep对于每只股票是相同的)

myestimate<-Map(function(x)lm(dep~indep1+indep2+indep3,data=x),myresi)