[python] Berechne ein Konfidenzintervall aus Probendaten



0 Answers

Hier eine verkürzte Version des Shasan-Codes, der das 95% -Konfidenzintervall des Mittelwerts von Array a berechnet:

import numpy as np, scipy.stats as st

st.t.interval(0.95, len(a)-1, loc=np.mean(a), scale=st.sem(a))

Aber StatsModels ' tconfint_mean ist wohl noch schöner:

import statsmodels.stats.api as sms

sms.DescrStatsW(a).tconfint_mean()

Die zugrunde liegenden Annahmen für beide sind, dass die Probe (Array a ) unabhängig von einer Normalverteilung mit unbekannter Standardabweichung gezeichnet wurde (siehe MathWorld oder Wikipedia ).

Bei einer großen Stichprobengröße n ist der Stichprobenmittelwert normal verteilt, und man kann sein Vertrauensintervall unter Verwendung von st.norm.interval() berechnen (wie in Jaimes Kommentar vorgeschlagen). Aber die obigen Lösungen sind auch für kleine n korrekt, wobei st.norm.interval() Konfidenzintervalle gibt, die zu eng sind (dh "falsche Konfidenz"). Siehe meine answer auf eine ähnliche Frage für weitere Details (und einen von Russ 'Kommentaren hier).

Hier ein Beispiel, in dem die richtigen Optionen (im Wesentlichen) identische Konfidenzintervalle ergeben:

In [9]: a = range(10,14)

In [10]: mean_confidence_interval(a)
Out[10]: (11.5, 9.4457397432391215, 13.554260256760879)

In [11]: st.t.interval(0.95, len(a)-1, loc=np.mean(a), scale=st.sem(a))
Out[11]: (9.4457397432391215, 13.554260256760879)

In [12]: sms.DescrStatsW(a).tconfint_mean()
Out[12]: (9.4457397432391197, 13.55426025676088)

Und schließlich das falsche Ergebnis mit st.norm.interval() :

In [13]: st.norm.interval(0.95, loc=np.mean(a), scale=st.sem(a))
Out[13]: (10.23484868811834, 12.76515131188166)
Question

Ich habe Beispieldaten, für die ich ein Konfidenzintervall berechnen möchte, unter der Annahme einer Normalverteilung.

Ich habe die numpy und scipy Pakete gefunden und installiert und bin numpy geworden, um einen Mittelwert und eine Standardabweichung (numpy.mean (Daten) mit Daten, die eine Liste sind) zurückzugeben. Jeder Ratschlag zum Erhalten eines Stichprobenkonfidenzintervalls würde sehr geschätzt werden.




Related