Je fais un smooth.spline()
fit et ensuite une prédiction avec l'ajustement. J'ai le problème que mes nouvelles données ont des NA. Maintenant, j'essaie d'obtenir des NA pour la prédiction aussi. Mais je ne comprends pas ça.prédire newdata avec NA pour smooth.splines
J'ai créé un code reproductible pour illustrer mon problème. Je veux que mes nouvelles données et mes prédictions soient de la même longueur. Je n'ai pas eu ce problème par exemple lors de l'utilisation predict
avec un modèle loess
. Il met automatiquement NA à y
si x
est NA. J'ai vu cette question pour la prédiction d'autres modèles (lm
, glm
, ..) mais les réponses en réglant na.action=na.exclude
ne fonctionnent pas pour moi.
x <- c(1:5, NA, 7:12, NA, 15:19, 22:23)
y <- rnorm(length(x))
y[which(is.na(x))] <-NA
length(y) #20
x.new <- c(x[1:18],20,21,x[19:20])
length(x.new) #22
spl <- smooth.spline(x=x[!is.na(y)], y=y[!is.na(y)], spar=0.001)
spl.pr <- predict(spl, x=x.new[!is.na(x.new)], na.action=na.exclude)
length(spl.pr$y) #20
Ma commande aussi prédire ne fonctionnera pas si je n'exclus pas NAs droit à l'intérieur du predict
Par ex :
> spl.pr <- predict(spl, x=x.new, na.action=na.exclude)
Error in double(n) : vector size cannot be NA
J'espère avoir rendu mon problème compréhensible. L'aide sera très appréciée. Merci
Ok, je m'en doutais. Je n'étais pas sûr cependant parce que je n'ai pas reçu un message d'erreur en utilisant 'na.action = na.exclude' dans la commande. Votre façon de procéder recommandée fonctionne bien, merci! (J'ai voté pour votre réponse, malheureusement, elle ne s'affiche pas en public tant que je n'ai pas gagné un certain nombre de badges- 10 Je pense, edit: ça a l'air de marcher maintenant) – Katharina