Sto eseguendo un LASSO che ha alcuni predittori di variabili categorici e alcuni continui. Ho una domanda sulle variabili categoriche. Il primo passo che capisco è quello di dividere ciascuno di loro in manichini, standardizzarli per una giusta penalizzazione e quindi regredire. Diverse opzioni sorgono per il trattamento delle variabili fittizie:
Includi tutti i manichini tranne uno per ogni fattore, lasciando quello come livello di riferimento. L'interpretazione di un coefficiente fittizio è relativa alla categoria di "riferimento" esclusa. L'intercettazione è ora la risposta media per la categoria di riferimento.
Raggruppa le variabili in ciascun fattore in modo che siano tutte escluse o tutte tranne una. Credo che sia ciò che @Glen_b sta suggerendo qui :
Normalmente sì, tieni tutti i tuoi fattori uniti. Esistono diversi pacchetti R che possono farlo, incluso glmnet
Includi tutti i livelli, come suggerito da @Andrew M qui :
È inoltre possibile modificare la funzione di contrasto predefinita, che per impostazione predefinita esclude un livello di ciascun fattore (codifica del trattamento). Ma a causa della penalità del lazo, questo non è più necessario per l'identificabilità, e in effetti rende più complicata l'interpretazione delle variabili selezionate. Per fare questo, impostare
contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
Ora, qualunque sia il livello di un fattore selezionato, puoi pensare che suggerisca che questi livelli specifici contano, rispetto a tutti i livelli omessi. Nell'apprendimento automatico, ho visto questa codifica definita codifica one-hot.
Domande:
- Qual è l'interpretazione dell'intercetta e dei coefficienti in ciascuno di questi approcci?
- Quali sono le considerazioni relative alla selezione di uno di essi?
- Annulliamo la scala dei coefficienti fittizi e li interpretiamo come un cambiamento di passaggio da spento a acceso?