2013-04-13 17 views
17

In R zwei Stichproben eines einseitigen t-Test durchzuführen, ist es möglich, durch die VerwendungWie mit numpy/scipy

> A = c(0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.48197798, 0.07532846) 
> B = c(0.6383447, 0.5271385, 1.7721380, 1.7817880) 
> t.test(A, B, alternative="greater") 

    Welch Two Sample t-test 

data: A and B 
t = -0.4189, df = 6.409, p-value = 0.6555 
alternative hypothesis: true difference in means is greater than 0 
95 percent confidence interval: 
-1.029916  Inf 
sample estimates: 
mean of x mean of y 
0.9954942 1.1798523 

In Python Welt zwei Stichproben einer einseitigen t-Test einfach durchzuführen, scipy bietet ähnliche Funktion ttest_ind, aber die nur zwei-tailed t-Tests tun können. Die nächsten Informationen zu dem Thema, das ich gefunden habe, ist this Link, aber es scheint eher eine Diskussion über die Politik der Implementierung von einseitigen vs zwei-tailed in scipy zu sein.

Daher meine Frage ist, dass jemand Beispiele oder Anweisungen zur Durchführung der einseitigen Version des Tests mit numpy/scipy kennt?

Antwort

44

aus Ihrem Mailing-Liste Link:

weil die einseitigen Tests von den zweiseitigen Tests gesichert werden können. (Bei der symmetrischen Verteilungen einseitiger p-Wert ist nur die Hälfte des zweiseitigen p-Wertes)

Es geht weiter zu sagen, dass scipy immer die Teststatistik gibt als unterzeichnet. Dies bedeutet, dass bei gegebenen p- und t-Werten aus einem zweiseitigen Test die Nullhypothese eines Größentests bei p/2 < alpha and t > 0 und eines weniger als-Tests bei p/2 < alpha and t < 0 zurückgewiesen wird.

+0

Möglicherweise verwandt: http://stats.stackexchange.com/q/31361/21790 –

+0

Hier ist auch ein ähnliches Video: https://www.udacity.com/course/viewer#!/c-ud359/l -649959144/e-638170794/m-638170795 – MarsPlus

+0

Ich bin ein wenig verwirrt durch diese Formulierung von "t". H0: erster ist größer als zweiter 'first = np.random.normal (3,2400); Sekunde = np.random.normal (6,2,400); t, p = stats.test_ind (erste, zweite, Achse = 0, equal_var = True) t-stat = -23.0, p-Wert/2 = 1.33e-90 ' Also habe ich eine Nullhypothese von Größer-als-Test, aber t <0, was bedeutet, dass ich die Nullhypothese nicht ablehnen kann? – Tonja

1

Wenn Nullhypothese ist Ho: P1>=P2 und alternative Hypothese ist Ha: P1<P2. Um es in Python zu testen, schreiben Sie ttest_ind(P2,P1). (Beachten Sie, dass die Position zuerst P2 ist).

first = np.random.normal(3,2,400) 
second = np.random.normal(6,2,400) 
stats.ttest_ind(first, second, axis=0, equal_var=True) 

Sie das Ergebnis wie erhalten unter Ttest_indResult(statistic=-20.442436213923845,pvalue=5.0999336686332285e-75)

In Python, wenn die realen p-Wert statstic <0 ist eigentlich real_pvalue = 1-output_pvalue/2= 1-5.0999336686332285e-75/2, was etwa 0,99 ist. Da Ihr p-Wert größer als 0,05 ist, können Sie die Nullhypothese 6> = 3 nicht ablehnen. Wenn statstic >0, ist der reale Z-Score tatsächlich gleich -statstic, der reale p-Wert ist gleich pvalue/2.

Ivc Antwort sollte sein, wenn (1-p/2) < alpha and t < 0, können Sie die weniger als Hypothese zurückweisen.