Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

delta de power.t.test

2 participants

Aller en bas

delta de power.t.test Empty delta de power.t.test

Message par Alexandre Dangléant Ven 27 Juin 2014 - 7:58

Bonjour,

Je réalise actuellement un travail sur la "puissance des tests", plus précisément sur le test de Student. La démarche que je mène vise à répondre à la question :
"Combien d'observations dois-je faire pour qu'un test de student sur deux échantillons (bi-latéral ou non, cela peut varier) soit significatif à partir de x% de différence?". Pour ceux que ça intéresse, je précise qu'il faut avant tout disposer d'une référence de l'écart-type de la moyenne de la variable que l'on étudie pour appréhender cette question.

La question peut également être prise dans l'autre sens à savoir : "avec le nombre d'observations dont je dispose, quelle est la plus petite différence significative que je peux détecter?". Cela permet, in fine, de faire des conclusions plus précises en changeant le "...différence moyenne non significative..." en "...différence moyenne significativement inférieure à une valeur x...". C'est sous cette forme que je travaille actuellement.

J'utilise donc la fonction power.t.test (sous R) et suis assez surpris des résultats que j'obtiens lorsque je cherche à évaluer la sensibilité de mon dispositif expérimental. Un exemple tiré de mes données (relative à l'efficacité de deux traitements) :
Code:
# soit 2 traitements (nommés MAQS et Apilife var)
> (n1 <- (sum(!is.na(tab$eff[type=="MAQS"]))))
[1] 53
> (n2 <- (sum(!is.na(tab$eff[type=="Apilife var"]))))
[1] 58
> (s1 <- sd(tab$eff[type=="MAQS"], na.rm=T))
[1] 24.31975
> (s2 <- sd(tab$eff[type=="Apilife var"], na.rm=T))
[1] 11.55316
> power.t.test(n=53, sd = sqrt((s1^2/n1)+(s2^2/n2)), sig = 0.05, power = 0.95, type = "two.sample")$delta # Je fixe le "n" au plus faible
[1] 2.593273

# Et le test de Student (Welch car variances inégales) qui va avec :
> t.test(tab$eff[type=="MAQS"], tab$eff[type=="Apilife var"])

        Welch Two Sample t-test

data:  tab$eff[type == "MAQS"] and tab$eff[type == "Apilife var"]
t = -2.5998, df = 72.833, p-value = 0.01129
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -16.850867  -2.226134
sample estimates:
mean of x mean of y
  77.2534   86.7919

Je doute vraiment que mon test reste significatif si la différence des moyennes passe à 3 % (au vu notamment de l'intervalle de confiance de la différence). Les questions que je me pose sont :

- J'ai des échantillons déséquilibrés, peut-être est-ce un problème?
- Est-ce l'absence d'homogénéité des variances qui donne une sensibilité bien plus basse au test de Welch? A ce moment "power.t.test" n'est pas adapté? Mais je doute que le test de Welch soit à ce point éloigné de celui de Student...

J'avais codé moi-même une fonction similaire à power.t.test (avant de connaître son existence). Les résultats que j'avais obtenu en la testant m'ont fait dire que, lorsqu'on fixe beta à 0.05 (ou "power" à 0.95), la sensibilité est environ égale à la moitié de l'intervalle de confiance donné par t.test (avec ou sans homogénéité des variances), ce qui est très cohérent, en tout cas bien plus que ce que j'obtiens là. Je passais par la même estimation de Laplace-Gauss pour l'écart-type de la différence. Au passage, cela me laisser entendre dire que la fonction t.test fixe implicitement le risque de seconde espèce beta à 0.05. Je suis suffisamment humble pour penser qu'il est peu probable que j'ai raison face à la communauté R, mais j'aimerai bien comprendre. De ce que j'ai vu, power.t.test se repose uniquement sur les quantiles de student (fonctions "qt(), pt()" etc...). De mon coté, j'avais pris le parti de passer sur les quantiles de la loi normale au delà de 30 observations (ce qui me donne un "ressaut" de sensibilité autour de 30 observations lorsque je fais un plot delta~n en fixant sd, alpha et beta). Peut être est-ce là la raison de cette différence? Mais logiquement, c'est la loi normale qui devrait donner la plus petite sensibilité (la table de student n'étant qu'une approximation de celle de la loi normale, à moins que je ne m'égare).

Bref, comprenez-vous pourquoi le delta que me retourne power.t.test est si faible? Je m'attendez plus à une valeur avoisinnant 7.31 pour les raisons citées plus haut :
Code:
> (16.850867 - 2.226134 )/2
[1] 7.312367

D'avance merci pour les contributions.
Bien cordialement.

Alexandre Dangléant

Nombre de messages : 19
Date d'inscription : 15/10/2013

Revenir en haut Aller en bas

delta de power.t.test Empty Re: delta de power.t.test

Message par c@ssoulet Ven 27 Juin 2014 - 8:58

Ce lien peut aider, en particulier les exemples de calcul et les references en fin d'article

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2876926/

c@ssoulet

Nombre de messages : 925
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

delta de power.t.test Empty Re: delta de power.t.test

Message par Alexandre Dangléant Ven 27 Juin 2014 - 9:28

Merci! Je m'y colle desuite!

Alexandre Dangléant

Nombre de messages : 19
Date d'inscription : 15/10/2013

Revenir en haut Aller en bas

delta de power.t.test Empty Re: delta de power.t.test

Message par Alexandre Dangléant Ven 27 Juin 2014 - 14:17

De ce que j'ai vu, leur calcul me parait incorrect par rapport à un autre travail sur lequel je me suis basé et où la formule est clairement explicité. Ils donnent :
          n = 2(Za+Z1-b)² x sigma² x delta²
avec
n = le nombre d'observations
Z les valeurs des tables d'alpha et beta
sigma = l'écart-type de la différence entre les moyennes
delta = la différence que l'on cherche à mettre en évidence

Hors cette formule est plutôt : n = 2(Za+Z1-b)² x (sigma/delta)²

Je n'ai malheureusement pas de lien à fournir, mais j'ai le pdf sous la main donc me contacter en mp pour un envoi direct de la fiche décrivant le calcul.

Cela m'a tout de même poussé à revenir sur mon script et j'ai du merder qq part, manifestement. En réalité, et c'est l'article fourni qui m'a mis la puce à l'oreille, le t.test semble plus calqué sur un risque beta situé entre de 0.10 et 0.15. En refaisant mes calculs, ma sensibilité et remontée à 7.39 % (par rapport au 3% de mon premier post), ce qui place la borne inférieur de l'intervalle de confiance de la différence à proximité de 0. En diminuant beta, ma sensibilité diminue et la plus petite différence que je peux détecter significativement augmente. Bref, tout va bien dans le meilleur des mondes!

Bien cordialement!

Alexandre Dangléant

Nombre de messages : 19
Date d'inscription : 15/10/2013

Revenir en haut Aller en bas

delta de power.t.test Empty Re: delta de power.t.test

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum