Comment gérer plusieurs mesures par participant, avec des données catégoriques?

8

J'ai fait une expérience où j'ai collecté des mesures d'un certain nombre de participants. Chaque point de données pertinent a deux variables, toutes deux catégorielles: en fait, chaque variable a deux valeurs possibles (réponses à deux questions oui / non). J'aimerais qu'un test d'hypothèse statistique vérifie s'il semble y avoir une corrélation entre ces deux variables.

Si j'avais un point de données par participant, je pourrais utiliser le test exact de Fisher sur le résultat 2×2tableau de contingence. Cependant, j'ai plusieurs points de données par participant. Par conséquent, le test exact de Fisher ne semble pas applicable, car les points de données d'un seul participant ne sont pas indépendants. Par exemple, si j'ai 10 points de données d'Alice, ceux-ci ne sont probablement pas indépendants, car ils proviennent tous de la même personne. Le test exact de Fisher suppose que tous les points de données ont été échantillonnés de manière indépendante, de sorte que les hypothèses du test exact de Fisher ne sont pas satisfaites et il serait inapproprié de l'utiliser dans ce contexte (il pourrait donner des rapports injustifiés d'importance statistique).

Existe-t-il des techniques pour gérer cette situation?


Approches que j'ai envisagées:

Une alternative plausible est d'agréger toutes les données de chaque participant en un seul numéro, puis d'utiliser un autre test d'indépendance. Par exemple, pour chaque participant, je pouvais compter la fraction des réponses Oui à la première question et la fraction des réponses Oui à la deuxième question, en me donnant deux nombres réels par participant, puis utiliser le test du moment du produit de Pearson pour tester la corrélation entre ces deux nombres. Cependant, je ne sais pas si c'est une bonne approche. (Par exemple, je crains que la moyenne / le comptage rejette des données et que cela puisse perdre du pouvoir, en raison de l'agrégation; ou que les signes de dépendance puissent disparaître après l'agrégation.)

J'ai lu sur les modèles à plusieurs niveaux, qui semblent être destinés à gérer cette situation lorsque les variables sous-jacentes sont continues (par exemple, les nombres réels) et lorsqu'un modèle linéaire est approprié. Cependant, ici, j'ai deux variables catégorielles (réponses aux questions Oui / Non), donc elles ne semblent pas s'appliquer ici. Existe-t-il une technique équivalente applicable aux données catégorielles?

J'ai également lu un tout petit peu sur la conception de mesures répétées sur Wikipedia, mais l'article de Wikipedia se concentre sur les études longitudinales. Cela ne semble pas applicable ici: si je comprends bien, les mesures répétées semblent se concentrer sur les effets dus au passage du temps (où la progression du temps influence les variables). Cependant, dans mon cas, le passage du temps ne devrait pas avoir d'effet pertinent. Dites-moi si j'ai mal compris.

Après réflexion, une autre approche qui me vient à l'esprit est d'utiliser un test de permutation. Pour chaque participant, nous pourrions permuter au hasard leurs réponses à la question 1 et (indépendamment) permuter au hasard leurs réponses à la question 2, en utilisant une permutation différente pour chaque participant. Cependant, il n'est pas clair pour moi quelle statistique de test serait appropriée ici, pour mesurer quels résultats sont "au moins aussi extrêmes" que le résultat observé.

Connexe: Comment traiter correctement plusieurs points de données pour chaque sujet (mais qui se concentre également sur des modèles linéaires pour des variables continues, pas des données catégoriques), les mesures sont - elles effectuées sur le même patient indépendamment? (même)

DW
la source
Et le test de McNemar? C'est exactement pour ça.
StatsStudent
@StatsStudent, pouvez-vous élaborer? Je ne vois pas comment cela s'applique à cette situation. Par «point de données», je veux dire un tuple contenant la réponse aux deux questions oui / non (par exemple, oui, oui). Lorsque je lis le test de McNemar, il s'agit d'un point de données unique par participant; pas le cas de plusieurs points de données par participant (par exemple, chaque participant est exposé plusieurs fois et après chaque exposition, nous obtenons la réponse aux deux questions oui / non).
DW
Le test de McNemar s'applique toujours, si je comprends bien votre scénario. Vous configurez votre table 2x2, seulement, au lieu du nombre de sujets dans chaque cellule du tableau, vous avez des paires. Par exemple, plutôt que de recouper les individus dans chaque cellule, vous devez déterminer combien de paires d'individus ont répondu «Oui» à la première question et «Oui» à la deuxième question et mettre le résultat dans la cellule . Le nombre de paires qui ont répondu "Oui" à la première question et "Non" à la seconde serait entré dans la cellule , etc.ab
StatsStudent
@StatsStudent, paires d'individus? Je soupçonne que je dois avoir mal communiqué. Je pose deux questions à une seule personne et j'obtiens une paire de réponses (disons oui, oui). Si c'était tout, je pourrais utiliser le test de McNemar. Mais la torsion ici est que pour certaines personnes, je l'ai fait plusieurs fois: par exemple, pour Alice, je lui ai posé la paire de questions à plusieurs moments différents, et j'ai obtenu deux réponses à chaque fois. Vous pourriez dire que certains participants ont reçu des «expositions multiples» (où chaque exposition est un cas où je leur pose les deux questions et récupère leurs deux réponses).
DW
Je vois! C'est ce que j'ai mal compris - désolé, je n'ai pas compris cela plus tôt: vous avez une troisième dimension sur laquelle vous collectez des données (par exemple au fil du temps). Dans ce cas, je recommanderais d'utiliser la régression logistique avec des équations d'estimation généralisées ou des modèles mixtes. Les modèles longitudinaux sont valables ici, même si votre troisième dimension n'est pas exactement le temps. Vous pouvez également stratifier vos tableaux sur la troisième dimension et effectuer des McNemar sur chaque dimension.
StatsStudent

Réponses:

0

Contexte de ma réponse

J'ai auto-étudié cette question hier (la partie concernant la possibilité d'utiliser des modèles mixtes ici). Je vide sans vergogne ma nouvelle compréhension de cette approche pour les tables 2x2 et j'attends que des pairs plus avancés corrigent mes imprécisions ou mes malentendus. Ma réponse sera alors longue et trop didactique (au moins en essayant d'être didactique) afin d'aider mais aussi d'exposer mes propres défauts. Tout d'abord, je dois dire que j'ai partagé votre confusion que vous avez exprimée ici.

J'ai lu sur les modèles à plusieurs niveaux, qui semblent être destinés à gérer cette situation lorsque les variables sous-jacentes sont continues (par exemple, les nombres réels) et lorsqu'un modèle linéaire est approprié

J'ai étudié tous les exemples de cet article sur la modélisation à effets aléatoires des données de réponse catégorielle . Le titre lui-même contredit cette pensée. Pour notre problème avec des tables 2x2 avec des mesures répétées, l'exemple de la section 3.6 est pertinent pour notre discussion. Ceci est pour référence seulement car mon objectif est de l'expliquer. Je pourrai éditer cette section à l'avenir si ce contexte n'est plus nécessaire.

Le modèle

Idée générale
La première chose à comprendre est que l'effet aléatoire n'est pas modélisé de manière très différente comme en régression sur variable continue. En effet, une régression sur une variable catégorielle n'est rien d'autre qu'une régression linéaire sur le logit (ou une autre fonction de lien comme probit) de la probabilité associée aux différents niveaux de cette variable catégorielle. Siπi est la probabilité de répondre oui à la question i, puis logit(πi)=FixedEffectsi+RandomEffecti. Ce modèle est linéaire et les effets aléatoires peuvent s'exprimer de manière numérique classique comme par exemple

RandomEffectiN(0,σ)
Dans ce problème, l'effet aléatoire représente la variation liée au sujet pour la même réponse.

Notre cas
Pour notre problème, nous voulons modéliser πijvla probabilité que le sujet réponde «oui» pour la variable v au moment de l'interview j. Le logit de cette variable est modélisé comme une combinaison d'effets fixes et d'effets aléatoires liés au sujet.

logit(πijv)=βjv+uiv

À propos des effets fixes

Les effets fixes sont ensuite liés à la probabilité de répondre «oui» au temps j à la question v. Selon votre objectif scientifique, vous pouvez tester avec un rapport de vraisemblance pour tester si l'égalité de certains effets fixes doit être rejetée. Par exemple, le modèle oùβ1v=β2v=β3v... signifie qu'il n'y a pas de tendance de changement dans la réponse du temps 1 au temps 2. Si vous supposez que cette tendance globale n'existe pas, ce qui semble être le cas pour votre étude, vous pouvez supprimer le i tout de suite dans votre modèle βjv devient βv. Par analogie, vous pouvez tester par un rapport de vraisemblance si l'égalitéβ1=β2 doit être rejeté.

À propos des effets aléatoires

Je sais qu'il est possible de modéliser des effets aléatoires par autre chose que des erreurs normales, mais je préfère répondre sur la base d'effets aléatoires normaux par souci de simplicité. Les effets aléatoires peuvent être modélisés de différentes manières. Avec les notationsuijJ'ai supposé qu'un effet aléatoire est tiré de sa distribution chaque fois qu'un sujet répond à une question, c'est le degré de variation le plus spécifique possible. Si j'ai utiliséui au lieu de cela, cela aurait signifié qu'un effet aléatoire est dessiné pour chaque sujet i et est le même pour chaque question vil doit répondre (certains sujets auraient alors tendance à répondre oui plus souvent). Vous devez faire un choix. Si j'ai bien compris, vous pouvez aussi avoir les deux effets aléatoires uiN(0,σ1) qui est dessiné par sujet et uijN(0,σ2)qui est sujet + réponse tirée. Je pense que votre choix dépend des détails de votre cas. Mais si j'ai bien compris, le risque de sur-ajustement en ajoutant des effets aléatoires n'est pas grand, donc quand on a un doute, on peut inclure plusieurs niveaux.

Une proposition

Je me rends compte à quel point ma réponse est bizarre, c'est juste une randonnée embarrassante certainement plus utile pour moi que pour les autres. Je vais peut-être en éditer 90%. Je ne suis pas plus confiant, mais plus disposé à aller droit au but. Je suggère de comparer le modèle avec des effets aléatoires imbriqués (ui+uiv) par rapport au modèle avec uniquement l'effet aléatoire combiné (uiv). L'idée est que leuiest le seul responsable de la dépendance entre les réponses. Rejeter l'indépendance, c'est rejeter la présence deui. Utiliser glmer pour tester cela donnerait quelque chose comme:

model1<-glmer(yes ~ Question + (1 | Subject/Question ), data = df, family = binomial)
model2<-glmer(yes ~ Question + (1 | Subject:Question ), data = df, family = binomial)
anova(model1,model2) 

La question est une variable fictive indiquant si la question 1 ou 2 est posée. Si j'ai bien compris, (1 | Subject/Question )est lié à la structure imbriquéeui+uivet (1 |Subject:Question)c'est juste la combinaisonuiv. anovacalcule un test de rapport de vraisemblance entre les deux modèles.

brumar
la source
Hou la la! Merci pour cette réponse détaillée! Cela me donne une grande expérience. Cependant, je ne vois pas encore comment utiliser cela pour tester si les réponses à la question # 1 sont corrélées aux réponses à la question # 2. Pouvez-vous nous expliquer comment procéder? Je vois comment obtenir un modèle pour la réponse à la question # 1; et un modèle pour la réponse à la question # 2; mais ces modèles supposent essentiellement que les deux réponses sont l'indépendance, alors que dans mon cas, c'est exactement ce que je veux tester.
DW
mfw Je me rends compte que je n'ai pas répondu à la question. Pour être honnête, je pensais que ce serait géré en comparantβ1 et β2mais cela n'a plus de sens pour moi maintenant. J'ajouterai (sans le moindre doute je dois dire) une proposition plus directe à la fin de la réponse.
brumar