Cómo especificar los nudos en R
La ns
función genera una base spline de regresión natural dado un vector de entrada. Los nudos se pueden especificar mediante un argumento de grados de libertad df
que toma un número entero o mediante un argumento de nudos knots
que toma un vector que proporciona la ubicación deseada de los nudos. Tenga en cuenta que en el código que ha escrito
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
no ha solicitado cinco nudos, sino que ha solicitado un solo nudo (interior) en la ubicación 5.
Si utiliza el df
argumento, los nudos interiores se seleccionarán en función de los cuantiles del vector x
. Por ejemplo, si haces la llamada
ns(x, df=5)
Luego, la base incluirá dos nudos límite y 4 nudos internos, colocados en los cuantiles 20, 40, 60 y 80 de x
, respectivamente. Los nudos de límite, por defecto, se colocan en el mínimo y máximo de x
.
Aquí hay un ejemplo para especificar la ubicación de los nudos.
x <- 0:100
ns(x, knots=c(20,35,50))
Si ns(x, df=4)
tuviera que llamar , terminaría con 3 nudos internos en las ubicaciones 25, 50 y 75, respectivamente.
También puede especificar si desea un término de intercepción. Normalmente esto no se especifica ya que ns
se usa con mayor frecuencia junto con lm
, lo que incluye una intercepción implícita (a menos que sea forzado a no hacerlo). Si utiliza intercept=TRUE
en su llamada a ns
, asegúrese de saber por qué lo está haciendo, ya que si hace esto y luego llama lm
ingenuamente, la matriz de diseño terminará siendo deficiente en rango.
Estrategias para colocar nudos
Los nudos se colocan más comúnmente en cuantiles, como el comportamiento predeterminado de ns
. La intuición es que si tiene una gran cantidad de datos agrupados juntos, entonces es posible que desee más nudos allí para modelar cualquier no linealidad potencial en esa región. Pero eso no significa que esta sea (a) la única opción o (b) la mejor opción.
Obviamente, se pueden hacer otras elecciones y son específicas del dominio. Mirar los histogramas y las estimaciones de densidad de sus predictores puede proporcionar pistas sobre dónde se necesitan los nudos, a menos que haya alguna opción "canónica" dada sus datos.
En cuanto a la interpretación de las regresiones, me gustaría señalar que, si bien puedes "jugar" con la colocación de nudos, debes darte cuenta de que incurres en una penalización por selección de modelo por lo que debes tener cuidado de evaluar y ajustar cualquier inferencia como un resultado.