Je voudrais construire des prédictions pour un modèle mixte (logistique via glmer) sur un nouvel ensemble de données en utilisant uniquement les effets fixes, en maintenant les effets aléatoires à 0. Mais j'ai du mal à configurer la matrice du modèle pour pouvoir les calculer.
Étant donné que la classe mer n'a pas de méthode de prédiction et que je souhaite omettre les effets aléatoires pour les prédictions sur le nouvel ensemble de données, je pense que je dois construire une matrice de modèle pour les effets fixes de la même structure utilisée dans l'original modèle, mais en utilisant les nouvelles données. Multipliez ensuite par les coefficients à effet fixe dans le modèle.
La partie à effet fixe de ma formule de modèle contient des facteurs et des termes d'interaction entre les effets fixes numériques, c'est donc un peu plus compliqué que d'extraire simplement les variables fixes de la matrice. Par exemple, je dois m'assurer que l'expansion du contraste du facteur est la même que l'original, les termes d'interaction sont correctement répertoriés, etc.
Ma question est donc la suivante: quelle est l'approche générale la plus simple pour construire une nouvelle matrice de modèle qui imite la structure de la matrice de modèle d'origine utilisée pour créer le modèle?
J'ai essayé model.matrix (my.model, data = newdata) mais cela semble renvoyer la matrice de modèle d'origine, pas une basée sur newdata.
Exemple de code:
library(lme4)
cake2 <- head(cake) # cake2 is "new" data frame for future predictions
# recipe is a fixed effect factor, temp is fixed effect numeric, replicate is random effect
m <- lmer(angle ~ temp + recipe + (1 | replicate), data=cake)
summary(m)
nrow(cake2) # but new data frame has 6 rows
nrow(cake) # original data frame has 270 rows
# attempt to make new model matrix using different data frame
mod.mat.cake2 <- model.matrix(m, data=cake2)
nrow(mod.mat.cake2) # 270 rows, same as orig data frame
J'ai essayé d'autres méthodes comme extraire les termes de la formule et en construire une nouvelle, mais cela semblait trop compliqué et fragile dans la gestion des facteurs et des termes d'interaction.
Comment puis-je obtenir que mod.mat.cake2 soit une matrice de modèle à effet fixe basée sur la formule en m, mais en utilisant les valeurs de cake2? Ou existe-t-il un moyen plus simple d'obtenir des prédictions à effet fixe uniquement à partir d'un modèle lmer?
Toute aide est appréciée. Je vous remercie.
la source
lm()
et extraire la matrice du modèle de l'ajustement, et l'appliquer à la coefficients du modèle de l'ajustement précédent.Réponses:
C'est peut-être de la triche, mais
Remarque:
lme4.0
ici, qui est la version r-forge de « vieux » (CRAN)lme4
: vous pouvez remplacerlme4
parlme4.0
le code ci - dessusla nouvelle version (r-forge / development) de
lme4
possède unepredict
méthode: dans ce casfonctionne bien (
re.form=NA
met tous les effets aléatoires à zéro, équivalent àlevel=0
l'ancienpredict.lme
)la source