2016-06-05 5 views
1

Ich habe gerade mit der R- und Zeitreihenprognose begonnen. Ich mache Prognosen für 1 Variable (Verbrauch) und eine exogene Variable (Einkommen). Dies sind vierteljährliche Daten. Wenn ich das Modell mit R-Code lief,Fehler erhalten "'xreg' und 'newxreg' haben unterschiedliche Anzahlen von Spalten"

#train_exp <- exp_trial[,1][1:150]  
    #train_inc <- exp_trial[,2][1:150]  

enter image description here

model_train_exp <- arima(train_exp,order = c(0,2,6),seasonal = list(order=c(0,1,1),period = 4), xreg = train_inc)  

dieses Modell keine Fehler hat. aber, wenn ich es prognostiziert, bekomme ich einen Fehler XREG‘und‚newxreg‘haben eine unterschiedliche Anzahl von Spalten

forcasted_arima <- forecast.Arima(model_train_exp, h=14)  

gibt es so viele Argumente für forecast.arima. Ich kenne diese nicht. Kann mir bitte jemand sagen, wie der Code dafür sein soll?

+0

Sie Ihre Daten als Bild nicht veröffentlichen, bitte lernen, wie ein [reproduzierbares Beispiel] geben (http://stackoverflow.com/questions/5963269/how- To-make-a-great-r-reproduzierbar-Beispiel/5963610) – Jaap

+0

ok. danke ... vom nächsten Mal werde ich das tun –

Antwort

1

Das Modell train_inc verwendet, um das Modell zu machen. Es benötigt mehr train_inc Werte, um die Vorhersage zu beenden. Denken Sie daran, Sie haben das Modell in der Form gebaut. Mit diesem Modell in der Hand, wenn jemand einen Wert für train_exp_t-1 (der Verbrauch von gestern ist) und einen für train_inc_t0 (heutiger Einkommenswert) liefert das Modell eine train_exp_t0 (heutiger Verbrauch) zurück. Sie müssen es mit einigen train_inc Werten versehen, um ein y zu bekommen.

Beispiel

train_exp = rnorm(20) 
train_inc = 1 + rnorm(20) 

fit <- arima(train_exp, xreg=train_inc) 
predict(fit, h=14) 
# Error in predict.Arima(fit, h = 14) : 
# 'xreg' and 'newxreg' have different numbers of columns 

Wir bekommen den gleichen Fehler, den Sie bekommen. Aber wenn wir neue Werte für train_inc liefern, funktioniert es!

new_train_inc <- rnorm(14) 

predict(fit, newxreg=new_train_inc) 
# $pred 
# Time Series: 
# Start = 21 
# End = 34 
# Frequency = 1 
# [1] -0.2444872 -0.1583624 -0.2042488 -0.2143231 -0.1992276 -0.2047153 -0.2431517 -0.1887002 -0.2480745 -0.2118920 
# [11] -0.1281492 -0.2067001 -0.2202669 -0.2166019 
# 
# $se 
# Time Series: 
# Start = 21 
# End = 21 
# Frequency = 1 
# [1] 1.153433 

Wenn es immer noch keinen Sinn machen, denken Sie daran, dass Sie train_exp sagen voraus, nicht train_inc.

Wenn Sie eine formale Diskussion mögen see here at Cross Validated

+0

vielen Dank. aber, was wird der Code für Forecast.Arima? ... anstelle von Vorhersage (fit, newxreg = new_train_inc) ... wie zu prognostizieren.arima .... und was ist der Unterschied zwischen der Verwendung von Predicted und Forecast.arima ? –

+0

kannst du bitte auch für meine anderen qns antworten? –

+0

Ich sehe keine anderen Fragen –

Verwandte Themen