Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Démontrer qu'un t-test rejettera plus qu'un welch test
+2
Alex83
zezima
6 participants
Page 1 sur 1
Démontrer qu'un t-test rejettera plus qu'un welch test
Bonjour,
Je cherche à évaluer le fait d'ignorer l'hypothèse d'homogénéité dans le t-test.
Surtout n'hésitez pas à me dire si vous trouvez que je fais fausse route.
La différence entre un t-test et un welch test est la prise en compte de l'homogénéité des variances dans chaque groupe (pour le t-test).
Il y a pour moi deux hypothèses qui font que le t-test rejettera plus souvent H0 que le test de welch :
- le ddl du t-test sera toujours plus grand ou égal à celui du test de welch (et donc une statistique de test plus simple à rejeter donc H0 plus simple à rejeter)
- le dénominateur de la statistique de test du t-test est toujours plus petite ou égale à celle du test de welch (et donc la statistique de test du t-test sera plus élevée)
Je me tiens dans le cas de figure où les tailles d'échantillons des 2 groupes sont équilibrées.
Posons :
n=effectif total
n1=effectif du groupe 1
n2=effectif du groupe 2
s=sd
s1=sd(groupe 1)
s2=sd(groupe 2)
On a :
n1=n2
n=n1+n2 donc n=2*n1
Le dénominateur du t-test sera :
racine(s²/n)=racine(s²/(n1+n2))=racine(s²/(n1*2))=s/racine(n1*2)
Le dénominateur du test de welch sera :
racine((s1²/n1)+(s2²/n2))=racine((s1²/n1)+(s2²/n1))=racine((s1²+s2²)/n1)=racine(((s1²+s2²)*2)/(n1*2))=racine((s1²+s2²)*2)/racine(n1*2)
Il faudrait donc démontrer que "s" est toujours plus petit ou égal à "racine((s1²+s2²)*2)".
En faisant des simulations, on voit que c'est vrai mais je n'arrive pas à prouver que s
Quelqu'un saurait-il comment démontrer cette inégalité ?
Un grand merci d'avance
Je cherche à évaluer le fait d'ignorer l'hypothèse d'homogénéité dans le t-test.
Surtout n'hésitez pas à me dire si vous trouvez que je fais fausse route.
La différence entre un t-test et un welch test est la prise en compte de l'homogénéité des variances dans chaque groupe (pour le t-test).
Il y a pour moi deux hypothèses qui font que le t-test rejettera plus souvent H0 que le test de welch :
- le ddl du t-test sera toujours plus grand ou égal à celui du test de welch (et donc une statistique de test plus simple à rejeter donc H0 plus simple à rejeter)
- le dénominateur de la statistique de test du t-test est toujours plus petite ou égale à celle du test de welch (et donc la statistique de test du t-test sera plus élevée)
Je me tiens dans le cas de figure où les tailles d'échantillons des 2 groupes sont équilibrées.
Posons :
n=effectif total
n1=effectif du groupe 1
n2=effectif du groupe 2
s=sd
s1=sd(groupe 1)
s2=sd(groupe 2)
On a :
n1=n2
n=n1+n2 donc n=2*n1
Le dénominateur du t-test sera :
racine(s²/n)=racine(s²/(n1+n2))=racine(s²/(n1*2))=s/racine(n1*2)
Le dénominateur du test de welch sera :
racine((s1²/n1)+(s2²/n2))=racine((s1²/n1)+(s2²/n1))=racine((s1²+s2²)/n1)=racine(((s1²+s2²)*2)/(n1*2))=racine((s1²+s2²)*2)/racine(n1*2)
Il faudrait donc démontrer que "s" est toujours plus petit ou égal à "racine((s1²+s2²)*2)".
En faisant des simulations, on voit que c'est vrai mais je n'arrive pas à prouver que s
Quelqu'un saurait-il comment démontrer cette inégalité ?
Un grand merci d'avance
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Salut !
Je laisse les autres membres + aguerris que moi me corriger mais, si tout ce que tu dis en intro est juste, alors l'égalité peut se démontrer comme suit :
racine((s1²+s2²)*2) = racine(2) * racine(s1²+s2²) > racine(s1²+s2²) (car racine(2) >1)
et cette quantité vaut s (on s'en aperçoit en réécrivant sa définition).
Me trompe-je ? ^^
Alex
Je laisse les autres membres + aguerris que moi me corriger mais, si tout ce que tu dis en intro est juste, alors l'égalité peut se démontrer comme suit :
racine((s1²+s2²)*2) = racine(2) * racine(s1²+s2²) > racine(s1²+s2²) (car racine(2) >1)
et cette quantité vaut s (on s'en aperçoit en réécrivant sa définition).
Me trompe-je ? ^^
Alex
Alex83- Nombre de messages : 15
Date d'inscription : 09/01/2017
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Bonjour,
en regardant tes formules, il y a un truc qui me dérange :
- pour le T-test tu prends le test de moyenne d'un échantillon vs une valeur de référence
- pour le Welsh-test tu prends le test de différence de moyennes de 2 échantillons indépendants
Tu devrais partir sur s*(racine(1/n1+1/n2)) pour le test T de Student, non?
En partant là-dessus, si les échantillons sont de tailles identiques, n'y-a-til pas seulement le degré de liberté de la loi de Student qui change? (n-2 pour le test-T et n-1 pour le test de Welch)?
Les variances étant identiques pour les deux tests lorsque les échantillons sont de même taille, je pense :
pour simplifier je dis n1=n2=n.
pour le test-T, la variance pondérée des deux échantillons multipliées par (1/n1+1/n2):
[ ((n-1)*S1²+(n-1)*S2²) /(2*n-2) ]*(2/n)
=( (n-1)*S1²+(n-1)*S2² ) / ( (n-1)*n )
= (S1²+S2²)/n
Pour le Welsh Test :
S1²/n+S2²/n
= (S1²+S2²)/n
Niaboc
en regardant tes formules, il y a un truc qui me dérange :
- pour le T-test tu prends le test de moyenne d'un échantillon vs une valeur de référence
- pour le Welsh-test tu prends le test de différence de moyennes de 2 échantillons indépendants
Tu devrais partir sur s*(racine(1/n1+1/n2)) pour le test T de Student, non?
En partant là-dessus, si les échantillons sont de tailles identiques, n'y-a-til pas seulement le degré de liberté de la loi de Student qui change? (n-2 pour le test-T et n-1 pour le test de Welch)?
Les variances étant identiques pour les deux tests lorsque les échantillons sont de même taille, je pense :
pour simplifier je dis n1=n2=n.
pour le test-T, la variance pondérée des deux échantillons multipliées par (1/n1+1/n2):
[ ((n-1)*S1²+(n-1)*S2²) /(2*n-2) ]*(2/n)
=( (n-1)*S1²+(n-1)*S2² ) / ( (n-1)*n )
= (S1²+S2²)/n
Pour le Welsh Test :
S1²/n+S2²/n
= (S1²+S2²)/n
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Bonjour et tout d'abord merci beaucoup pour vos réponses,
Alex83 :
La décomposition du dénominateur de la statistique de test du test de welch est en effet juste mais il n'y a pas de relation entre s, s1 et s2, malheureusement nous ne pouvons pas dire que s=racine(s1²+s2²) car la variabilité des deux échantillons est différente de celle globale.
Petit exemple :
Niaboc :
Oui en effet tu as raison, après vérification, la statistique de test du t-test de différence entre 2 moyennes d'échantillons indépendants pour une variabilité homogène n'était pas la bonne.
Tu m'as convaincu avec la formule, c'est donc le ddl qui joue au final.
Merci pour ta démonstration.
Ce petit code confirme que le Welch n'aura jamais une p-valeur plus petite que le Student (variances homogènes) :
Alex83 :
La décomposition du dénominateur de la statistique de test du test de welch est en effet juste mais il n'y a pas de relation entre s, s1 et s2, malheureusement nous ne pouvons pas dire que s=racine(s1²+s2²) car la variabilité des deux échantillons est différente de celle globale.
Petit exemple :
- Code:
a=rnorm(30,50,round(runif(1,min=1,max=10)));b=rnorm(30,50+round(runif(1,min=1,max=10)),round(runif(1,min=1,max=10)));c=c(a,b);print("ttest");sd(c);print("welch");sqrt((var(a)+var(b))*2)
Niaboc :
Oui en effet tu as raison, après vérification, la statistique de test du t-test de différence entre 2 moyennes d'échantillons indépendants pour une variabilité homogène n'était pas la bonne.
Tu m'as convaincu avec la formule, c'est donc le ddl qui joue au final.
Merci pour ta démonstration.
Ce petit code confirme que le Welch n'aura jamais une p-valeur plus petite que le Student (variances homogènes) :
- Code:
for (i in 1:10000){
a=rnorm(30,50,round(runif(1,min=1,max=10)));b=rnorm(30,50+round(runif(1,min=1,max=10)),round(runif(1,min=1,max=10)));c=c(a,b)
if (t.test(a,b,var.equal=FALSE)$p.value<t.test(a,b,var.equal=TRUE)$p.value) {
print("oulala");print(i);break}
}
Dernière édition par zezima le Mer 17 Mai 2017 - 15:37, édité 1 fois
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Ton sujet m'a fait découvrir ce blog.
Très intéressant je trouve.
http://daniellakens.blogspot.fr/2015/01/always-use-welchs-t-test-instead-of.html
Très intéressant je trouve.
http://daniellakens.blogspot.fr/2015/01/always-use-welchs-t-test-instead-of.html
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Arf, j'étais presque sûr de moi hein ! :p
Exemple si n=6, n1=3, n2=3 (enlevons le /n de la formule de la variance, pour simplifier, mais comme n1=n2, pas d'impact)
s1 = racine( (x1-xbar)² + (x2-xbar)² + (x3-xbar)²) ) => s1² = (x1-xbar)² + (x2-xbar)² + (x3-xbar)²
s2 = racine( (x4-xbar)² + (x5-xbar)² + (x6-xbar)²) ) => s2² = (x4-xbar)² + (x5-xbar)² + (x6-xbar)²
racine(s1² +s2²) = racine( (x1-xbar)² + (x2-xbar)² + (x3-xbar)² + (x4-xbar)² + (x5-xbar)² + (x6-xbar)² )
qui est bien s par définition, non ? (l'écart type de toute ta population)
En gros, comme n est couvert par n1 et n2 (dans les mêmes proportions), tu peux toujours réarranger les termes sous ta racine carrée...(?)
Si j'ai faux, soit mes cours de maths sont trop loin, soit je suis très fatigué... ^^
Alex
Exemple si n=6, n1=3, n2=3 (enlevons le /n de la formule de la variance, pour simplifier, mais comme n1=n2, pas d'impact)
s1 = racine( (x1-xbar)² + (x2-xbar)² + (x3-xbar)²) ) => s1² = (x1-xbar)² + (x2-xbar)² + (x3-xbar)²
s2 = racine( (x4-xbar)² + (x5-xbar)² + (x6-xbar)²) ) => s2² = (x4-xbar)² + (x5-xbar)² + (x6-xbar)²
racine(s1² +s2²) = racine( (x1-xbar)² + (x2-xbar)² + (x3-xbar)² + (x4-xbar)² + (x5-xbar)² + (x6-xbar)² )
qui est bien s par définition, non ? (l'écart type de toute ta population)
En gros, comme n est couvert par n1 et n2 (dans les mêmes proportions), tu peux toujours réarranger les termes sous ta racine carrée...(?)
Si j'ai faux, soit mes cours de maths sont trop loin, soit je suis très fatigué... ^^
Alex
Alex83- Nombre de messages : 15
Date d'inscription : 09/01/2017
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Nik
Très intéressant comme article Nik.
Cependant, je ne comprends pas qu'ils appellent à remplacer le t-test par un welch test, tout ça en se basant sur une simulation avec un delta fixe, des tailles d'échantillons fixes et des variances fixes.
Personnellement j'ai également effectué une simulation mais en me basant sur la puissance et le risque de rejet à tort alpha.
Je ne me suis intéressé à des échantillons de taille 9 mais j'ai trouvé que le taux de bonne prédiction des mes p-valeurs était beaucoup plus grand pour un t-test plutôt qu'un welch. (10% de gain en puissance et 1% d'augmentation du risque alpha pour le t-test)
Alex83
Hélas la formule que tu as énoncé n'est pas bonne, ce serait plutôt :
s1 = racine( ( (x1-xbar[1,2,3])² + (x2-xbar[1,2,3])² + (x3-xbar[1,2,3])²) )/3)
s2 = racine( ( (x4-xbar[4,5,6])² + (x5-xbar[4,5,6])² + (x6-xbar[4,5,6])²) )/3)
Car l'écart-type que tu calcules dans chaque groupe ne dépend que des données de chaque groupe
Très intéressant comme article Nik.
Cependant, je ne comprends pas qu'ils appellent à remplacer le t-test par un welch test, tout ça en se basant sur une simulation avec un delta fixe, des tailles d'échantillons fixes et des variances fixes.
Personnellement j'ai également effectué une simulation mais en me basant sur la puissance et le risque de rejet à tort alpha.
Je ne me suis intéressé à des échantillons de taille 9 mais j'ai trouvé que le taux de bonne prédiction des mes p-valeurs était beaucoup plus grand pour un t-test plutôt qu'un welch. (10% de gain en puissance et 1% d'augmentation du risque alpha pour le t-test)
Alex83
Hélas la formule que tu as énoncé n'est pas bonne, ce serait plutôt :
s1 = racine( ( (x1-xbar[1,2,3])² + (x2-xbar[1,2,3])² + (x3-xbar[1,2,3])²) )/3)
s2 = racine( ( (x4-xbar[4,5,6])² + (x5-xbar[4,5,6])² + (x6-xbar[4,5,6])²) )/3)
Car l'écart-type que tu calcules dans chaque groupe ne dépend que des données de chaque groupe
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Hello,
Je ne suis pas très sûr de bien comprendre cette discussion.
Ce que vous appelez un "test de Welch" est en fait un test t avec une correction de Welch, effectivement sur le ddl. Les deux sont des tests t, et en fait, il ne s'agit que du même test t avec correction ou pas.
Par ailleurs, le test t en cas d’homoscédasticité est, si je me souviens bien, juste un cas particulier de l'approximation proposée par Welch (ou Satterthwaite), qui le généralise. Si les variances des deux populations mères sont exactement les mêmes, l'approximation de Welch retombe sur un ddl de n1+n2-2 (il y a bien longtemps que je n'ai pas vérifié ce truc).
Du coup, la démarche est de prendre toujours cette approximation, qui retombera donc sur un simple test t en cas d'homoscédasticité parfaite.
Ou alors, j'ai loupé quelque chose dans cette discussion.
HTH, Eric.
Je ne suis pas très sûr de bien comprendre cette discussion.
Ce que vous appelez un "test de Welch" est en fait un test t avec une correction de Welch, effectivement sur le ddl. Les deux sont des tests t, et en fait, il ne s'agit que du même test t avec correction ou pas.
Par ailleurs, le test t en cas d’homoscédasticité est, si je me souviens bien, juste un cas particulier de l'approximation proposée par Welch (ou Satterthwaite), qui le généralise. Si les variances des deux populations mères sont exactement les mêmes, l'approximation de Welch retombe sur un ddl de n1+n2-2 (il y a bien longtemps que je n'ai pas vérifié ce truc).
Du coup, la démarche est de prendre toujours cette approximation, qui retombera donc sur un simple test t en cas d'homoscédasticité parfaite.
Ou alors, j'ai loupé quelque chose dans cette discussion.
HTH, Eric.
Eric Wajnberg- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Eric Wajnberg a écrit:
Ce que vous appelez un "test de Welch" est en fait un test t avec une correction de Welch, effectivement sur le ddl. Les deux sont des tests t, et en fait, il ne s'agit que du même test t avec correction ou pas.
Ce n'est pas uniquement la correction du ddl, il s'agît (à mon sens) d'une vrai modification du test t puisqu'on utilise plus la variance combinée des 2 populations et qu'on recalcule en plus un ddl spécifiquement pour ce cas.
Eric Wajnberg a écrit:
Par ailleurs, le test t en cas d’homoscédasticité est, si je me souviens bien, juste un cas particulier de l'approximation proposée par Welch (ou Satterthwaite), qui le généralise. Si les variances des deux populations mères sont exactement les mêmes, l'approximation de Welch retombe sur un ddl de n1+n2-2 (il y a bien longtemps que je n'ai pas vérifié ce truc).
Du coup, la démarche est de prendre toujours cette approximation, qui retombera donc sur un simple test t en cas d'homoscédasticité parfaite.
Il me semble que la taille des 2 échantillons doit être identique également pour que la correction du ddl de Welch retombe sur n1+n2-2, sinon la correction fait augmenter le ddl, même en cas d'homoscédasticité?
Il est peut-être donc préférable de partir d'abord sur un test d'égalité des variances (F de Snédécor) avant de choisir entre test T de Student ou test de Welch (Du moins, c'est comme ça que je procède...)
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
niaboc a écrit:Il est peut-être donc préférable de partir d'abord sur un test d'égalité des variances (F de Snédécor) avant de choisir entre test T de Student ou test de Welch (Du moins, c'est comme ça que je procède...)
Oui mais je pense qu'on arrive au même problème que le test de shapiro.
Pour un test de Levene (qui est assez subjectif au final), on aura du mal à rejeter l'égalité des variances pour de petits échantillons et inversement, on rejettera facilement pour de grands échantillons, je pense qu'il est potentiellement plus robuste de faire une analyse visuelle.
Et après avoir fait une petite simulation, il semblerait qu'un T de Student (variances homogènes) ait plus de résultats bien prédits sur des tous petits échantillons (je peux mettre le code si besoin).
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Bonjour,
Pour répondre à la question de départ on pourrait envisager de faire des simulations avec des variances communes ou non (et des ecarts de plus en forts), avec des écarts de moyennes de plus en plus forts et avec des tailles d'échantillon de plus en plus grandes.
cdlt
Je ne suis pas d'accord avec cette affirmation parce qu'à part dans de très rares cas ou des simulations on ne connait pas les variances des populations, on en a juste des estimations. Dans le cas du test T tu vas effectivement considérer que les variances des populations sont égales (pop et non échantillon) et tu fais donc une estimation de la variance commune aux deux populations. Avec Welsh tu relâches cette hypothèse. Le choix devrait à mon avis se faire sur cette base : est-ce que tu peux considérer que les variances sont homogènes ? Si oui test T si non ou pas d'avis alors Welsh.niaboc a écrit:Ce n'est pas uniquement la correction du ddl, il s'agît (à mon sens) d'une vrai modification du test t puisqu'on utilise plus la variance combinée des 2 populations et qu'on recalcule en plus un ddl spécifiquement pour ce cas.
Pour répondre à la question de départ on pourrait envisager de faire des simulations avec des variances communes ou non (et des ecarts de plus en forts), avec des écarts de moyennes de plus en plus forts et avec des tailles d'échantillon de plus en plus grandes.
cdlt
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Bonjour droopy,
Oui j'ai effectué une simulation mais cette fois-ci comparant une ANOVA classique (hypothèse d'homogénéité des variances) et une ANOVA de Welch (hypothèse d'hétérogénéité des variances).
Et je pense qu'il y a un problème dans mon code ou alors il faut que je publie ma simulation, j'ai conclu que j'avais un ratio puissance/risque alpha plus élevé pour des ANOVAs classiques par rapport aux ANOVAs de Welch lorsqu'on est dans un cas de figure d'hétérogénéité pour des groupes de taille n=9.
Je pense qu'il manque quelquechose :/
Oui j'ai effectué une simulation mais cette fois-ci comparant une ANOVA classique (hypothèse d'homogénéité des variances) et une ANOVA de Welch (hypothèse d'hétérogénéité des variances).
Et je pense qu'il y a un problème dans mon code ou alors il faut que je publie ma simulation, j'ai conclu que j'avais un ratio puissance/risque alpha plus élevé pour des ANOVAs classiques par rapport aux ANOVAs de Welch lorsqu'on est dans un cas de figure d'hétérogénéité pour des groupes de taille n=9.
Je pense qu'il manque quelquechose :/
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Démontrer qu'un t-test rejettera plus qu'un welch test
Dans le cas d'hétérogénéité de variance sur une ANOVA je partirais sur des gls plutôt que sur une ANOVA de Welch (je n'en avais jamais entendu parlée).
cdlt
cdlt
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Sujets similaires
» test t de Welch
» Welch test ou log-transformation
» Test statistique: test coeff correlation deux sous popu
» test pente significative test de fisher Fcalculé négatif?
» Test sur variable globale ou test sur variables indicatrices
» Welch test ou log-transformation
» Test statistique: test coeff correlation deux sous popu
» test pente significative test de fisher Fcalculé négatif?
» Test sur variable globale ou test sur variables indicatrices
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum