Perché dobbiamo scartare una variabile fittizia?


16

Ho imparato che, per creare un modello di regressione, dobbiamo occuparci delle variabili categoriali convertendole in variabili fittizie. Ad esempio, se, nel nostro set di dati, esiste una variabile come posizione:

Location 
----------
Californian
NY
Florida

Dobbiamo convertirli come:

1  0  0
0  1  0
0  0  1

Tuttavia, è stato suggerito di scartare una variabile fittizia, indipendentemente dal numero di variabili fittizie presenti.

Perché dobbiamo scartare una variabile fittizia?


3
Perché il terzo manichino può essere spiegato come la combinazione lineare dei primi due: FL = 1 - (CA + NY).
catenaD

@chainD ma qual è la spiegazione per più di tre variabili fittizie?
Mithun Sarker Shuvro,

2
Qualunque sia il totale, sarà solo 1 in meno del numero totale di categorie che hai. Estendendo il tuo esempio, supponiamo che tutti i 50 stati siano rappresentati nel set di dati. Per un determinato individuo, supponiamo di guardare i primi 49 manichini che sono tutti zeri, quindi si sa che l'ultimo manichino è un 1 anche senza guardare (supponendo che tutti nel set di dati provengano da uno dei 50 stati). In altre parole, le informazioni dell'ultimo manichino sono già contenute nel risultato dei primi 49, per così dire.
catenaD

@chainD grazie
Mithun Sarker Shuvro,

1
se non è primavera, non estate e non autunno, allora è inverno!
Stev,

Risposte:


10

Detto semplicemente perché un livello della tua caratteristica categorica (qui posizione) diventa il gruppo di riferimento durante la codifica fittizia per la regressione ed è ridondante. Sto citando la forma qui "Una variabile categoriale di categorie K, o livelli, di solito inserisce una regressione come una sequenza di variabili fittizie K-1. Ciò equivale a un'ipotesi lineare sulla media dei livelli."

Questo è già stato discusso in questa simpatica risposta stats.stackexchange .

Mi è stato detto che c'è un corso avanzato di Yandex a Coursera che tratta questo argomento in modo più dettagliato se hai ancora dubbi, vedi qui . Nota che puoi sempre controllare gratuitamente il contenuto del corso. ;-)

Un altro bel post se vuoi una spiegazione approfondita con molti esempi con prospettiva statistica e non essere limitato alla sola codifica fittizia, vedi questo da UCLA (in R)

Si noti che se si utilizza pandas.get_dummies, esiste un parametro, ovvero drop_firstse si vuole che i manichini k-1 escano da k livelli categorici rimuovendo il primo livello. Nota default = False, nel senso che il riferimento non viene eliminato e k manichini creati da k livelli categorici!


4
Nota che questo è vero solo se il tuo modello ha un'intercettazione (cioè un termine costante). Altrimenti, usando una codifica a caldo e non scartando una variabile fittizia, si aggiunge implicitamente un'intercetta.
Elias Strehle,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.