Comment gérez-vous les variables «imbriquées» dans un modèle de régression?

11

Considérons un problème statistique où vous avez une responsevariable que vous souhaitez décrire conditionnellement à une explanatoryvariable et une nestedvariable, où la variable imbriquée n'apparaît que comme une variable significative pour des valeurs particulières de la variable explicative . Dans les cas où la variable explicative n'admet pas de variable imbriquée significative, cette dernière est généralement codée soit comme NAdans l'ensemble de données, soit si elle est codée avec une valeur, cette valeur est simplement un espace réservé qui n'a pas d'interprétation significative.

Cette situation a tendance à se produire chaque fois que vous avez une variable explicative indiquant l' existence d'une chose et une ou plusieurs variables imbriquées décrivant les caractéristiques de cette chose. Voici quelques exemples de ce type de situation dans les problèmes statistiques:

  • La variable explicative est un indicateur de la participation d'un participant à l'enquête married, et la variable imbriquée en est une characteristic of the spouse(p. Ex. Éducation, âge, etc.);

  • La variable explicative est un indicateur de la presence of an itemdans un espace, et la variable imbriquée est une mesure de certains characteristic of the item(par exemple, la taille, la distance, etc.);

  • La variable explicative est un indicateur de l'occurrence d'un eventet la variable imbriquée est une description de certains characteristic of the event(par exemple, la durée, l'ampleur, etc.).

Dans ces types de situations, nous voulons souvent construire un modèle de type régression (au sens large qui inclut les GLM, GLMM, etc.) décrivant la relation entre la variable de réponse et les autres variables. Il n'est pas évident de savoir comment traiter la variable imbriquée dans ce type de modèle.

Question: Comment traitons-nous la nestedvariable dans ce type de modèle?


Remarque: Cette question est conçue pour donner une réponse généralisée à une question récurrente sur CV.SE concernant les variables imbriquées en régression (voir par exemple ici , ici , ici et ici ). Cette question est conçue pour donner un exemple généralisé indépendant du contexte de ce problème.

Ben - Réintègre Monica
la source
1
J'aurais laissé cela en commentaire mais je n'ai pas assez de réputation. J'ai du mal à utiliser cette solution dans R - glm () ou lm (). J'utilise le modèle: y ~ x1 + x1: x2 Malheureusement, si j'encode les données manquantes en tant que NA, l'action na par défaut supprime les lignes avec NA et laisse x1 avec un seul niveau - ce qui rend le modèle équivalent à juste: y ~ x2 Si j'utilise l'argument pour glm: na.action = na.pass j'obtiens une erreur: Erreur dans glm.fit (x = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1,: NA / NaN / Inf en 'x' Si à la place j'encode la variable manquante en 0, le modèle imbriqué: y ~ x1 + x1: x2 Donne l'exact
Adam Waring

Réponses:

9

Les valeurs insignifiantes des variables imbriquées ne doivent pas affecter votre modèle: le desideratum crucial avec ce type d'analyse de données est que la nestedvariable ne doit pas avoir d'impact sur le modèle si la explanatoryvariable d' origine ne l'admet pas comme variable significative. En d'autres termes, le modèle doit être d'une forme qui ignore les valeurs dénuées de sens de la variable imbriquée . Il s'agit d'une exigence cruciale pour un modèle valide avec des variables imbriquées, car cela garantit que la sortie du modèle n'est pas affectée par des choix de codage arbitraires.


Modélisation avec des variables imbriquées: cette exigence est obtenue en plaçant la nestedvariable dans le modèle uniquement comme une interaction avec la explanatoryvariable d' origine , sans l'inclure comme effet principal. (Plus précisément, la variable imbriquée doit interagir avec une déclaration logique sur la variable explicative indiquant qu'il s'agit d'une variable significative.) Notez qu'il s'agit d'une exception à la règle générale selon laquelle les termes ne doivent pas être inclus comme interactions sans terme d'effet principal .

Prenons le cas général où la nestedvariable n'a de sens que lorsqu'elle se explanatorytrouve dans un ensemble de valeurs A. Dans ce cas, vous utiliseriez un formulaire modèle comme celui-ci:

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

Dans le cas courant où votre explanatoryvariable est une variable indicatrice (avec une valeur de 1 donnant naissance à une variable imbriquée significative), cette forme de modèle se simplifie comme suit:

response ~ 1 + explanatory + explanatory:nested + ...

Notez que dans ces énoncés de modèle, il n'y a pas de terme d'effet principal pour la nestedvariable. C'est par conception --- la variable imbriquée ne devrait pas avoir un terme d'effet principal, car ce n'est pas une variable significative en l'absence d'une condition sur la variable explicative. Avec ce type de formulaire modèle, vous obtiendrez une estimation de l'effet de la variable explicative et une autre estimation de l'effet de la variable imbriquée.


Codage des variables imbriquées dans vos données: lorsque vous traitez des trames de données qui répertorient les variables pour la régression, il est nestedrecommandé de coder les valeurs de la variable comme NAdans les cas où elles ne découlent pas de manière significative de la variable explicative. Cela indique au lecteur qu'il n'y a pas de variable significative ici. Certains analystes codent ces variables avec d'autres valeurs, comme zéro, mais c'est généralement une mauvaise pratique, car elle peut être confondue avec une quantité significative.

Mathématiquement, si vous multipliez un nombre réel par zéro, vous obtenez zéro. Cependant, si vous codez, Rvous devez être prudent ici car le programme se multiplie 0:NApour donner NAau lieu de 0. Cela signifie que vous devrez peut-être recoder les NAvaleurs à zéro aux fins de l'ajustement du modèle, ou construire la matrice de conception pour le modèle afin que ces valeurs soient définies à zéro.


Cas où la variable de base est une fonction de la variable imbriquée: Une situation qui survient occasionnellement dans l'analyse de régression impliquant des variables imbriquées est le cas où la variable imbriquée a une quantité de détails suffisante pour déterminer entièrement la variable explicative initiale dont elle est issue - - c'est-à-dire que la variable explicative d'origine est fonction de la variable imbriquée. Un exemple de cela se produit dans cette question , où l'analyste a une variable indicatrice DrugApour savoir si un médicament a été pris ou non, et une variable imbriquée DrugA_Concpour la concentration du médicament. Dans cet exemple, cette dernière variable permet une valeur de concentration de zéro, ce qui équivaut au médicament non pris, et DrugAest donc équivalent à DrugA_Conc != 0.

Dans ces types de cas, le terme d'interaction entre la variable explicative et la variable imbriquée est fonctionnellement équivalent à la variable imbriquée, et il est donc possible (et généralement souhaitable) de supprimer complètement la variable explicative initiale du modèle, et d'utiliser simplement le variable imbriquée seule. C'est légitime dans ce cas, car les valeurs de la variable imbriquée déterminent la valeur de la variable explicative initiale. Nous avons noté ci-dessus qu'il est souvent approprié de coder des variables imbriquées comme NAlorsque leurs conditions ne sont pas applicables. Si la condition découle d'une variable explicative qui est un indicateur et que l'indicateur correspond à l'utilisation de la variable imbriquée, l'événement nested != NAest équivalent àexplanatory. Dans de tels cas, il est possible de recoder la variable imbriquée afin que la variable explicative initiale ne soit pas du tout requise dans le modèle.

Notez que vous devez être prudent lorsque vous regardez cette situation. Même dans le cas où vous utilisez une variable explicative initiale qui est une variable indicatrice, il peut être utile à des fins d'interprétation de ne pas fusionner la variable explicative et la variable imbriquée. De plus, dans les cas où la variable explicative n'est pas une variable indicatrice, elle contiendra généralement des informations non contenues dans la variable imbriquée et ne peut donc pas être supprimée.

Ben - Réintègre Monica
la source
À quoi ressemble la matrice de conception ? Ici, vous avez mentionné que NA peut être utilisé. Mais je pense que le logiciel convertit NA en une sorte de code, car n'accepte pas la valeur manquante. XX
user158565
Étant donné que je n'ai spécifié aucun logiciel particulier (mais j'utilise la syntaxe de R), il n'est pas clair pour moi pourquoi les NAvaleurs ne seraient pas acceptables. En Rvous pouvez certainement des NAvaleurs dans vos données-cadres.
Ben - Réintègre Monica
Supposons qu'il existe des NA dans , comment calculer ? X(XX)1
user158565
2
Avec les modèles utilisés dans cette réponse, les NAvaleurs apparaissent dans la base de données pour les variables, mais elles n'apparaissent pas dans la matrice de conception , car la variable imbriquée n'entre dans le modèle que par une interaction.
Ben - Réintègre Monica
C'est ma question initiale: à quoi ressemble la matrice de conception? En fait, je veux le faire en SAS, mais la valeur manquante ne peut pas être dans la matrice de conception.
user158565