2017-02-08 2 views
0

J'ai des problèmes avec ma première implémentation de prévision dans R. Ce que je voudrais faire est de prédire la variable Y avec 2 variables exogènes X1 et X2. Les 3 jeux de données sont chacun représentés sous la forme d'une seule colonne avec 12 lignes.Prévision avec ARIMA et xreg dans R

D'un autre Stackpost j'ai suivi une approche similaire:

DataSample <- data.frame(Y=Y[,1],Month=rep(1:12,1), 
        X1=X1[,1],X2=X2[,1]) 

predictor_matrix <- cbind(Month=model.matrix(~as.factor(DataSample$Month)), 
          X1=DataSample$X1, 
          X2=DataSample$X2) 
# Remove intercept 
predictor_matrix <- predictor_matrix[,-1] 

# Rename columns 
colnames(predictor_matrix) <- c("January","February","March","April","May","June","July","August","September","October","November","X1","X2") 

# Variable to be modeled 
var <- ts(DataSample$Y, frequency=12) 

#Find ARIMA 
modArima <- auto.arima(var, xreg = predictor_matrix) 

A cette ligne, je reçois l'erreur suivante:

Error in optim(init[mask], armaCSS, method = optim.method, hessian = FALSE, : non-finite value supplied by optim

Je présume que mon predictor_matrix n'est pas dans le bon format, mais je peux Ne trouve pas l'erreur.

Toute aide serait appréciée,

Répondre

0

Vous avez indiqué "jeux de données sont ... 12 lignes". Votre matrice de prédicteurs comporte 13 colonnes (11 mois [de variables fictives?] Et 2 autres variables). Par conséquent, vous avez nécessairement une dépendance linéaire entre les colonnes et la procédure d'optimisation échoue.

Vous avez besoin (idéalement) de plus de données pour prendre en charge le nombre de variables prédictives et/ou un ensemble de prédicteurs plus clairsemés.

+0

C'était en effet le problème, j'utilisais un exemple d'un plus grand ensemble de données. Existe-t-il une règle approximative du nombre de jeux de données requis par prédicteur ajouté? – user3488736

+0

Les règles empiriques varient selon le domaine, mais en économie, vous pouvez viser au moins 4 fois le nombre de prédicteurs, étant donné une forte théorie de pré-ajustement pour le caractère raisonnable des variables. Dans d'autres domaines, vous devez avoir beaucoup plus de données, par ex. 8x plutôt que 4x, par ex. psychologie où la signification des variables pourrait être ténue pour commencer. –