Al seleccionar un número apropiado de nudos para un GAM, uno puede tener en cuenta el número de datos e incrementos en el eje x.
¿Qué pasa si tenemos 100 incrementos en el eje x con 1000 puntos de datos en cada incremento?
La información aquí dice:
Si no se suministran, los nudos de la spline se colocan de manera uniforme a lo largo de los valores covariables a los que se refiere el término: por ejemplo, si se ajustan 101 datos con una spline de 11 nudos de x, entonces habría un nudo cada 10 (ordenado) x valor
Entonces, ¿un comienzo básico debería ser de 9 nudos en este ejemplo? No estoy seguro de qué rango de nudos sería adecuado para este conjunto de datos, ya que es posible ajustar números muy pequeños a muy grandes.
set.seed(1)
dat <- data.frame(y = rnorm(10000), x = 100)
library(ggplot)
ggplot(dat, aes(x = x, y = y)) +
geom_point(size= 0.5) +
stat_smooth(method = "gam",
formula = y ~ s(x, bs = "cs"),k=9, col = "black")
Si k = 25 proporcionó un ajuste útil, ¿sería razonable para estos datos?
bs = "cs"
término en la spline?k
equivalente a especificark=-1
?¿De dónde viene la idea de que GCV elegirá automáticamente el número de nudos? El número de nudos (es decir, la dimensión base) es fijo y no se puede cambiar durante el ajuste del modelo. Lo que el puntaje del GCV en la función gam () está haciendo "automáticamente" no es elegir la dimensión base k, como dice Ira S, sino elegir el nivel uniforme de cada spline básico al introducir una penalización de wigliness en el objetivo de minimización o ajuste. Para elegir la cantidad de nudos k debe usar un valor mayor que la cantidad de grados de libertad que espera. Citando la ayuda de choose.k: "la elección exacta de k no es generalmente crítica: debe elegirse para que sea lo suficientemente grande como para estar razonablemente seguro de tener suficientes grados de libertad para representar la 'verdad' subyacente razonablemente bien, pero lo suficientemente pequeña para mantener una eficiencia computacional razonable ". Entonces, básicamente aumente k en pasos grandes hasta que no vea cambios en su trama, por ejemplo. Resumiendo: No hay nada como una opción "automática" para k como dice Ira S, el usuario deberíasiempre elija un valor k como parte del diseño del modelo. De lo contrario, lo más probable es que no esté ajustando su modelo.
fuente