2013-07-09 13 views
18

Mam pewne wartości t i stopnie swobody i chcę od nich odszukać wartości p (to dwustronne). W prawdziwym świecie użyłbym tabeli testowej z tyłu podręcznika statystycznego; jak zrobić odpowiednik w Pythonie?Wartość p pythona ze statystyki t

tj

t-lookup(5, 7) = 0.04156 albo coś podobnego (gotowych numerami).

Wiem, że w SciPy, gdybym miał tablice, mógłbym zrobić scipy.stats.ttest_ind, ale nie. Mam tylko statystyki i stopnie swobody.

+0

Prawdopodobnie tabele statystyk istnieją dla wygody zamiast konieczności obliczania tych wartości z równania. Biorąc pod uwagę, że jest to program komputerowy, dlaczego zamiast tego użyć tego równania bezpośrednio? – dilbert

+0

To dość skomplikowane. Mam nadzieję, że w jakiejś bibliotece była jakaś metoda, która mogłaby to dla mnie zrobić. –

Odpowiedz

23

Od http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html

jako ćwiczenie, możemy obliczyć naszą TEST.T również bezpośrednio bez użycia podaną funkcję, która powinna dać nam tę samą odpowiedź, a więc robi:

tt = (sm-m)/np.sqrt(sv/float(n)) # t-statistic for mean 
pval = stats.t.sf(np.abs(tt), n-1)*2 # two-sided pvalue = Prob(abs(t)>tt) 
print 't-statistic = %6.3f pvalue = %6.4f' % (tt, pval) 
t-statistic = 0.391 pvalue = 0.6955 
+0

Dlaczego nazywają to (stats.t.sf) funkcją przetrwania? Czy to faktycznie jest to samo, co https://en.wikipedia.org/wiki/Survival_function – wordsforthewise

Powiązane problemy