我正试着填写这个方程,如下图R所示。

这是一个使用GAM与时间序列相结合的方程。我知道如何写出GAM部分,但我不知道如何处理y_{t-1}部分等等。看起来解决方案应该很容易,但我无法解决。你们谁能帮我吗?
方程来自于本文: Chen,Bei,等。“城市流动性的不确定性:预测共享自行车和停车场的等待时间。”智能运输系统-(ITSC),2013年第16届IEEE国际会议。IEEE,2013年。
发布于 2018-04-20 17:01:19
如果我正确理解,您需要响应的滞后-1和滞后-2值。
你可以把这些
(假设mydata是您的数据框架,y是响应变量
mydata <- data.frame(y = 1:10)。)
mydata <- transform(mydata,
lag1 = c(NA, head(y, -1)),
lag2 = c(NA, NA, head(y, -2)))它产生:
> head(mydata)
y lag1 lag2
1 1 NA NA
2 2 1 NA
3 3 2 1
4 4 3 2
5 5 4 3
6 6 5 4如果您不使用lag()类,则基本的R "ts"函数不直观地工作,因此在上面手工操作。
如果使用tidyverse,那么dplyr的lag()函数(它掩盖了同名的基函数!)更有用:
mydata2 <- transform(mydata,
lag1 = dplyr::lag(y, 1),
lag2 = dplyr::lag(y, 2))生产
> head(mydata2)
y lag1 lag2
1 1 NA NA
2 2 1 NA
3 3 2 1
4 4 3 2
5 5 4 3
6 6 5 4虽然在这种情况下,使用mutate()代替transform()是最自然的。
然后你gam()就会
gam(y ~ .... + s(lag1) + s(lag2), data = mydata, ....)使用gam()自动删除前两行数据,其中lag2是NA。
https://stackoverflow.com/questions/49853489
复制相似问题