【问题标题】:Linear Regression on smoothed timeseries in RR中平滑时间序列的线性回归
【发布时间】:2013-11-29 01:03:57
【问题描述】:

我使用两个时间序列对象执行回归。它是这样工作的(虚拟值):

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),开始 = xtsp[1],结束 = xtsp[2],频率 = 频率): “数据”:尝试定义无效的动物园对象

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

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

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

【问题讨论】:

  • 摆脱as.formula。应该是dyn$lm(lagmat, ...)

标签: r time-series smoothing


【解决方案1】:

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

lm(ts1s ~ ts2s) 

如果您更喜欢使用 Arm 包:

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

【讨论】:

    猜你喜欢
    • 2014-09-11
    • 1970-01-01
    • 2020-09-30
    • 2020-04-16
    • 2014-08-30
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多