我正在使用分段包来构建具有大量预测变量的 arima 回归模型。但是模型预测步骤总是给我这个错误:
Error in matrix(x.values, nrow = n, ncol = k, byrow = FALSE) :
'data' must be of a vector type, was 'NULL'
我的代码如下。Y_c 是预测变量。X_c 是一个大的预测变量矩阵,而 X_v 本质上是相同的矩阵,但处于验证期。X_c 中的预测变量之一是 TP,它有两个断点。因为我不想附加数据,所以我使用了一个孤立的变量,估计似乎还可以。
fit0 = arima( Y_c, order=c(2,0,1), xreg = data.frame(X_c) )
TP = X_c[,"TP"]
fitS = segmented.Arima( fit0, seg.Z = ~ TP, psi = c(12,17) )
predict.segmented(fitA, newdata=data.frame(X_v) )
但是最后一步给我带来了错误。
我无法找出我对实际数据做错了什么。使用虚拟数据进行测试很好。
x = data.frame( x1=c(1:500), x2 = rnorm(n=500, sd = 30) )
y = x$x1[1:250] * 2 + x$x1[251:500] /2 + x$x2 /2 +
arima.sim( list(ar=c(0.5,0.3), ma=c(0.8)), n = 500 )
ar_model = arima(y, order=c(2,0,1), xreg=x)
x1 = x$x1
seg_model = segmented(ar_model, seg.Z=~x1, psi=c(400),
control=seg.control(display=FALSE, K=1, random=TRUE))
predict.segmented(seg_model, data.frame(x1=c(1:500),x2=c(1:500)))
这真是令人沮丧。如果有人可以提供一些帮助,将不胜感激!