J'essaie de comprendre le calcul de puissance pour le cas des deux échantillons t-test indépendants (en ne supposant pas des variances égales, j'ai donc utilisé Satterthwaite).
Voici un diagramme que j'ai trouvé pour aider à comprendre le processus:
J'ai donc supposé que compte tenu des éléments suivants concernant les deux populations et des tailles d'échantillon:
mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20
Je pourrais calculer la valeur critique sous le zéro concernant la probabilité de queue supérieure de 0,05:
df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1) )
CV<- qt(0.95,df) #equals 1.730018
puis calculer l'hypothèse alternative (qui pour ce cas, j'ai appris est une "distribution t non centrale"). J'ai calculé la bêta dans le diagramme ci-dessus en utilisant la distribution non centrale et la valeur critique trouvée ci-dessus. Voici le script complet dans R:
#under alternative
mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20
#Under null
Sp<-sqrt(((n1-1)*sd1^2+(n2-1)*sd2^2)/(n1+n2-2))
df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1) )
CV<- qt(0.95,df)
#under alternative
diff<-mu1-mu2
t<-(diff)/sqrt((sd1^2/n1)+ (sd2^2/n2))
ncp<-(diff/sqrt((sd1^2/n1)+(sd2^2/n2)))
#power
1-pt(t, df, ncp)
Cela donne une valeur de puissance de 0,4935132.
Est-ce la bonne approche? Je trouve que si j'utilise un autre logiciel de calcul de puissance (comme SAS, que je pense avoir installé de manière équivalente à mon problème ci-dessous), j'obtiens une autre réponse (de SAS c'est 0,33).
CODE SAS:
proc power;
twosamplemeans test=diff_satt
meandiff = 1
groupstddevs = 3 | 2
groupweights = (1 1)
ntotal = 40
power = .
sides=1;
run;
En fin de compte, j'aimerais obtenir une compréhension qui me permettrait d'examiner des simulations pour des procédures plus compliquées.
EDIT: J'ai trouvé mon erreur. aurait du être
1 pt (CV, df, ncp) PAS 1 pt (t, df, ncp)
la source
Si vous êtes principalement intéressé par le calcul de la puissance (plutôt que d'apprendre à le faire à la main) et que vous utilisez déjà R, regardez le
pwr
package et les fonctionspwr.t.test
oupwr.t2n.test
. (cela peut être bon pour vérifier vos résultats même si vous le faites à la main pour apprendre).la source