Pourquoi devons-nous éliminer une variable fictive?

16

J'ai appris que, pour créer un modèle de régression, nous devons prendre soin des variables catégorielles en les convertissant en variables fictives. Par exemple, si, dans notre ensemble de données, il existe une variable comme l'emplacement:

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

Nous devons les convertir comme:

1  0  0
0  1  0
0  0  1

Cependant, il a été suggéré que nous devions éliminer une variable fictive, quel que soit le nombre de variables fictives.

Pourquoi devons-nous éliminer une variable fictive?

Mithun Sarker Shuvro
la source
3
Parce que le troisième mannequin peut être expliqué comme la combinaison linéaire des deux premiers: FL = 1 - (CA + NY).
chainD
@chainD mais quelle est l'explication de plus de trois variables muettes?
Mithun Sarker Shuvro
2
Quel que soit le total, ce sera juste 1 de moins que le nombre total de catégories que vous avez. En étendant votre exemple, supposons que les 50 états étaient représentés dans l'ensemble de données. Pour un individu donné, disons que vous regardez les 49 premiers mannequins qui se trouvent être tous des zéros, alors vous savez que le dernier mannequin est un 1 même sans regarder (en supposant que tout le monde dans l'ensemble de données provient de l'un des 50 états). En d'autres termes, les informations du dernier mannequin sont déjà contenues dans le résultat des 49 premiers, pour ainsi dire.
chainD
@chainD merci
Mithun Sarker Shuvro
1
si ce n'est pas le printemps, ni l'été ni l'automne, c'est l'hiver!
Stev

Réponses:

10

Autrement dit, car un niveau de votre caractéristique catégorielle (ici l'emplacement) devient le groupe de référence pendant le codage factice pour la régression et est redondant. Je cite le formulaire ici "Une variable catégorielle de K catégories, ou niveaux, entre généralement dans une régression comme une séquence de variables fictives K-1. Cela équivaut à une hypothèse linéaire sur les moyennes de niveau."

Ceci est déjà discuté dans cette très belle réponse stats.stackexchange .

On m'a dit qu'il y a un cours avancé par Yandex à Coursera qui couvre ce sujet plus en détail si vous avez encore des doutes, voir ici . Notez que vous pouvez toujours auditer gratuitement le contenu du cours. ;-)

Un autre bon article si vous voulez une explication approfondie avec beaucoup d'exemples avec une perspective statistique et ne se limitant pas au codage factice, voir ceci de UCLA (en R)

Notez que si vous utilisez pandas.get_dummies, il y a un paramètre, c'est-à-dire drop_firstpour savoir s'il faut retirer k-1 des nuls des k niveaux catégoriels en supprimant le premier niveau. Veuillez noter default = False, ce qui signifie que la référence n'est pas supprimée et k nuls créés à partir de k niveaux catégoriels!

TwinPenguins
la source
4
Notez que cela n'est vrai que si votre modèle a une interception (c'est-à-dire un terme constant). Sinon, en utilisant un codage à chaud et en ne supprimant pas une variable fictive, vous ajoutez implicitement une interception.
Elias Strehle