【问题标题】:R and multiple time series and Error in model.frame.default: variable lengths differR和多个时间序列以及model.frame.default中的错误:可变长度不同
【发布时间】:2021-10-14 06:33:27
【问题描述】:

我是 R 新手,我正在使用它来分析时间序列数据(我也是新手)。

我有 15 年的季度数据,我有兴趣探索年轻人饮酒和吸烟率之间的相互作用 - 将吸烟作为结果变量。有人建议我使用 nlme 包中的 gls 命令,因为这将允许我包含 AR 和 MA 术语。我知道我可以使用更复杂的方法,例如 ARIMAX,但作为第一步,我想使用更简单的模型。

加载数据后,指定时间序列

data.ts = ts(data=data$smoke, frequency=4, start=c(data[1, "Year"], data[1, "Quarter"]))
data.ts.dec = decompose(data.ts)

在分解数据和一些测试(KPSS和ADF测试)之后,很明显数据不是平稳的,所以我对数据进行了差分:

diff_dv<-diff(data$smoke, difference=1)
plot.ts(diff_dv, main="differenced")
data.diff.ts = ts(diff_dv, frequency=4, start=c(hse[1, "Year"], hse[1, "Quarter"]))

ACF 和 PACF 图表明还应包括 AR(2),因此我将模型设置为:

mod.gls = gls(diff_dv ~ drink+time , data = data, 
              correlation=corARMA(p=2), method="ML")

但是,当我运行此命令时,我得到以下信息:

"Error in model.frame.default: variable lengths differ".

我从以前的帖子中了解到,这是由于差异以及 diff_dv 现在更短的事实。我试图通过修改代码来解决这个问题,但两种方法都不起作用:

mod.gls = gls(diff_dv ~ drink+time , data = data[1:(length(data)-1), ], 
             correlation=corARMA(p=2), method="ML")

mod.gls = gls(I(c(diff(smoke), NA)) ~ drink+time+as.factor(quarterly) , data = data,
              correlation=corARMA(p=2), method="ML")

有人可以帮忙吗?是否有允许我运行 -gls- 命令的解决方法,或者是否有与 -gls- 命令等效的替代方法?

作为一个附带问题,是否可以像我一样包含时间 - 一个值为 1 到 60 的变量?一个类似的问题是针对我作为虚拟对象包含的季度以调整可能的季节性 - 可以吗?

非常感谢您的帮助!

【问题讨论】:

    标签: r time-series nlme


    【解决方案1】:

    指定 na.action = na.omitna.action = na.exclude 以省略带有 NA 的行。这是一个使用内置 Ovary 数据集的示例。有关这两者之间差异的信息,请参阅?na.fail

    Ovary2 <- transform(Ovary, dfoll = c(NA, diff(follicles)))
    gls(dfoll ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary2,
               correlation = corAR1(form = ~ 1 | Mare), na.action = na.exclude)
    

    【讨论】:

    • 谢谢,这真的很有帮助。我将按照您的建议添加代码。我有 2 个后续问题 - 这 2 位代码有什么作用? sin(2*piTime) + cos(2*piTime) corAR1(form = ~ 1 | Mare) 请随时向我指出任何相关文档。
    • 这只是对 ?gls 页面上示例的修改,添加了 diff 和 na.action。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多