Come specificare i nodi in R
La ns
funzione genera una base spline di regressione naturale dato un vettore di input. I nodi possono essere specificati tramite un argomento gradi di libertà df
che accetta un numero intero o tramite un argomento nodi knots
che accetta un vettore che fornisce il posizionamento desiderato dei nodi. Nota che nel codice che hai scritto
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
non hai richiesto cinque nodi, ma piuttosto hai richiesto un singolo nodo (interno) nella posizione 5.
Se usi l' df
argomento, i nodi interni verranno selezionati in base ai quantili del vettore x
. Ad esempio, se si effettua la chiamata
ns(x, df=5)
Quindi la base includerà due nodi di confine e 4 nodi interni, posizionati rispettivamente al 20 °, 40 °, 60 ° e 80 ° quantile di x
. I nodi limite, per impostazione predefinita, sono posizionati al minimo e al massimo di x
.
Ecco un esempio per specificare le posizioni dei nodi
x <- 0:100
ns(x, knots=c(20,35,50))
Se invece ns(x, df=4)
dovessi chiamare , finiresti con 3 nodi interni nelle posizioni 25, 50 e 75, rispettivamente.
È inoltre possibile specificare se si desidera un termine di intercettazione. Normalmente questo non è specificato poiché ns
viene spesso utilizzato insieme a lm
, che include un'intercettazione implicitamente (a meno che non sia forzato a non farlo). Se lo usi intercept=TRUE
nella tua chiamata ns
, assicurati di sapere perché lo stai facendo, poiché se lo fai e poi chiami lm
ingenuamente, la matrice di progettazione finirà per essere carente di rango.
Strategie per il posizionamento dei nodi
I nodi sono più comunemente collocati in quantili, come il comportamento predefinito di ns
. L'intuizione è che se hai molti dati raggruppati vicini, allora potresti volere più nodi lì per modellare eventuali non linearità in quella regione. Ma ciò non significa che questa sia (a) l'unica scelta o (b) la scelta migliore.
Altre scelte possono ovviamente essere fatte e sono specifiche del dominio. Guardare gli istogrammi e le stime di densità dei tuoi predittori può fornire indizi su dove sono necessari i nodi, a meno che non ci sia una scelta "canonica" data i tuoi dati.
In termini di interpretazione delle regressioni, noterò che, mentre si può certamente "giocare" con il posizionamento del nodo, è necessario rendersi conto che si incorre in una penalità di selezione del modello per questo che si dovrebbe essere attenti a valutare e adattare qualsiasi inferenza come risultato.