R中平滑时间序列的线性回归

时间:2013-11-15 15:23:45

标签: r time-series smoothing

我用两个时间序列对象执行回归。它就像那样(虚拟值):

ts1 <- ts(1:10,start=0,frequency=1)
ts2 <- ts(1:10,start=0,frequency=1)
class(ts1) # "ts"
lagmat = "ts1 ~ ts2"
armod <- dyn$lm(as.formula(lagmat))

在回归之前平滑时间序列时会出现问题:

ts1 <- ts(1:10,start=0,frequency=1)
ts2 <- ts(1:10,start=0,frequency=1)
ts1 <- smooth(ts1)
ts2 <- smooth(ts2)
class(ts1) # "tukeysmooth" "ts"  
lagmat = "ts1 ~ ts2"
armod <- dyn$lm(as.formula(lagmat))

zooreg中的错误(coredata(x),start = xtsp [1],end = xtsp [2],frequency = frequency):   “data”:尝试定义无效的zoo对象

我的想法是以某种方式提取时间序列对象。在回归之前使用以下几行:

ts1 <- ts(as.vector(ts1),start=start(ts1), frequency=frequency(ts1))
ts2 <- ts(as.vector(ts2),start=start(ts2), frequency=frequency(ts2))

为什么第一个版本不起作用,是否有更好的方法来创建新的时间序列?

1 个答案:

答案 0 :(得分:0)

看起来像dym包中的东西。这似乎工作得很好:

lm(ts1s ~ ts2s) 

如果您更喜欢使用Arm包:

library(arm)
fit.1 = lm(ts1s ~ ts2s) 
display(fit.1)