Comment spécifier les nœuds dans R
La ns
fonction génère une base de spline de régression naturelle à partir d'un vecteur d'entrée. Les nœuds peuvent être spécifiés via un argument de degrés de liberté df
qui prend un entier ou via un argument de nœuds knots
qui prend un vecteur donnant l'emplacement souhaité des nœuds. Notez que dans le code que vous avez écrit
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
vous n'avez pas demandé cinq nœuds, mais avez plutôt demandé un seul nœud (intérieur) à l' emplacement 5.
Si vous utilisez l' df
argument, les nœuds intérieurs seront sélectionnés en fonction des quantiles du vecteur x
. Par exemple, si vous passez l'appel
ns(x, df=5)
Ensuite, la base comprendra deux nœuds limites et 4 nœuds internes, placés respectivement aux 20e, 40e, 60e et 80e quantiles x
. Les nœuds limites, par défaut, sont placés au minimum et au maximum de x
.
Voici un exemple pour spécifier les emplacements des nœuds
x <- 0:100
ns(x, knots=c(20,35,50))
Si vous deviez plutôt appeler ns(x, df=4)
, vous vous retrouveriez avec 3 nœuds internes aux emplacements 25, 50 et 75, respectivement.
Vous pouvez également spécifier si vous souhaitez un terme d'interception. Normalement, cela n'est pas spécifié car ns
est le plus souvent utilisé en conjonction avec lm
, ce qui inclut une interception implicitement (sauf si forcé de ne pas le faire). Si vous utilisez intercept=TRUE
dans votre appel à ns
, assurez-vous de savoir pourquoi vous le faites, car si vous faites cela et appelez lm
naïvement, la matrice de conception finira par être déficiente en termes de rang.
Stratégies pour placer des nœuds
Les nœuds sont le plus souvent placés aux quantiles, comme le comportement par défaut de ns
. L'intuition est que si vous avez beaucoup de données regroupées les unes à côté des autres, vous voudrez peut-être plus de nœuds pour modéliser les non-linéarités potentielles dans cette région. Mais cela ne signifie pas que ce soit (a) le seul choix ou (b) le meilleur choix.
D'autres choix peuvent évidemment être faits et sont spécifiques au domaine. La consultation d'histogrammes et d'estimations de densité de vos prédicteurs peut fournir des indices quant à l'endroit où les nœuds sont nécessaires, sauf s'il existe un choix "canonique" compte tenu de vos données.
En termes d'interprétation des régressions, je voudrais noter que, bien que vous puissiez certainement "jouer" avec le placement des nœuds, vous devez vous rendre compte que vous encourez une pénalité de sélection de modèle pour cela que vous devez faire attention à évaluer et ajuster toutes les inférences en tant que résultat.