2017-03-12 3 views
3

J'ai un modèle gamlss que je voudrais utiliser pour faire de nouvelles prédictions y (et intervalles de confiance) afin de visualiser à quel point le modèle correspond aux données réelles. Je voudrais faire des prédictions à partir d'un nouvel ensemble de données de prédicteurs aléatoires (plutôt que les données d'origine), mais je cours dans un message d'erreur. Voici quelques exemples de code:Erreur lors de la prédiction de nouvelles valeurs ajustées à partir de l'objet R gamlss

library(gamlss)  

# example data 
irr <- c(0,0,0,0,0,0.93,1.4,1.4,2.3,1.5) 
lite <- c(0,1,2,2.5) 
blck <- 1:8 
raw <- data.frame(
    css =abs(rnorm(500, mean=0.5, sd=0.1)), 
    nit =abs(rnorm(500, mean=0.72, sd=0.5)), 
    irr =sample(irr, 500, replace=TRUE), 
    lit =sample(lite, 500, replace=TRUE), 
    block =factor(sample(blck, 500, replace=TRUE)) 
) 

# the model 
mod <- gamlss(css~nit + irr + lit + random(block), 
     sigma.fo=~irr*nit + random(block), data=raw, family=BE) 

# new data (predictors) for making css predictions 
pred <- data.frame(
nit =abs(rnorm(500, mean=0.72, sd=0.5)), 
irr =sample(irr, 500, replace=TRUE), 
lit =sample(lite, 500, replace=TRUE), 
block =factor(sample(blck, 500, replace=TRUE)) 
) 

# make predictions 
predmu <- predict(mod, newdata=pred, what="mu", type="response") 

Cela donne l'erreur suivante:

Error in data[match(names(newdata), names(data))] : 
    object of type 'closure' is not subsettable 

Quand je lance ceci sur mes données réelles, il donne cette erreur légèrement différente:

Error in `[.data.frame`(data, match(names(newdata), names(data))) : 
    undefined columns selected 

Quand je utiliser predict sans newdata, cela fonctionne bien faire des prédictions sur les données d'origine, comme dans:

predmu <- predict(mod, what="mu", type="response") 

Est-ce que j'utilise prévoir mal? Toutes les suggestions sont grandement appréciées! Je vous remercie.

Répondre

0

Non, vous n'avez pas tort. J'ai connu le même problème.

La documentation indique que l'implémentation de prédire est incomplète. cela semble être un exemple d'une fonctionnalité/fonction incomplète.

+0

Bummer! Eh bien, merci pour la vérification et l'info, @Hedgehog! J'ai depuis déplacé ce modèle dans lmer(), qui a fonctionné pour cela. Mais il serait utile de faire cela pour gamlss. – BonnieM