J'ai rencontré un comportement paradoxal de soi-disant "tests exacts" ou "tests de permutation", dont le prototype est le test de Fisher. C'est ici.
Imaginez que vous avez deux groupes de 400 individus (par exemple 400 témoins contre 400 cas) et une covariable avec deux modalités (par exemple exposée / non exposée). Il n'y a que 5 individus exposés, tous dans le deuxième groupe. Le test de Fisher ressemble à ceci:
> x <- matrix( c(400, 395, 0, 5) , ncol = 2)
> x
[,1] [,2]
[1,] 400 0
[2,] 395 5
> fisher.test(x)
Fisher's Exact Test for Count Data
data: x
p-value = 0.06172
(...)
Mais maintenant, il y a une certaine hétérogénéité dans le deuxième groupe (les cas), par exemple la forme de la maladie ou le centre de recrutement. Il peut être divisé en 4 groupes de 100 individus. Quelque chose comme ça est susceptible de se produire:
> x <- matrix( c(400, 99, 99 , 99, 98, 0, 1, 1, 1, 2) , ncol = 2)
> x
[,1] [,2]
[1,] 400 0
[2,] 99 1
[3,] 99 1
[4,] 99 1
[5,] 98 2
> fisher.test(x)
Fisher's Exact Test for Count Data
data: x
p-value = 0.03319
alternative hypothesis: two.sided
(...)
Maintenant, nous avons ...
Ce n'est qu'un exemple. Mais nous pouvons simuler la puissance des deux stratégies d'analyse, en supposant que chez les 400 premiers individus, la fréquence d'exposition est de 0, et qu'elle est de 0,0125 chez les 400 individus restants.
On peut estimer la puissance de l'analyse avec deux groupes de 400 individus:
> p1 <- replicate(1000, { n <- rbinom(1, 400, 0.0125);
x <- matrix( c(400, 400 - n, 0, n), ncol = 2);
fisher.test(x)$p.value} )
> mean(p1 < 0.05)
[1] 0.372
Et avec un groupe de 400 et 4 groupes de 100 personnes:
> p2 <- replicate(1000, { n <- rbinom(4, 100, 0.0125);
x <- matrix( c(400, 100 - n, 0, n), ncol = 2);
fisher.test(x)$p.value} )
> mean(p2 < 0.05)
[1] 0.629
Il y a une grande différence de puissance. La division des cas en 4 sous-groupes donne un test plus puissant, même s'il n'y a pas de différence de distribution entre ces sous-groupes. Bien entendu, ce gain de puissance n'est pas attribuable à une augmentation du taux d'erreur de type I.
Ce phénomène est-il bien connu? Est-ce à dire que la première stratégie est sous-alimentée? Une valeur p amorcée serait-elle une meilleure solution? Tous vos commentaires sont les bienvenus.
Post Scriptum
Comme l'a souligné @MartijnWeterings, une grande partie de la raison de ce comportement (ce qui n'est pas exactement ma question!) Réside dans le fait que les véritables erreurs de type I des stratégies d'analyse de remorquage ne sont pas les mêmes. Mais cela ne semble pas tout expliquer. J'ai essayé de comparer les courbes ROC pour vs .H 1 : p 0 = 0,05 ≠ p 1 = 0,0125
Voici mon code.
B <- 1e5
p0 <- 0.005
p1 <- 0.0125
# simulation under H0 with p = p0 = 0.005 in all groups
# a = 2 groups 400:400, b = 5 groupe 400:100:100:100:100
p.H0.a <- replicate(B, { n <- rbinom( 2, c(400,400), p0);
x <- matrix( c( c(400,400) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
p.H0.b <- replicate(B, { n <- rbinom( 5, c(400,rep(100,4)), p0);
x <- matrix( c( c(400,rep(100,4)) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
# simulation under H1 with p0 = 0.005 (controls) and p1 = 0.0125 (cases)
p.H1.a <- replicate(B, { n <- rbinom( 2, c(400,400), c(p0,p1) );
x <- matrix( c( c(400,400) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
p.H1.b <- replicate(B, { n <- rbinom( 5, c(400,rep(100,4)), c(p0,rep(p1,4)) );
x <- matrix( c( c(400,rep(100,4)) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
# roc curve
ROC <- function(p.H0, p.H1) {
p.threshold <- seq(0, 1.001, length=501)
alpha <- sapply(p.threshold, function(th) mean(p.H0 <= th) )
power <- sapply(p.threshold, function(th) mean(p.H1 <= th) )
list(x = alpha, y = power)
}
par(mfrow=c(1,2))
plot( ROC(p.H0.a, p.H1.a) , type="b", xlab = "alpha", ylab = "1-beta" , xlim=c(0,1), ylim=c(0,1), asp = 1)
lines( ROC(p.H0.b, p.H1.b) , col="red", type="b" )
abline(0,1)
plot( ROC(p.H0.a, p.H1.a) , type="b", xlab = "alpha", ylab = "1-beta" , xlim=c(0,.1) )
lines( ROC(p.H0.b, p.H1.b) , col="red", type="b" )
abline(0,1)
Voici le résultat:
Nous voyons donc qu'une comparaison avec la même erreur de type I véritable conduit toujours à des différences (bien plus faibles).
Réponses:
Pourquoi les valeurs de p sont-elles différentes
Il y a deux effets:
C'est pourquoi la valeur de p diffère de près d'un facteur 2. (pas exactement à cause du point suivant)
Pendant que vous perdez le 5 0 0 0 0 comme un cas tout aussi extrême, vous gagnez le 1 4 0 0 0 comme un cas plus extrême que le 0 2 1 1 1.
exemple de code:
sortie de ce dernier bit
Comment cela affecte la puissance lors de la division des groupes
Il existe certaines différences en raison des étapes discrètes des niveaux «disponibles» des valeurs de p et de la prudence du test exact de Fishers (et ces différences peuvent devenir assez importantes).
le test de Fisher correspond également au modèle (inconnu) basé sur les données, puis utilise ce modèle pour calculer les valeurs de p. Le modèle de l'exemple est qu'il y a exactement 5 individus exposés. Si vous modélisez les données avec un binôme pour les différents groupes, vous obtiendrez parfois plus ou moins de 5 individus. Lorsque vous appliquez le test de Fisher à cela, une partie de l'erreur sera ajustée et les résidus seront plus petits par rapport aux tests avec des marginaux fixes. Le résultat est que le test est beaucoup trop conservateur, pas exact.
Reste à savoir si cela vaut pour toutes les situations possibles.
Ajustement du code 3 fois de votre analyse de puissance (et 3 images):
utilisation d'un binôme restreint au cas de 5 individus exposés
Il est intéressant de voir que l'effet est beaucoup plus fort pour le boîtier 400-400 (rouge) que pour le boîtier 400-100-100-100-100 (bleu). Ainsi, nous pouvons en effet utiliser cette séparation pour augmenter la puissance, la rendre plus susceptible de rejeter le H_0. (bien que nous ne nous soucions pas tellement de rendre l'erreur de type I plus probable, le point de faire cette division pour augmenter la puissance n'est pas toujours si fort)
utilisant un binôme ne se limitant pas à 5 individus exposés
Si nous utilisons un binôme comme vous l'avez fait, aucun des deux cas 400-400 (rouge) ou 400-100-100-100-100 (bleu) ne donne une valeur de p précise. En effet, le test exact de Fisher suppose des totaux de ligne et de colonne fixes, mais le modèle binomial permet de les libérer. Le test de Fisher «ajustera» les totaux des lignes et des colonnes, ce qui rend le terme résiduel plus petit que le vrai terme d'erreur.
l'augmentation de puissance a-t-elle un coût?
Pourquoi cela affecte-t-il la puissance
Je pense que la clé du problème réside dans la différence des valeurs de résultat qui sont choisies comme "significatives". La situation est de cinq individus exposés tirés de 5 groupes de taille 400, 100, 100, 100 et 100. Différentes sélections peuvent être considérées comme «extrêmes». apparemment, la puissance augmente (même lorsque l'erreur efficace de type I est la même) lorsque nous optons pour la deuxième stratégie.
Si nous esquissions graphiquement la différence entre la première et la deuxième stratégie. Ensuite, j'imagine un système de coordonnées à 5 axes (pour les groupes de 400100100100 et 100) avec un point pour les valeurs d'hypothèse et la surface qui représente une distance de déviation au-delà de laquelle la probabilité est inférieure à un certain niveau. Avec la première stratégie, cette surface est un cylindre, avec la deuxième stratégie, cette surface est une sphère. La même chose est vraie pour les vraies valeurs et une surface autour d'elle pour l'erreur. Ce que nous voulons, c'est que le chevauchement soit le plus faible possible.
Nous pouvons faire un graphique réel lorsque nous considérons un problème légèrement différent (avec une dimensionnalité inférieure).
Le graphique montre comment les groupes de 500 et 500 (au lieu d'un seul groupe de 1000) sont distribués.
Le test d'hypothèse standard évaluerait (pour un niveau alpha de 95%) si la somme de X et Y est supérieure à 531 ou inférieure à 469.
Mais cela inclut une distribution inégale très improbable de X et Y.
Ce n'est cependant pas (nécésarilly) vrai lorsque nous ne sélectionnons pas la division des groupes au hasard et lorsqu'il peut y avoir un sens aux groupes.
la source