我的数据是一个时间序列。
y <- ts(datafile[,"y"], start=1960, frequency=4, end=2010)
我想在我的预测ARIMA模型中包含季度虚拟变量。那可能吗?如果是这样,它的命令是什么?我似乎无法找到一个允许我将ARIMA模型与季度虚拟变量合并的方法。
所以我的ARIMA模型是:
fit_y <- arima(y, order=c(2,1,2), method="ML")
我知道如何将季节性AR纳入模型:
fit_y <- arima(y, order=c(2,1,2), seasonal=list(order=c(0,1,1), period=4), method="ML")
有没有办法包含季度虚拟变量?我通过excel创建了虚拟变量 - 手动 - 并将它们命名为Q1,Q2,Q3,Q4,具有以下规范,以便R将它们作为时间序列变量读取:
Q1 <- ts(datafile[,"Q1"], start=1960, frequency=4, end=2010)
Q2 <- ts(datafile[,"Q2"], start=1960, frequency=4, end=2010)
Q3 <- ts(datafile[,"Q3"], start=1960, frequency=4, end=2010)
Q4 <- ts(datafile[,"Q4"], start=1960, frequency=4, end=2010)
答案 0 :(得分:0)
您是否尝试在arima中使用xreg参数? xreg,外部回归量,将允许您在您的arima中包含虚拟变量。我通常为我的xreg创建一个矩阵,它将包含我的所有虚拟变量。下面是我如何为每日虚拟变量执行此操作的示例。
dfTs$wday <- wday(dfTs$date)
xreg <- cbind(wday=model.matrix(~as.factor(dfTs$wday)))
xreg <- xreg[,-1] # drop intercept
colnames(xreg) <- c("Mon", "Tue", "Wed", "Thur", "Fri", "Sat")
fit <- arima(dfTs, order = c(2,1,2),
seasonal = list(order = c(0,1,1), period = 4),
method = "ML", xreg = xreg)
答案 1 :(得分:0)
您可以通过arima
选项xreg将虚拟变量添加到arima模型。
y <- ts(datafile[,"y"], start=1960, frequency=4)
Q1 <- ts(rep(c(1,0,0,0),44), start=1960, frequency=4)
Q2 <- ts(rep(c(0,1,0,0),44), start=1960, frequency=4)
Q3 <- ts(rep(c(0,0,1,0),44), start=1960, frequency=4)
xreg <- cbind(Q1,Q2,Q3)
fit_y <- arima(y, order=c(2,1,2), method = "ML", xreg = xreg)
注意:(i)我没有添加Q4,以避免虚拟陷阱(参见例如question about dummy trap),以及(ii)您可以在R中轻松生成这些Q1,Q2和Q3。