Je dois appliquer lm()
à un sous-ensemble élargi de ma base de données dat
, tout en effectuant une prédiction pour l'observation suivante. Par exemple, je fais:Régression linéaire et prédiction avec lm() et predict()
fit model predict
---------- -------
dat[1:3, ] dat[4, ]
dat[1:4, ] dat[5, ]
. .
. .
dat[-1, ] dat[nrow(dat), ]
Je sais ce que je dois faire pour un sous-ensemble particulier (lié à cette question: predict() and newdata - How does this work?). Par exemple, pour prédire la dernière ligne, je
dat1 = dat[1:(nrow(dat)-1), ]
dat2 = dat[nrow(dat), ]
fit = lm(log(clicks) ~ log(v1) + log(v12), data=dat1)
predict.fit = predict(fit, newdata=dat2, se.fit=TRUE)
Comment puis-je faire cela automatiquement pour tous les sous-ensembles, et potentiellement extraire ce que je veux dans une table?
- De
fit
, j'aurais besoin dusummary(fit)$adj.r.squared
; - De
predict.fit
J'aurais besoin de la valeurpredict.fit$fit
.
Merci.
J'ai ajouté un exemple de la façon de créer une table de résultats à partir de la sortie, s'il vous plaît vérifier. Je l'ai seulement fait pour l'un des 3 types d'objets de sortie que ma solution produit, mais la même méthodologie fonctionne pour tous les trois. –