Manière raisonnée de regrouper des variables catégoriques à plusieurs niveaux?

58

Quelles techniques sont disponibles pour regrouper (ou regrouper) plusieurs catégories en un petit nombre, dans le but de les utiliser comme entrée (prédicteur) dans un modèle statistique?


Considérons une variable comme étudiant majeur (discipline choisie par un étudiant de premier cycle). Il est non ordonné et catégorique, mais il peut potentiellement avoir des dizaines de niveaux distincts. Supposons que je souhaite utiliser major comme prédicteur dans un modèle de régression.

L'utilisation de ces niveaux tels quels pour la modélisation soulève de nombreux problèmes, car ils sont nombreux. On utiliserait beaucoup de précision statistique pour les utiliser, et les résultats sont difficiles à interpréter. Nous sommes rarement intéressés par des majors spécifiques - nous sommes beaucoup plus susceptibles de nous intéresser par de grandes catégories (sous-groupes) de majors. Mais il n'est pas toujours clair de savoir comment répartir les niveaux en de telles catégories de niveau supérieur, ni même le nombre de catégories de niveau supérieur à utiliser.

Pour des données typiques, je serais heureux d’utiliser une analyse factorielle, une factorisation matricielle ou une technique de modélisation discrète. Mais les majors sont des catégories qui s’excluent mutuellement, j’hésite donc à exploiter leur covariance pour quoi que ce soit.

De plus, je me fiche des catégories principales. Je tiens à produire des catégories de niveau supérieur cohérentes par rapport au résultat de ma régression . Dans le cas des résultats binaires, cela me suggère quelque chose comme une analyse discriminante linéaire (ADL) pour générer des catégories de niveau supérieur qui maximisent les performances discriminantes. Mais la LDA est une technique limitée et cela me fait penser à du dragage de données sales. De plus, toute solution continue sera difficile à interpréter.

Pendant ce temps, quelque chose basé sur les covariances, comme l'analyse des correspondances multiples (MCA), me semble suspect dans ce cas en raison de la dépendance inhérente à des variables nominales mutuellement exclusives - elles sont mieux adaptées à l'étude de variables catégorielles multiples plutôt qu'à de multiples catégories de la variable. même variable.

edit : pour être clair, il s’agit de réduire les catégories (et non de les sélectionner), et les catégories sont des prédicteurs ou des variables indépendantes. Avec le recul, ce problème semble être un moment opportun pour "tout régulariser et laisser Dieu les régler". Heureux de voir que cette question intéresse beaucoup de gens!

shadowtalker
la source
2
Dans mon commentaire à stats.stackexchange.com/questions/230636/…, j'ai une longue liste de questions similaires ici! Jetez un coup d'oeil ... Aussi, recherchez sur ce site avec des mots clés "plusieurs niveaux" vous trouverez beaucoup de questions similaires, peu de bonnes réponses.
kjetil b halvorsen
3
J'y reviendrai quand j'aurai le temps ... Entre temps, voici un article très pertinent qui semble répondre à la question, en partie: epub.ub.un.muenchen.de/12164/1/petry_etal_TR102_2011. pdf
kjetil b halvorsen
2
Je ne pense pas avoir compris la question. Mon impulsion naturelle serait en fait d’ajouter plus de variables nominales pour coder les hiérarchies (sans doute autant de hiérarchies différentes que vous pouvez imaginer), puis d’utiliser la régularisation L1 / L2 pour garantir que les catégories de niveau supérieur sont sélectionnés plutôt que les catégories de niveau plus fines. le problème avec les majors, etc., c'est qu'il n'y a évidemment aucune similarité (quand elle est représentée comme une variable factice). Pour obtenir un bon modèle (qui permet la généralisation), vous devez fournir cette similarité
seanv507
1
@ssdecontrol, oui, mon exemple type est celui des numéros de téléphone (ou autres identifiants). Fondamentalement, la bonne réponse à la question de savoir comment modéliser à l'aide de ces méthodes est - ne le faites pas!
seanv507
2
Si vous souhaitez déduire des hiérarchies, vous pouvez vous pencher sur les schémas d'intégration du réseau Neural. Ils utilisent essentiellement un ensemble réduit de neurones entre les catégories et le reste du modèle, de sorte que ce dernier doit trouver des projections linéaires de catégories similaires dans la résolution. C'est essentiellement une version non linéarisée des machines à factoriser. tensorflow.org/guide/embedding
seanv507

Réponses:

41

Si j'ai bien compris, vous imaginez un modèle linéaire dans lequel l'un des prédicteurs est catégorique (par exemple, la majeure au collège); et vous vous attendez à ce que pour certains sous-groupes de ses niveaux (sous-groupes de catégories), les coefficients soient exactement les mêmes. Donc, peut-être que les coefficients de régression pour les mathématiques et la physique sont les mêmes, mais différents de ceux de la chimie et de la biologie.

Dans le cas le plus simple, vous auriez un modèle linéaire "à une voie" avec un seul prédicteur catégorique: où code le niveau de la variable catégorique Catégorie). Mais vous pouvez préférer une solution qui réduit certains niveaux (catégories) ensemble, par exemple,

yij=μ+αi+ϵij,
i
{α1=α2,α3=α4=α5.

Cela suggère que l'on peut essayer d'utiliser une pénalité de régularisation qui pénaliserait les solutions avec des alphas différents. Un terme de pénalité qui me vient immédiatement à l’esprit estCela ressemble au lasso et devrait imposer une faible densité des différences , ce qui est exactement ce que vous voulez: vous voulez que beaucoup d'entre elles soient nulles. Le paramètre de régularisation doit être sélectionné avec une validation croisée.

L=ωi<j|αiαj|.
αiαjω

Je n'ai jamais eu affaire à de tels modèles et ce qui précède est la première chose qui m'est venue à l'esprit. Ensuite, j'ai décidé de voir s'il y avait quelque chose comme ça implémenté. J'ai fait quelques recherches sur Google et j'ai vite compris qu'il s'agissait d'une fusion de catégories. la recherche de lasso fusion categoricalvous donnera beaucoup de références à lire. Voici quelques exemples que j'ai brièvement examinés:

Gertheiss et Tutz 2010, publiés dans les Annals of Applied Statistics, semblent être un document récent et très lisible contenant d'autres références. Voici son résumé:

Les méthodes de réduction dans l'analyse de régression sont généralement conçues pour les prédicteurs métriques. Dans cet article, toutefois, des méthodes de retrait pour les prédicteurs catégoriels sont proposées. En tant qu’application, nous considérons des données provenant de la norme de Munich sur les loyers, dans laquelle, par exemple, les quartiers urbains sont traités comme des prédicteurs catégoriels. Si les variables indépendantes sont catégorielles, certaines modifications aux procédures de réduction habituelles sont nécessaires. Deux méthodes basées sur la pénalité pour la sélection de facteurs et le regroupement de catégories sont présentées et étudiées. La première approche est conçue pour les niveaux d'échelle nominaux, la seconde pour les prédicteurs ordinaux. En plus de les appliquer à la norme de loyer de Munich, les méthodes sont illustrées et comparées dans des études de simulation.L1

J'aime leurs chemins de solutions, semblables à ceux de Lasso, qui montrent comment les niveaux de deux variables catégorielles sont fusionnés lorsque la force de régularisation augmente:

Gertheiss et Tutz 2010

l'amibe dit de réintégrer Monica
la source
1
Et seulement après avoir écrit tout ce que j'ai remarqué, @Kjetil a déjà donné un lien vers l'un des articles de Tutz il y a déjà une semaine ...
amibe dit Réintégrer Monica
1
Merci d'avoir fouillé dans la littérature à ce sujet! C’est définitivement un bon point de départ, surtout si je peux chercher un nom pour cette technique ("fusion")
shadowtalker
10

J'ai lutté contre ce sur un projet que je travaille sur, et à ce moment que je l' ai décidé il n'y a vraiment pas une bonne façon de catégories de fusibles et je suis en train d' une hiérarchie / effets mixtes modèle où mon L'équivalent de votre majeur est un effet aléatoire.

De plus, dans des situations comme celle-ci, il semble y avoir deux décisions de fusion à prendre: 1) comment fusionner les catégories que vous avez lorsque vous vous adaptez au modèle, et 2) quelle catégorie de fusionnée devient "autre", où vous ajouterez par défaut de nouvelles majors que quelqu'un rêve après que vous correspondiez à votre modèle. (Un effet aléatoire peut gérer ce second cas automatiquement.)

Lorsque la fusion implique un jugement quelconque (par opposition à des procédures totalement automatisées), je suis sceptique quant à la catégorie "autre", qui est souvent une panoplie de catégories contenant peu d'éléments, plutôt qu'un groupement fondé sur des principes.

Un effet aléatoire gère un grand nombre de niveaux, regroupe dynamiquement ("tire sa force") différents niveaux, peut prédire des niveaux jamais vus auparavant, etc. Un inconvénient peut être que la distribution des niveaux est presque toujours supposée normale.

Wayne
la source
1
Avez-vous envisagé d'utiliser une matrice de proximité comme matrice de distance sur laquelle vous souhaitez vous regrouper? stats.stackexchange.com/questions/270201/… ?
Keith
7

Une façon de gérer cette situation consiste à recoder la variable catégorielle en une variable continue, en utilisant ce que l’on appelle le "codage cible" (ou "codage à impact") [1]. Soit une variable d’entrée avec des niveaux , et soit une variable de sortie / cible / réponse. Remplacez par , oùZz1,...,zKYZImpact(Z)

Impact(zk)=E(Y | Z=zk)E(Y)

pour un valeur continue . Pour la valeur binaire , utilisez au lieu de .YYlogitEE

Il existe une implémentation Python dans la bibliothèque category_encoders [2].

Une variante appelée "impact coding" a été implémentée dans le paquet R Vtreat [3] [4]. Le paquetage (et le code d’impact lui-même) est décrit dans un article de ces auteurs de 2016 [5] et dans plusieurs articles de blog [6]. Notez que l'implémentation R actuelle ne gère pas les réponses multinomiales (catégorielles avec plus de 2 catégories) ni multivariées (à valeurs vectorielles).

  1. Daniele Micci-Barreca (2001). Un schéma de prétraitement pour les attributs catégoriels de haute cardinalité dans les problèmes de classification et de prédiction. Bulletin d’information ACM SIGKDD Explorations , volume 3, numéro 1, juillet 2001, pages 27-32. https://doi.org/10.1145/507533.507538
  2. Catégorie Encodeurs. http://contrib.scikit-learn.org/categorical-encoding/index.html
  3. John Mount et Nina Zumel (2017). vtreat: Un processeur / conditionneur 'data.frame' statistiquement sain. Version du package R 0.5.32. https://CRAN.R-project.org/package=vtreat
  4. Win-Vector (2017). vtreat. Dépôt GitHub à l' adresse https://github.com/WinVector/vtreat
  5. Zumel, Nina et Mount, John (2016). vtreat: un processeur data.frame pour la modélisation prédictive. 1611.09477v3, E- Print ArXiv . Disponible à l' adresse https://arxiv.org/abs/1611.09477v3 .
  6. http://www.win-vector.com/blog/tag/vtreat/
shadowtalker
la source
Qu'est-ce que Logit E? Pourriez-vous s'il vous plaît partager la formule elle-même?
Optimus Prime
@OptimusPrime logit E est le logit de l'attente
shadowtalker
D'accord. Donc dans ce cas, Impact (zk) = log (E (Y | Z = zk) - E (Y)) OU Impact (zk) = log (E (Y | Z = zk)) - log (E (Y) )?
Optimus Prime
2
Ceci est un apprentissage supervisé et nécessite des ajustements complexes pour reconnaître le nombre de degrés de liberté «volés» de Y.
Frank Harrell
3
Bien sûr, toute méthode utilisant Y pour guider la gestion des catégories pour le prédicteur catégoriel sera sujette à un surajustement et il sera difficile d'obtenir des intervalles d'incertitude suffisamment larges pour être précis. Je me concentrais sur l'apprentissage non supervisé afin d'éviter ces problèmes.
Frank Harrell
6

Si vous avez une variable indépendante auxiliaire logique à utiliser comme point d'ancrage pour le prédicteur catégorique, envisagez d'utiliser l'algorithme de notation optimal de Fisher, qui est lié à son analyse discriminante linéaire. Supposons que vous souhaitiez mapper la majeure du collège en une seule métrique continue et supposons qu'une ancre appropriée soit un score de test quantitatif pré-admission au test SAT. Calculez le score quantitatif moyen pour chaque majeure et remplacez la majeure par cette moyenne. Vous pouvez facilement étendre cela à plusieurs ancres, en créant plus d'un degré de liberté pour résumer majeur.

Notez que, contrairement à certaines des suggestions précédentes, la notation optimale représente une approche d’apprentissage non supervisée, de sorte que les degrés de liberté (nombre de paramètres estimés par rapport à Y) sont peu nombreux et bien définis. Ils permettent une inférence statistique correcte (compatibilité) intervalles et valeurs p).

J'aime beaucoup la suggestion de pénalisation de https://stats.stackexchange.com/users/28666/amoeba @amoeba.

Frank Harrell
la source
Seriez-vous assez aimable pour jeter un coup d'oeil à ma question stats.stackexchange.com/q/383887/44368 ? Je vous remercie.
Hans
La méthode optimale décrite dans la diapositive 15 de cette conférence est-elle optimale ? Il est un peu difficile de rechercher ces termes, qui sont tous communs dans d'autres contextes.
shadowtalker
1
Je suis sûr que c'est 0,85
Frank Harrell
Cela ressemble à une (meilleure) version de l'idée du codage cible à partir de l'apprentissage automatique, par exemple stats.stackexchange.com/questions/398903/…
kjetil b halvorsen
2

Le document " Un schéma de prétraitement pour les attributs catégoriels de haute cardinalité dans les problèmes de classification et de prédiction " exploite la structure hiérarchique des attributs de catégorie dans un schéma "bayésien" empirique imbriqué à chaque pool / niveau pour mapper la variable catégorielle en une probabilité de classe postérieure, qui peut être utilisé directement ou comme entrée dans d'autres modèles.

Sealander
la source
C’est essentiellement ce que @Wayne a suggéré (modèles à effets mixtes ~ version fréquentiste des modèles hiérarchiques bayésiens) et ce que j’ai suggéré dans les commentaires aux questions. Cependant, OP veut inférer des hiérarchies.
seanv507
1

Il y a plusieurs questions ici, et certaines d'entre elles sont posées et ont reçu une réponse plus tôt. Si le problème prend beaucoup de temps: les méthodes sont multiples, voir Régression à grande échelle avec matrice de fonctions éparses et document de Maechler et Bates .

Mais il se peut que le problème vienne de la modélisation. Je ne suis pas sûr que les méthodes habituelles de traitement des variables prédictives catégorielles fournissent des indications suffisantes pour disposer de variables catégorielles à très nombreux niveaux. Pour ce tag, consultez ce site [many-categories]. Il y a certainement beaucoup de façons d'essayer, on pourrait (si c'est une bonne idée pour votre exemple, je ne peux pas savoir, vous ne nous avez pas dit votre application spécifique) une sorte de variable hiérarchique catégorique, c'est-à-dire inspirée par le système utilisé dans la classification biologique, voir https://en.wikipedia.org/wiki/Taxonomy_(biology). Là-bas, un individu (plante ou animal) est classé d'abord dans le domaine, puis dans le royaume, le phylum, la classe, l'ordre, la famille, le genre et enfin l'espèce. Ainsi, pour chaque niveau de la classification, vous pouvez créer une variable factorielle. Si vos niveaux, par exemple, sont des produits vendus dans un supermarché, vous pouvez créer une classification hiérarchique commençant par [produit alimentaire, ustensiles de cuisine, autre], puis un produit alimentaire classé dans [viande, poisson, légumes, céréales, ...] et bientôt. Juste une possibilité, qui donne une hiérarchie antérieure, pas spécifiquement liée au résultat.

Mais vous avez dit:

Je tiens à produire des catégories de niveau supérieur cohérentes par rapport au résultat de ma régression.

Ensuite, vous pouvez essayer le lasso fusionné , voir d’autres réponses dans ce fil, ce qui pourrait être perçu comme un moyen de réduire les niveaux en groupes plus importants, entièrement basés sur les données, et non pas une organisation préalable des niveaux comme le suggère ma proposition de hiérarchie. organisation des niveaux.

kjetil b halvorsen
la source