(Problem gelöst ist, x, y und s1, s2 unterschiedlicher Größe waren)Warum gibt der T-Test in Python (scipy, statsmodels) andere Ergebnisse als R, Stata oder Excel?
in R:
x <- c(373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260)
y <- c(411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303)
t.test(x,y)
t = -1.6229, df = 29.727, p-value = 0.1152
Gleiche Zahlen in STATA und Excel
t.test(x,y,alternative="less")
t = -1.6229, df = 29.727, p-value = 0.05758
erhalten werden, kann ich nicht replizieren das selbe ergebnis entweder mit statsmodels.stats.weightstats.test_ind oder scipy.stats.ltest_ind, egal welche Optionen ich versuche.
statsmodels.stats.weightstats.ttest_ind(s1,s2,alternative="two-sided",usevar="unequal")
(-1.8912081781378358, 0.066740317997990656, 35.666557473974343)
scipy.stats.ttest_ind(s1,s2,equal_var=False)
(array(-1.8912081781378338), 0.066740317997990892)
scipy.stats.ttest_ind(s1,s2,equal_var=True)
(array(-1.8912081781378338), 0.066664507499812745)
Es muss Tausende von Leuten geben, die Python verwenden, um T-Test zu berechnen. Erhalten wir alle falsche Ergebnisse? (Ich verlasse mich normalerweise auf Python, aber dieses Mal habe ich meine Ergebnisse mit STATA überprüft).
Ich lief stats.ttest_ind (x, y, equal_var = True) und bekam Array (-1,6229, 0,1152). In Ihrem Beispiel überprüfen Sie, dass s1/s2 == x/y. – tnknepp
Welche Version von Scipy verwenden Sie? –
Wenn ich weiter in das Problem schaue, sehe ich, dass, während R df = 29.727 gibt, Python df = 35.666 ergibt. Also ich vermute, dass der Fehler durch df-Berechnungen verursacht werden muss ... Warren, ich bekomme immer noch stats.test_ind (s1, s2, gleich_var = True) (array (-1.8912081781378338), 0.066664507499812745). Ich verwende die neueste Enthought Canopy Python-Installation. – Oleg