首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何拟合R中的“Y(T)=αX +βY(t-1) -βY(t-2)”模型?

如何拟合R中的“Y(T)=αX +βY(t-1) -βY(t-2)”模型?
EN

Stack Overflow用户
提问于 2016-11-07 17:28:31
回答 1查看 155关注 0票数 0

我必须用R对时间序列Y(t)提前一步预测,理论认为理想的模型应该是:

Y(t) =αX +βY(t-1) -βY(t-2)

然而,我不知道如何处理以下问题:

  • 我必须取减去βY(t-2)。
  • 存在autoregressive (Y(t-1),Y(t-2))和外生变量(X)。
  • 我必须测试"βY(t-1) -βY(t-2)“是否是表达自回归的最佳方法,而不是其他ARIMA模型。

所涉时间序列Y(t)如下:

代码语言:javascript
复制
Y <- c(57.4, 51.6, 36.1, 34.8, 41.2, 59.1, 62.5, 55.0, 53.8, 52.4, 44.5, 42.2, 50.1, 61.3, 49.6, 38.2, 51.1, 44.7, 40.8, 46.1, 53.5, 54.7, 50.3, 48.8, 53.7, 52.0)

所使用的外生变量X是:

代码语言:javascript
复制
X <- c(-12.1, 30.0, 13.5, 30.0, -3.8, -24.3, 30.0, 30.0, 30.0, 30.0, -21.6, 30.0, 0.0, 26.5, -30.0, 20.5, -4.8, -9.2, 22.2, -7.3, 15.9, 16.0, 13.7, 5.6, 5.7, 1.8)

您可能会注意到,这个实际的X对于预测Y并没有多大帮助。不过,我把它作为一个示例来报告,因为我目前正在寻找X的正确值。

如果有什么不对或不清楚的地方,请告诉我,我会给出必要的解释。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 17:30:31

您可以使用lag函数进行转换,使用lmglm进行回归:

代码语言:javascript
复制
Y <- c(57.4, 51.6, 36.1, 34.8, 41.2, 59.1, 62.5, 55.0, 53.8, 52.4, 44.5, 42.2, 50.1, 61.3, 49.6, 38.2, 51.1, 44.7, 40.8, 46.1, 53.5, 54.7, 50.3, 48.8, 53.7, 52.0)
X <- c(-12.1, 30.0, 13.5, 30.0, -3.8, -24.3, 30.0, 30.0, 30.0, 30.0, -21.6, 30.0, 0.0, 26.5, -30.0, 20.5, -4.8, -9.2, 22.2, -7.3, 15.9, 16.0, 13.7, 5.6, 5.7, 1.8)

y_1 <- lag(Y)
y_2 <- lag(Y,2)

lm(Y~X+y_1+y_2)

还可以在回归方程中直接进行滞后转换:

代码语言:javascript
复制
lm(Y ~ X + I(lag(Y)) + I(lag(Y, 2)))

最后,区别只是将操作符更改为:

代码语言:javascript
复制
lm(Y ~ X + I(lag(Y)) - I(lag(Y, 2)))

呼叫:lm(公式=Y~X+i(滞后(Y))-i(滞后(Y,2))系数:(截距)X(滞后(Y))3.906e-14-4.693e-18 1.000e+00

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40471043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档