2013-04-13 10 views
17

W R, możliwe jest przeprowadzenie dwóch prób jednostronnego testu t-po prostu za pomocąJak wykonać dwóch prób jednostronnego testu t z 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 

w Pythonie świata scipy zapewnia podobną funkcję ttest_ind, ale może wykonywać tylko dwustronne testy t. Najbliższe informacje na temat znalazłem link this, ale wydaje się, że raczej dyskusja na temat zasady stosowania jednostronny vs dwustronny w scipy.

W związku z tym moje pytanie brzmi, czy ktoś wie jakieś przykłady lub instrukcje, jak wykonać jednostronną wersję testu przy użyciu numpy/scipy?

Odpowiedz

44

z listy linku do korespondencji:

ponieważ testy jednostronne można wycofać się z dwustronnego testów. (Z rozkładów symetrycznych jednostronna p-wartość jest tylko pół z dwustronnym p-wartość)

To idzie dalej, że scipy zawsze daje statystykę testową jako podpisane. Oznacza to, że biorąc pod uwagę wartości p i t z dwustronnego testu, odrzuciłbyś hipotezę zerową wyższego niż test, gdy p/2 < alpha and t > 0 i mniej niż test, gdy p/2 < alpha and t < 0.

+0

Prawdopodobnie powiązane: http://stats.stackexchange.com/q/31361/21790 –

+0

Oto także powiązany film: https://www.udacity.com/course/viewer#!/c-ud359/l -649959144/e-638170794/m-638170795 – MarsPlus

+0

Jestem nieco zdezorientowany tym sformułowaniem 't'. H0: pierwszy jest większy niż drugi 'first = np.random.normal (32.400); sekund = np.random.normal (62,400); t, p = stats.ttest_ind (pierwsza, druga, oś = 0, equal_var = True) t-stat = -23.0, wartość p/2 = 1.33e-90 ' Tak, mam zerową hipotezę większy niż test, ale t <0, co oznacza, że ​​nie mogę odrzucić hipotezy zerowej? – Tonja

1

Gdy hipoteza zerowa to Ho: P1>=P2, a alternatywna hipoteza to Ha: P1<P2. Aby przetestować go w Pythonie, piszesz: ttest_ind(P2,P1). (Zwróć uwagę, że pozycja to P2 najpierw).

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

Dostaniesz wynik jak poniżej Ttest_indResult(statistic=-20.442436213923845,pvalue=5.0999336686332285e-75)

w Pythonie, kiedy statstic <0 swoją prawdziwą wartość p jest rzeczywiście real_pvalue = 1-output_pvalue/2= 1-5.0999336686332285e-75/2, co stanowi około 0,99. Ponieważ twoja wartość p jest większa niż 0,05, nie możesz odrzucić hipotezy zerowej, że 6> = 3. kiedy statstic >0, rzeczywisty wynik z jest równy -statstic, rzeczywista wartość p jest równa pvalue/2.

Odpowiedź Ivc powinna być, gdy (1-p/2) < alpha and t < 0, możesz odrzucić mniej niż hipotezę.

Powiązane problemy