Mes questions portent sur les GAM dans le package mgcv R. En raison de la petite taille de l'échantillon, je souhaite déterminer l'erreur de prédiction à l'aide de la validation croisée avec laisser-un-out. Est-ce raisonnable? Existe-t-il un package ou un code pour y parvenir? La errorest()
fonction du package ipred ne fonctionne pas. Un jeu de données de test simple est:
library(mgcv)
set.seed(0)
dat <- gamSim(1,n=400,dist="normal",scale=2)
b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
summary(b)
pred <- predict(b, type="response")
Merci beaucoup pour votre coup de main!
r
cross-validation
gam
mgcv
Peter
la source
la source
Réponses:
J'aime vraiment le package
caret
pour des choses comme ça, mais malheureusement, je viens de lire que vous ne pouvez pas spécifier leformula
pourgam
exactement."Lorsque vous utilisez train avec ce modèle, vous ne pouvez pas (pour le moment) spécifier la formule gam. Caret a une fonction interne qui détermine une formule basée sur le nombre de niveaux uniques de chaque prédicteur, etc. En d'autres termes, le train détermine actuellement lequel les termes sont lissés et qui sont de simples effets principaux linéaires. "
source: /programming/20044014/error-with-train-from-caret-package-using-method-gam
mais si vous laissez
train
sélectionner les termes lisses, dans ce cas, cela produit votre modèle exactement de toute façon. La métrique de performance par défaut dans ce cas est RMSE, mais vous pouvez la modifier à l'aide de l'summaryFunction
argument de latrainControl
fonction.Je pense que l'un des principaux inconvénients de LOOCV est que lorsque l'ensemble de données est volumineux, cela prend une éternité. Étant donné que votre ensemble de données est petit et qu'il fonctionne assez rapidement, je pense que c'est une option raisonnable.
J'espère que cela t'aides.
production:
la source
Dans la bibliothèque mgcv pdf, il est dit;
"Étant donné une structure de modèle spécifiée par une formule de modèle gam, gam () tente de trouver la régularité appropriée pour chaque terme de modèle applicable en utilisant des critères d'erreur de prédiction ou des méthodes basées sur la vraisemblance. Les critères d'erreur de prédiction utilisés sont la validation croisée généralisée (approximative) (GCV ou GACV) lorsque le paramètre d'échelle est inconnu ou un estimateur de risque non biaisé (UBRE) lorsqu'il est connu. "
"gam in mgcv résout le problème d'estimation des paramètres de lissage en utilisant le critère de validation croisée généralisée (GCV): nD / (n - DoF) 2
ou
un critère d'estimation de risque non biaisé (UBRE): D / n + 2sDoF / n - s "
la source