À l'aide de lm et de prédire les données dans des matrices
- Je utiliser R
seulement un peu, et de ne jamais utiliser des trames de données, ce qui rend la compréhension de l'utilisation correcte de prédire difficile. J'ai mes données dans la plaine de matrices, pas de trames de données, de les appeler a
et b
, qui sont N x p
et M x p
matrices respectivement. Je peux courir la régression lm(a[,1] ~ a[,-1])
. Je voudrais utiliser le lm
objet de prévoir b[,1]
de b[,-1]
. Mon naïf deviner de predict(lm(a[,1] ~ a[,-1]), b[,-1])
ne fonctionne pas. Quelle est la bonne syntaxe à utiliser le lm
pour obtenir un vecteur de prédictions?
Ce n'
parce que je ne comprends pas comment utiliser
Veuillez faire votre exemple reproductible.
Vous avez essayé
doesn't work
dire à votre question? Et pourquoi ne pas simplement utiliser data.frame
'.parce que je ne comprends pas comment utiliser
data.frame
s. C'est la question. J'ai essayé quelques options plausibles de mettre mes trucs dans des trames de données, et qui n'a pas l'air de fonctionner. Je suis sûr que la réponse est très simple, je suis juste frustré de deviner au niveau de la syntaxe.Veuillez faire votre exemple reproductible.
Vous avez essayé
a <- as.data.frame( a )?
OriginalL'auteur pythonic metaphor | 2013-03-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez stocker un ensemble de matrice à une colonne d'une
data.frame
:Le papier sur le package pls, (Mevik, B.-H. et Wehrens, R. Le Package pls: en composantes Principales et de la Régression des moindres Carrés Partiels dans la R Journal d'un Logiciel Statistique, 2007, 18, 1 - 24.) explique cette technique.
Un autre exemple, avec un ensemble de données spectroscopiques (quinine fluorescence), est en
vignette ("grippe")
de mon colis hyperSpec.OriginalL'auteur cbeleites
De faire
data.fram
's de votre matrices, il suffit de faire:Et effectuer une régression linéaire:
Ou de régression multiple:
en supposant que les colonnes
V1
-V4
sont présents dansb
.voir mon edit pour plus d'informations.
Vous pouvez créer la formule à la volée, par exemple
as.formula(sprintf("V1 ~ %s", paste(names(df)[2:4], collapse = " + ")))
.Mais en effectuant une régression linéaire avec des centaines de prédicteurs est douteux, vous êtes probablement à côté d'un beaucoup de bruit.
n'oubliez pas
lm(V1~.)
...OriginalL'auteur Paul Hiemstra
On peut calculer les prédictions manuellement:
Ici,
fit$coefficients[1]
est l'ordonnée à l'origine, etfit$coefficients[-1]
sont les remaning coefficients (et%*%
est la matrice de la multiplication).C'est rapide, mais le coût de ne pas avoir les cloches et de sifflets de
predict
(intervalles de confiance, la prédiction des intervalles).OriginalL'auteur NPE