我正在做一个小项目,它有一个时间序列来测量客户访问数据(每天)。我的协变量是一个连续变量Day
,用来衡量从数据收集的第一天起已经过去了多少天,还有一些虚拟变量,比如那天是不是圣诞节,是星期几等。
我的部分数据如下所示:
Date Customer_Visit Weekday Christmas Day
11/28/11 2535 2 0 1
11/29/11 3292 3 0 2
11/30/11 4103 4 0 3
12/1/11 4541 5 0 4
12/2/11 6342 6 0 5
12/3/11 7205 7 0 6
12/4/11 3872 1 0 7
12/5/11 3270 2 0 8
12/6/11 3681 3 0 9
我的计划是使用 ARIMAX 模型来拟合数据。这可以在 R 中使用函数auto.arima()
. 我知道我必须将协变量放入xreg
参数中,但是这部分的代码总是返回错误。
这是我的代码:
xreg <- c(as.factor(modelfitsample$Christmas), as.factor(modelfitsample$Weekday),
modelfitsample$Day)
modArima <- auto.arima(ts(modelfitsample$Customer_Visit, freq=7), allowdrift=FALSE,
xreg=xreg)
R返回的错误信息是:
Error in model.frame.default(formula = x ~ xreg, drop.unused.levels = TRUE)
:variable lengths differ (found for 'xreg')
我从如何用 R 拟合 ARIMAX 模型中学到了很多东西?但是我仍然不太清楚如何xreg
在函数的参数中设置协变量或虚拟变量auto.arima()
。