Mis preguntas tratan sobre los GAM en el paquete mgcv R. Debido a un tamaño de muestra pequeño, quiero determinar el error de predicción utilizando la validación cruzada de dejar uno fuera. ¿Es esto razonable? ¿Hay un paquete o código de cómo puedo hacer esto? La errorest()
función en el paquete ipred no funciona. Un conjunto de datos de prueba simple es:
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")
¡Muchas gracias por tu ayuda!
r
cross-validation
gam
mgcv
Peter
fuente
fuente
Respuestas:
Me gusta mucho el paquete
caret
para este tipo de cosas, pero por desgracia acabo de leer que no se puede especificar elformula
engam
exactamente para ello."Cuando usas train con este modelo, no puedes (en este momento) especificar la fórmula gam. Caret tiene una función interna que calcula una fórmula basada en cuántos niveles únicos tiene cada predictor, etc. En otras palabras, train actualmente determina qué los términos se suavizan y son simples efectos principales lineales antiguos ".
fuente: /programming/20044014/error-with-train-from-caret-package-using-method-gam
pero si permite
train
seleccionar los términos suaves, en este caso produce su modelo exactamente de todos modos. La métrica de rendimiento predeterminada en este caso es RMSE, pero puede cambiarla utilizando elsummaryFunction
argumento de latrainControl
función.Creo que uno de los principales inconvenientes de LOOCV es que cuando el conjunto de datos es grande, lleva una eternidad. Como su conjunto de datos es pequeño y funciona bastante rápido, creo que es una opción sensata.
Espero que esto ayude.
salida:
fuente
En el pdf de la biblioteca mgcv dice;
"Dada una estructura de modelo especificada por una fórmula de modelo de gam, gam () intenta encontrar la suavidad apropiada para cada término de modelo aplicable utilizando criterios de error de predicción o métodos basados en la probabilidad. Los criterios de error de predicción utilizados son Validación cruzada generalizada (aproximada) (GCV o GACV) cuando el parámetro de escala es desconocido o un Estimador de riesgo no sesgado (UBRE) cuando se conoce ".
"gam en mgcv resuelve el problema de estimación de parámetros de suavizado utilizando el criterio de Validación Cruzada Generalizada (GCV): nD / (n - DoF) 2
o
un criterio de estimador de riesgo no sesgado (UBRE): D / n + 2sDoF / n - s "
fuente