Pourquoi devons-nous simuler des variables catégorielles


22

Je ne sais pas pourquoi nous devons simuler des variables catégorielles. Par exemple, si j'ai une variable catégorielle avec quatre valeurs possibles 0,1,2,3, je peux la remplacer par deux dimensions. Si la variable avait la valeur 0, elle aurait 0,0 dans les deux dimensions, si elle en avait 3, elle aurait 1,1 dans les deux dimensions et ainsi de suite.

Je ne sais pas pourquoi nous devons faire cela?

Réponses:


21

Supposons que vos quatre catégories soient des couleurs pour les yeux (code): marron (1), bleu (2), vert (3), noisette (4) - ignorer l'hétérochromie, violet, rouge, gris, etc. pour le moment.

En aucun cas (ce que je peux imaginer actuellement) ne voudrait-on dire que vert brun, ou que noisette bleu comme le suggèrent nos codes, même si et .=3×=2×3=3×14=2×2

Par conséquent (à moins que nous ne voulions, pour une raison quelconque , que ce sens se glisse dans nos analyses), nous devons utiliser une sorte de codage. Le codage factice en est un exemple, qui élimine de telles relations des histoires statistiques que nous voulons raconter sur la couleur des yeux. Le codage d'effet et le codage de Heckman sont d'autres exemples.

Mise à jour: votre exemple de deux variables pour quatre catégories ne correspond pas à ma compréhension de l'utilisation du terme "code fictif" qui implique généralement de remplacer catégories (disons 4) par k - 1 variables fictives (tri des observations par catégorie):kk-1

id  category  dummy1 dummy2 dummy3
 1         1       1      0      0
 2         1       1      0      0
 3         2       0      1      0
 4         2       0      1      0
 5         3       0      0      1
 6         3       0      0      1
 7         4       0      0      0
 8         4       0      0      0

Ici, la catégorie 4 est la catégorie de référence, en supposant qu'il existe une constante dans votre modèle, telle que:

y=β0+β11+β22+β33+ε

où est la valeur moyenne de lorsque category = 4, et les termes associés à chaque mannequin indiquent par quel montant change de pour cette catégorie.β0yβyβ0

Si vous n'avez pas de terme constant ( ) dans le modèle, alors vous avez besoin d'un autre prédicteur "factice" (peut-être moins souvent appelé "variables indicatrices"), en fait les variables muettes se comportent alors chacune comme la constante du modèle pour chaque catégorie:β0

y=β11+β22+β33+β44+ε

Donc, cela permettrait de contourner la question de la création de relations quantitatives absurdes entre les codes de catégorie que je mentionne au début, mais pourquoi ne pas utiliser le codage user12331 comme vous le suggérez? Candidat de codage utilisateur12331 A:

id  category   code1  code2
 1         1       0      ?
 2         1       0      ?
 3         2       1      ?
 4         2       1      ?
 5         3       ?      0
 6         3       ?      0
 7         4       ?      1
 8         4       ?      1

vous avez tout à fait raison de souligner que l' on peut représenter 4 valeurs en utilisant 2 variables binaires (c'est-à-dire deux bits). Malheureusement, une approche à ce sujet (code1 pour les catégories 1 et 2 et code2 pour les catégories 3 et 4) laisse l'ambiguïté indiquée par les points d'interrogation: quelles valeurs y iraient?!

Eh bien, qu'en est-il d'une deuxième approche, appelez-le candidat B1212 codage utilisateur:

id  category   code1  code2
 1         1       0      0
 2         1       0      0
 3         2       0      1
 4         2       0      1
 5         3       1      0
 6         3       1      0
 7         4       1      1
 8         4       1      1

Là! Aucune ambiguïté, non? Droite! Malheureusement, tout ce codage ne représente que les quantités numériques 1–4 (ou 0–3) en notation binaire , ce qui laisse intact le problème de donner ces relations quantitatives indésirables aux catégories.

D'où la nécessité d'un autre schéma de codage.

β


5
Bien que cette réponse démontre la raison pour laquelle nous ne pouvons pas utiliser une variable (c'est-à-dire que nous avons en effet besoin de "une sorte de codage"), elle n'explique pas (encore) pourquoi nous ne pouvons pas le faire avec disons deux variables, comme le PO suggère dans la question.
Glen_b -Reinstate Monica

@Glen_b Merci. J'espère que ma mise à jour a aidé à répondre.
Alexis

2
Notez que 2 variables binaires sont suffisantes pour représenter 4 catégories [(0,0), (0,1), (1,0), (1,1)], mais ce n'est pas la manière appropriée de simuler le code pour l'analyse. L'OP semble coder incorrectement.
Ellis Valentiner

@ user12202013 Oui. Comme dans mon dernier exemple.
Alexis

Et si je devais faire un codage binaire en utilisant deux variables comme suggéré par OP, mais si l'objectif est la prédiction, un classificateur / régresseur non paramétrique et non linéaire ne fonctionnerait-il pas aussi bien?
tool.ish

1

Mon point de vue sur cette question est que le codage des quatre états possibles avec seulement deux variables est moins expressif avec certains algorithmes d'apprentissage automatique que l'utilisation de 4 variables.

Par exemple, imaginez que vous souhaitez effectuer une régression linéaire et votre véritable mappage mappe les valeurs 0,1 et 2 à 0 et la valeur 3 à 1. Vous pouvez rapidement vérifier qu'il n'y a aucun moyen d'apprendre ce mappage avec la régression linéaire lors du codage votre variable catégorielle avec seulement deux variables binaires (essayez simplement d'ajuster le plan correspondant dans votre tête). En revanche, lorsque vous utilisez un codage 1-Of-K, ce ne sera pas un problème.


0

Votre alternative est également un code factice. Vous choisissez le code factice qui exprime le mieux la relation avec votre variable dépendante. Par exemple, la couleur peut être exprimée comme 1 de n, ou vous pouvez vous transformer en composants rgb numériques, ou vous pouvez classer: girly / muddy / ... 1 de n signifie essentiellement que chaque instance est apprise séparément, ce qui est bien s'il n'y a pas de relation. .. mais là où il y a une relation, vous gaspillez vos données .. vous devez estimer séparément le coefficient pour chaque instance de la catégorie ... considérer l'emploi comme une variable catégorielle. Vous pouvez re-catégoriser comme secteur de marché et ancienneté.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.