J'essaie de lancer un modèle lme avec ces données:
tot_nochc=runif(10,1,15)
cor_partner=factor(c(1,1,0,1,0,0,0,0,1,0))
age=runif(10,18,75)
agecu=age^3
day=factor(c(1,2,2,3,3,NA,NA,4,4,4))
dt=as.data.frame(cbind(tot_nochc,cor_partner,agecu,day))
attach(dt)
corpart.lme.1=lme(tot_nochc~cor_partner+agecu+cor_partner *agecu,
random = ~cor_partner+agecu+cor_partner *agecu |day,
na.exclude(day))
Je reçois ce code d'erreur:
Erreur dans na.fail.default (list (cor_partner = c (1L, 1L, 2L, 1L, 1L, 1L): valeurs manquantes dans l'objet
Je suis conscient qu'il y a des questions similaires dans le forum. Cependant, dans mon cas:
Je pourrais exclure ces valeurs NA avec une action na.action, mais je préférerais savoir pourquoi la fonction lit les valeurs manquantes - pour comprendre exactement ce qui se passe dans mes données.
tl; dr vous devez utiliser na.exclude()
(ou autre chose) sur l'ensemble du bloc de données à la fois, afin que les observations restantes restent appariées pour toutes les variables ...
set.seed(101)
tot_nochc=runif(10,1,15)
cor_partner=factor(c(1,1,0,1,0,0,0,0,1,0))
age=runif(10,18,75)
agecu=age^3
day=factor(c(1,2,2,3,3,NA,NA,4,4,4))
## use data.frame() -- *DON'T* cbind() first
dt=data.frame(tot_nochc,cor_partner,agecu,day)
## DON'T attach(dt) ...
Essayez maintenant:
library(nlme)
corpart.lme.1=lme(tot_nochc~cor_partner+agecu+cor_partner *agecu,
random = ~cor_partner+agecu+cor_partner *agecu |day,
data=dt,
na.action=na.exclude)
Nous avons des erreurs de convergence et des avertissements, mais je pense que cela est dû au fait que nous utilisons un ensemble de données constitué de toute petite taille, sans suffisamment d'informations, et non à cause d'un problème inhérent au code.
randomForest
le paquet a un na.roughfix
fonction qui "impute les valeurs manquantes par médiane/mode"
Vous pouvez l'utiliser comme suit
fit_rf<-randomForest(store~.,
data=store_train,
importance=TRUE,
prOximity=TRUE,
na.action=na.roughfix)
si vos données contiennent des valeurs Na ou manquantes, vous pouvez utiliser cette option, les données seront transmises exactement de la même manière que dans les jeux de données.
rf<-randomForest(target~.,data=train, na.action = na.roughfix)