Combinaison de valeurs de p de différents tests statistiques appliqués sur les mêmes données

8

Bien que le titre de la question semble trivial, je voudrais expliquer qu'il n'est pas si trivial dans le sens où il est différent de la question d'appliquer le même test statistique dans des ensembles de données similaires pour tester une hypothèse nulle totale (méta-analyse, par exemple en utilisant la méthode de Fisher pour combiner les valeurs de p). Ce que je recherche, c'est une méthode (si elle existe et si la question est valable en termes statistiques) qui combinerait les valeurs de p de deux tests statistiques différents (par exemple un test t et un test u, même si l'un est paramétrique et l'autre non), appliqués pour comparer les centres de deux échantillonnages de deux populations. Jusqu'à présent, j'ai beaucoup cherché sur le Web sans réponse claire. La meilleure réponse que j'ai pu trouver était basée sur les concepts de la théorie des jeux de David Bickel ( http://arxiv.org/pdf/1111.6174.pdf ).

Une solution très simpliste serait un système de vote. Supposons que j'ai deux vecteurs d'observations et et que je souhaite appliquer plusieurs statistiques de type t (test t, test u, même ANOVA 1 voie) pour tester l'hypothèse que les centres (moyennes, médianes, etc.) des deux distributions sous-jacentes sont égaux à l'hypothèse qu'ils ne le sont pas, à un niveau de signification de 0,05. Supposons que je lance 5 tests. Serait-il légitime de dire qu'il existe des preuves suffisantes pour rejeter la distribution nulle si j'ai une valeur de p <0,05 dans 3 tests sur 5?A=[a1,a2,...,an]B=[b1,b2,...,bn]

Une autre solution serait-elle d'utiliser la loi de la probabilité totale ou c'est complètement faux? Par exemple, supposons que est l'événement où la distribution nulle est rejetée. Ensuite, en utilisant 3 tests, , , (ce qui signifie que ), une valeur possible pour serait-elle , où est la probabilité que la distribution nulle soit rejetée sous le test .AT1T2T3P(T1)=P(T2)=P(T3)=1/3P(A)P(A)=P(A|T1)P(T1)+P(A|T2)P(T2)+P(A|T3)P(T3)P(A|Ti)Ti

Je m'excuse si la réponse est évidente ou la question trop stupide

Panos
la source
Que représente dans cette loi de calcul de probabilité totale? P(Ti)
Glen_b -Reinstate Monica
Je suis désolé de ne pouvoir donner une explication mathématique de ce que vous recherchez, mais je sais qu'un logiciel que nous développons dans notre laboratoire a cette fonctionnalité implémentée: vérifiez ici comment faire: gitools.org/documentation/UserGuide_Combinations .html et ici l'implémentation: github.com/gitools/gitools/blob/… . Je reviendrai quand je trouverai la formule dans le papier d'origine.
dmeu
@Glen_b P (Ti) représente la "probabilité" d'utiliser le test statistique Ti. Je sais que ce n'est pas exactement une probabilité d'une manière stricte. C'est plutôt un poids qui dit que j'ai utilisé n tests pour le même ensemble de données.
Panos
@dmeu Merci! Cependant, je pense que votre logiciel répond à la partie triviale (voir ci-dessus, combinaison de plusieurs jeux de données à l'aide d'un seul test) et non à ma question. Désolé si ce n'est pas le cas.
Panos
@Panos, vous avez peut-être raison. J'ai lu différent comme "deux tests indépendants (différents) du même genre". Désolé de vous faire espérer.
dmeu

Réponses:

5

Utiliser la correction de tests multiples comme préconisé par Corone est correct, mais cela vous coûtera des montagnes de puissance car vos valeurs p seront généralement bien corrélées, même en utilisant la correction de Hommel.

Il existe une solution exigeante en calcul mais qui fera beaucoup mieux en terme de puissance. Sip1,p2,,pn sont vos valeurs p, laissez p=min(p1,,pn). Considérez que est votre nouvelle statistique de test: plus elle est petite, plus elle est forte contre l'hypothèse nulle.p

Vous devez calculer -value la valeur observée de (appeler ). Pour cela, vous pouvez simuler, disons, 100 000 ensembles de données sous les hypothèses nulles, et pour chacun de ces ensembles de données, calculer un . Cela vous donne une distribution empirique de sous l'hypothèse nulle. Votre valeur est la proportion de valeurs simulées qui sont .pppobsppp<pobs

Comment simulez-vous les ensembles de données sous l'hypothèse nulle? Dans votre cas, vous avez, si je suppose bien, des cas et des contrôles, et des données RNS-seq pour estimer les niveaux d'expression. Pour simuler un ensemble de données sous la valeur NULL, il est habituel de simplement permuter de manière aléatoire l'état du cas / contrôle.

Elvis
la source
2
+1 Oui, c'est l'une des approches que je voulais dire avec "plus de travail". Cependant, il convient de noter qu'il n'est pas acquis que la plus petite valeur p soit la meilleure approche ici. 99 valeurs p proches de 0,5 et une à 0,02 est très différente des 99 valeurs p proches de 0,02. Une fois que vous avez ouvert la porte pour rééchantillonner le zéro, alors il vaudrait la peine d'étudier les méthodes de "vote", car la cohérence entre les tests peut être aussi (plus) importante que de donner une faible valeur de p à un seul test.
Korone
Oui, tu as raison. Cependant, pour la plupart des tests d'association, je pense que prendre le min est une bonne idée. Avec plus de travail, un '' test robuste d'efficacité maximin '' pourrait être construit à partir des différents tests, mais cela nécessite vraiment de travailler sur les tests ...
Elvis
1
oui, sans parler de la chose deviendra vraiment poilue / excitante / amusante si nous commençons à nous inquiéter du fait que certains tests seront plus puissants que d'autres tests - dans un monde idéal, vous voulez écouter le plus les tests les plus puissants ...
Korone
@Elvis Quelque chose comme ça est l'alternative la plus proche de quelque chose impliquant la loi de probabilité totale (qui s'est avérée fausse) que j'avais en tête. J'essayais de penser à une procédure de rééchantillonnage mais vous l'avez parfaitement formalisée! La puissance de calcul ne sera pas un problème à ce stade (heureusement!). Quant au vote, on pourrait incorporer quelque chose comme la méthode de Whitlock pour la méta-analyse ( ncbi.nlm.nih.gov/pmc/articles/PMC3135688 ) mais en donnant du poids au test statistique. Ces informations pourraient être dérivées de publications relatives (par exemple, biomedcentral.com/1471-2105/14/91 ).
Panos
oui! vous pouvez prendre n'importe quelle fonction des valeurs , tant qu'elle n'est pas décroissante par rapport à chaque . p=f(p1,,pn)ppi
Elvis
4

Ce genre de chose serait généralement couvert par des tests d'hypothèses multiples, bien que ce ne soit pas tout à fait une situation typique.

Vous avez raison de noter que cela est différent de la méta-analyse, en ce que vous utilisez les mêmes données pour plusieurs tests, mais cette situation est toujours couverte par les tests à hypothèses multiples. Ce qui est un peu étrange ici, c'est que c'est presque la même hypothèse que vous testez plusieurs fois, puis que vous voulez l'hypothèse nulle globale qui est l'intersection de tous ceux-ci - il vaut peut-être la peine de se demander pourquoi vous ressentez le besoin de le faire , mais il pourrait y avoir des raisons légitimes.

Si vous faisiez un ensemble de tests plus analytique, on pourrait emprunter l'itinéraire de test Union-Intersection, mais je ne pense pas que cela vous mènerait à quelque chose, donc je vous recommande d'utiliser une correction de multiplicité prête à l'emploi.

Je vous suggère de commencer par jeter un œil à ce que Wikipedia a à dire sur le sujet, mais essayez de ne pas vous enliser trop: http://en.wikipedia.org/wiki/Multiple_comparisons

Donc, vous devez utiliser une correction de multiplicité et exclure Union-Intersection, grossièrement vos options sont les suivantes

  • Bonferonni - strictement dominé par Holm-Bonferroni, intérêt historique uniquement
  • Holm-Bonferroni - fonctionnera pour vous, mais vous coûtera de l'énergie (peut-être beaucoup dans votre cas)
  • Sidak - plus puissant que BH, mais vous ne pouvez pas l'utiliser car vos valeurs de p seront corrélées
  • Hommel - plus puissant que BH, et ça devrait aller, car vos valeurs p sont sans aucun doute positivement corrélées positivement

Votre plus gros problème est que vous obtiendrez très probablement des valeurs de p très similaires dans vos différents tests. Hommel ne devrait pas trop vous punir pour cela.

Par exemple, vous pouvez ajuster les valeurs de p dans R en utilisant p.adjust

p = c(0.03, 0.034, 0.041)
p.adjust(p, method = "bonferroni")
p.adjust(p, method = "holm")
p.adjust(p, method = "hommel")

> p.adjust(p, method = "bonferroni")
[1] 0.090 0.102 0.123
> p.adjust(p, method = "holm")
[1] 0.09 0.09 0.09
> p.adjust(p, method = "hommel")
[1] 0.041 0.041 0.041

Ces méthodes contrôlent toutes le taux d'erreur au niveau de la famille, ce qui signifie que si vous testez tour à tour chaque valeur de p en fonction du dépassement de votre seuil, la probabilité d'une ou plusieurs erreurs est toujours contrôlée àα. Cela signifie que vous pouvez rejeter l'hypothèse globale si vous rejetez une ou plusieurs sous-hypothèses, et la taille de votre test est toujours contrôlée àα.

Comme je l'ai laissé entendre au début, ce ne sera pas l'attaque la plus puissante que vous puissiez faire, mais tout ce qui est plus sophistiqué nécessitera beaucoup plus de travail.


Pourquoi cela contrôle α

L'hypothèse nulle globale est que toutes les hypothèses nulles enfants sont vraies.

Que le résultat d'un seul test soit Xi prendre la valeur 1 si le null est rejeté, 0 sinon.

Depuis Xi sont sans aucun doute positivement corrélés, nous pouvons utiliser Hommel pour contrôler le FWER.

Ce contrôle signifie que la probabilité qu'un ou plusieurs tests rejettent faussement est contrôlée à α

Donc, P((Xi)>0)α

Par conséquent, si vous rejetez l'hypothèse globale si une ou plusieurs hypothèses enfants sont rejetées, la taille du test global est α

Korone
la source
Merci pour votre réponse rapide! L'idée principale est de combiner plusieurs algorithmes statistiques qui détectent l'expression génique différentielle à l'aide de données RNA-Seq, d'une manière plus sophistiquée que de multiplier les valeurs de p qui ne sont pas correctes de toute façon. Ce que vous proposez est similaire à ce que j'ai trouvé dans researchgate.net/publication/… Cependant, je me demande si le système de vote ou la loi de la probabilité totale a une signification dans ce contexte.
Panos
@Panos dans ce cas, alors oui, je recommanderais certainement quelque chose comme ça. L'inconvénient est que le contrôle est conservateur, car nous contrôlons P (1 ou plusieurs sélectionnés sont faux) au lieu de P (tous les sélectionnés sont faux), mais puisque vos algorithmes sont susceptibles d'être corrélés de manière assez positive, la différence ne sera probablement pas être énorme.
Korone
Sans oublier, il ne faut pas non plus être trop attaché à un seuil de taille particulier - comme on le dit souvent, il n'y a rien de particulièrement spécial à propos de 0,05 ou 0,01.
Korone
@Panos si vous deviez vous orienter vers la détermination des probabilités correctes pour votre plan de vote, vous dériveriez finalement les différents tests de multiplicité que j'ai suggérés, l'exact en fonction des hypothèses que vous faites en cours de route.
Korone
1
@Benjamin alors que je préconiserais également de lire à ce sujet (c'est important!), Je ne pense pas que ce serait du tout approprié ici. Le FDR contrôle la proportion attendue de faux positifs à partir d'un certain nombre de sélections. Étant donné que tous les tests de Panos tentent de l'informer sur la même hypothèse globale, il serait peu logique de contrôler la proportion attendue de faux tests - en particulier lorsque vous avez une corrélation. Il ne choisit pas entre plusieurs questions différentes, mais essaie de nombreuses façons de répondre à la même question.
Korone