1

我正在使用分段包来构建具有大量预测变量的 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)))

这真是令人沮丧。如果有人可以提供一些帮助,将不胜感激!

4

0 回答 0