Les posteurs les plus actifs de la semaine
Aytan
Predict avec lm ...  Vote_lcapPredict avec lm ...  Voting_barPredict avec lm ...  Vote_rcap 
c@ssoulet
Predict avec lm ...  Vote_lcapPredict avec lm ...  Voting_barPredict avec lm ...  Vote_rcap 
Adddd
Predict avec lm ...  Vote_lcapPredict avec lm ...  Voting_barPredict avec lm ...  Vote_rcap 
Eric Wajnberg
Predict avec lm ...  Vote_lcapPredict avec lm ...  Voting_barPredict avec lm ...  Vote_rcap 
gg
Predict avec lm ...  Vote_lcapPredict avec lm ...  Voting_barPredict avec lm ...  Vote_rcap 


Predict avec lm ...

Aller en bas

Predict avec lm ...  Empty Predict avec lm ...

Message par statgg le Ven 14 Juin 2013 - 14:09

Bonjour tout le monde, 

Voilà je réalise une régression linéaire avec un modèle polynomiale. Jusqu'ici tout va bien. 
J'essaye après d'obtenir des prédictions sur une nouvelle data frame avec l'intervalle de prédiction à partir du modèle obtenu. 

Problème ça foire complètement. 

Voici mon code : 

Code:
datalm<-datalm[1:15,]

model <- lm( Y ~ X + I(X^2) + I(X^3), data = datalm )
print(model)

new <- data.frame(X = seq(16,30,1))
pred.interval <- predict(lm(datalm$Y ~ datalm$X + I(datalm$X^2) + I(datalm$X^3)), new, interval="prediction")

Le résultat ne correspond pas du tout à ce que j'ai normalement lorsque je trace la fonction Y=a+bX+cX²+dX³ avec les coefficients obtenus avec model. J'obtiens en gros l'intervalle de prédiction pour des valeurs de X allant de 1 à 15 comme dans la data frame originale. 

Voici ma data frame : 

Code:
datalm
      Y    M  V  X
1  111  301  6  1
2  291 1130 15  2
3  481 1356 21  3
4  625 1831 30  4
5  728 1987 33  5
6  819 2204 37  6
7  904 2239 38  7
8  977 2654 42  8
9  1102 2843 47  9
10 1208 3129 51 10
11 1335 3401 58 11
12 1456 3700 63 12
13 1546 3801 66 13
14 1657 4046 73 14
15 1779 4201 77 15


X est ici uniquement le nombre de jours écoulés ... et je souhaite prédire mes valeurs pour les jours suivants, en gros de 16 à 30 (ou 31) selon les mois. 

J'avoue que ça parait bête mais j'ai du mal à saisir où est l'erreur. 

En vous remerciant par avance, 

Gu.

statgg

Nombre de messages : 21
Date d'inscription : 06/06/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Predict avec lm ...  Empty Re: Predict avec lm ...

Message par droopy le Lun 17 Juin 2013 - 7:59

L'erreur vient du fait que tu fais un predict sur un nouveau model ou les variables ne se nomment pas X mais "datalm$X", comme il ne trouve pas ces noms de variables dans l'objet new, alors tu as comme prédiction les valeurs associées à celles qui ont servies à la construction de ton modèle et non à new.
essaie predict(model, new, interval="prediction").
Cdlt
droopy
droopy

Nombre de messages : 1126
Date d'inscription : 04/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Predict avec lm ...  Empty Re: Predict avec lm ...

Message par statgg le Mer 19 Juin 2013 - 8:43

Humm ok. 

J'ai relancé après avoir effacé mon environnement avec predict(model, new, int = "pred") et ça marche. Alors qu'avant ça ne marchait pas ... A priori dans mon environnement il n'y avait pas le bon "model" (j'avais un peu lancé n'importe comment). 

Merci droopy en tout cas, 

Gu.

statgg

Nombre de messages : 21
Date d'inscription : 06/06/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Predict avec lm ...  Empty Re: Predict avec lm ...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum