セグメント化されたパッケージを使用して、かなりの数の予測子を持つ有馬回帰モデルを構築しています。しかし、モデル予測ステップでは常に次のエラーが表示されます。
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 の予測子の 1 つは TP で、2 つのブレークポイントがあります。データを添付したくないので、孤立変数を使用しましたが、推定は問題ないようです。
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)))
これは本当にイライラします。誰かが助けを与えることができれば、それは大歓迎です!