Konfidenzintervalle mit Python verstehen

Quellknoten: 1883080

Dieser Artikel wurde als Teil des veröffentlicht Data-Science-Blogathon.

Inhaltsverzeichnis

  1. Einleitung
  2. Konfidenzintervalle mit Z-Statistik
  3. Konfidenzintervalle interpretieren
  4. Annahmen für CI mit Z-Statistik
  5. Konfidenzintervalle mit t-Statistik
  6. Annahmen für KI unter Verwendung der t-Statistik
  7. Erstellen eines t-Intervalls mit gepaarten Daten
  8. z-Wert vs. t-Wert: wann was verwenden?
  9. Konfidenzintervalle mit Python
  10. Endnote

Einleitung

Wann immer wir ein statistisches Problem lösen, machen wir uns Sorgen um die Schätzung von Populationsparametern, aber meistens ist es nahezu unmöglich, Populationsparameter zu berechnen. Was wir stattdessen tun, ist, Zufallsstichproben aus der Grundgesamtheit zu nehmen und Stichprobenstatistiken zu berechnen, in der Erwartung, Grundgesamtheitsparameter anzunähern. Aber woher wissen wir, ob die Stichproben echte Repräsentanten der Bevölkerung sind oder wie stark diese Stichprobenstatistiken von Bevölkerungsparametern abweichen? Hier kommen Konfidenzintervalle ins Spiel. Also, was sind diese Intervalle? Das Konfidenzintervall ist ein Wertebereich, der über und unter der Stichprobenstatistik liegt, oder wir können es auch als die Wahrscheinlichkeit definieren, dass ein Wertebereich um die Stichprobenstatistik herum den wahren Populationsparameter enthält.

Konfidenzintervalle mit Z-Statistik

Bevor wir tiefer in das Thema eintauchen, wollen wir uns mit einigen statistischen Terminologien vertraut machen.

Bevölkerung: Es ist die Menge aller ähnlichen Individuen. Zum Beispiel die Bevölkerung einer Stadt, Studenten einer Hochschule usw.

Sample: Es handelt sich um eine kleine Gruppe ähnlicher Individuen, die aus der Bevölkerung gezogen werden. Ebenso ist eine Zufallsstichprobe eine zufällig aus der Grundgesamtheit gezogene Stichprobe.

Parameter: Mittelwert (mu), Standardabweichungen (sigma), Anteil (p) abgeleitet von der Grundgesamtheit.

Statistik: Mittelwert (x Balken), Standardabweichung (S), Proportionen (p^) bezogen auf Stichproben.

Z-Score: Dies ist der Abstand eines beliebigen Rohdatenpunkts auf einer Normalverteilung vom Mittelwert, normalisiert durch die Standardabweichung. Gegeben von: x-mu/sigma

Jetzt sind wir bereit, tief in das Konzept der Konfidenzintervalle einzutauchen. Aus irgendeinem Grund glaube ich, dass es viel besser ist, Konzepte durch zuordenbare Beispiele zu verstehen als durch grobe mathematische Definitionen. Also lasst uns anfangen.

Angenommen, Sie leben in einer Stadt mit 100,000 Einwohnern und eine Wahl steht vor der Tür. Als Meinungsforscher müssen Sie vorhersagen, wer die Wahl gewinnen wird, entweder die blaue oder die gelbe Partei. Sie sehen also, dass es fast unmöglich ist, Informationen von der gesamten Bevölkerung zu sammeln, also wählen Sie zufällig 100 Personen aus. Am Ende der Umfrage haben Sie festgestellt, dass 62 % der Menschen für Gelb stimmen werden. Nun stellt sich die Frage, ob wir zu dem Schluss kommen, dass Gelb mit einer Gewinnwahrscheinlichkeit von 62 % gewinnen wird oder dass 62 % der Gesamtbevölkerung für Gelb stimmen werden? Nun, die Antwort ist NEIN. Wir wissen nicht genau, wie weit unsere Schätzung vom wahren Parameter entfernt ist, wenn wir eine weitere Probe nehmen, könnte das Ergebnis 58 % oder 65 % betragen. Was wir also stattdessen tun, ist, eine Reihe von Werten um unsere Stichprobenstatistik herum zu finden, die höchstwahrscheinlich den wahren Bevölkerungsanteil erfassen. Hier bezieht sich der Anteil auf den Prozentsatz von

Konfidenzintervalle mit Python

                                                                   Bild gehört dem Autor

Wenn wir nun hundert solcher Stichproben nehmen und den Stichprobenanteil jeder Stichprobe grafisch darstellen, erhalten wir eine Normalverteilung der Stichprobenanteile, und der Mittelwert der Verteilung ist der ungefährste Wert des Populationsanteils. Und unsere Schätzung könnte irgendwo auf der Verteilungskurve liegen. Gemäß der 3-Sigma-Regel wissen wir, dass etwa 95 % der Zufallsvariablen innerhalb von 2 std Abweichungen vom Mittelwert der Verteilung liegen. Wir können also schließen, dass die Wahrscheinlichkeit, dass p^ liegt innerhalb von 2 std Abweichungen von p beträgt 95 %. Oder wir können auch sagen, dass die Wahrscheinlichkeit, dass p innerhalb von 2 Standardabweichungen unter und über p^ liegt, ebenfalls 95 % beträgt. Diese beiden Aussagen sind effektiv äquivalent. Diese beiden Punkte unter und über dem p^ sind unsere Konfidenzintervalle.

Konfidenzintervalle mit Python

                                                           Bild gehört dem Autor

Wenn wir das Sigma irgendwie finden können, können wir unser erforderliches Intervall berechnen. Aber Sigma ist hier der Populationsparameter und wir wissen, dass es oft fast unmöglich ist, ihn zu berechnen, also verwenden wir stattdessen Stichprobenstatistiken, dh Standardfehler. Dies wird als angegeben

wobei p^= Stichprobenanteil, n=Anzahl der Stichproben

SE =√(0.62 . 0.38/100) = 0.05

also 2xSE = 0.1

Das Konfidenzintervall für unsere Daten ist (0.62-0.1,0.62, 0.1+0.52,0.72) oder (2, 95). Da wir XNUMXxSE genommen haben, entspricht dies einem Konfidenzintervall von XNUMX %.

Nun stellt sich die Frage, was ist, wenn wir ein 92%-Konfidenzintervall erstellen wollen? Im vorherigen Beispiel haben wir 2 mit SE multipliziert, um ein 95-%-Konfidenzintervall zu konstruieren. Diese 2 ist der z-Wert für ein 95-%-Konfidenzintervall (der genaue Wert ist 1.96) und dieser Wert kann aus einer z-Tabelle gefunden werden. Der kritische Wert von z für ein Konfidenzintervall von 92 % ist 1.75. Beziehen auf fehlen uns die Worte. Artikel zum besseren Verständnis von z-score und z-table.

Das Intervall ist gegeben durch: (p^ + z*.SE , p^-z*.SE).

Wenn anstelle des Stichprobenanteils der Stichprobenmittelwert angegeben wird, wird der Standardfehler angegeben Sigma/sqrt(n). Hier Sigma ist die Populations-Standardabweichung, da wir sie oft nicht haben, verwenden wir stattdessen die Stichproben-Standardabweichung. Es wird jedoch häufig beobachtet, dass diese Art der Schätzung, bei der das Ergebnis als Mittelwert angegeben wird, tendenziell etwas verzerrt ist. In solchen Fällen ist es daher vorzuziehen, die t-Statistik anstelle der z-Statistik zu verwenden.

Die allgemeine Formel für ein Konfidenzintervall mit z-Statistik ist gegeben durch

Hier bezieht sich die Statistik entweder auf den Stichprobenmittelwert oder den Stichprobenanteil. Sigmas sind die Populationsstandardabweichung.

Konfidenzintervalle interpretieren

Es ist wirklich wichtig, Konfidenzintervalle richtig zu interpretieren. Betrachten Sie das vorherige Umfragebeispiel, in dem wir unser 95-%-Konfidenzintervall auf (0.52,0.62, 95) berechnet haben. Was bedeutet das? Nun, ein Konfidenzintervall von 95 % bedeutet, dass, wenn wir n Stichproben aus der Grundgesamtheit ziehen, das abgeleitete Intervall in 95 % der Fälle den wahren Anteil der Grundgesamtheit enthält. Denken Sie daran, dass ein Konfidenzintervall von 95 % nicht bedeutet, dass das Intervall mit einer Wahrscheinlichkeit von 90 % den wahren Bevölkerungsanteil enthält. Wenn wir beispielsweise für ein Konfidenzintervall von 10 % 9 Stichproben aus einer Grundgesamtheit ziehen, enthält das besagte Intervall 10 von XNUMX Mal den wahren Grundgesamtheitsparameter. Schauen Sie sich zum besseren Verständnis das folgende Bild an.

Interpretation des Konfidenzintervalls

                                                            Bild gehört dem Autor

Annahmen für Konfidenzintervalle unter Verwendung der Z-Statistik

Es gibt bestimmte Annahmen, nach denen wir suchen müssen, um ein gültiges Konfidenzintervall mit der Z-Statistik zu konstruieren.

  1. Zufallsstichprobe: Die Stichproben müssen zufällig sein. Es gibt verschiedene Stichprobenverfahren wie geschichtete Stichproben, einfache Zufallsstichproben, Cluster-Stichproben, um Zufallsstichproben zu erhalten.
  2. Normalbedingung: Die Daten müssen diese Bedingung np^>=10 und n.(1-p^)>=10 erfüllen. Das bedeutet im Wesentlichen, dass unsere Stichprobenverteilung der Stichprobenmittelwerte normal sein muss und nicht auf beiden Seiten verzerrt sein muss.
  3. Unabhängig: Die Stichproben müssen unabhängig sein. Die Anzahl der Proben muss kleiner oder gleich 10 % der Gesamtpopulation sein oder wenn die Probenahme mit Ersatz durchgeführt wird.

Konfidenzintervalle mit T-Statistik

Was ist, wenn die Stichprobengröße relativ klein ist und die Populationsstandardabweichung nicht angegeben ist oder nicht angenommen werden kann? Wie konstruieren wir ein Konfidenzintervall? Nun, hier kommt die t-Statistik ins Spiel. Die grundlegende Formel zum Ermitteln des Konfidenzintervalls bleibt hier dieselbe, nur dass z* durch t* ersetzt wird. Die allgemeine Formel ist gegeben durch

wobei S = Standardabweichung der Stichprobe, n = Anzahl der Stichproben

Angenommen, Sie haben eine Party veranstaltet und möchten den durchschnittlichen Bierkonsum Ihrer Gäste schätzen. Sie erhalten also eine Stichprobe von 20 Personen und messen den Bierkonsum. Die Probendaten sind symmetrisch mit einem Mittelwert von 0 ml und einer Standardabweichung von 1200 ml. Jetzt möchten Sie also ein 120-%-Konfidenzintervall konstruieren.

Wir haben also die Stichproben-Standardabweichung, die Anzahl der Stichproben und den Stichprobenmittelwert. Alles, was wir brauchen, ist t*. Also ist t* für ein 95%-Konfidenzintervall mit einem Freiheitsgrad von 19(n-1 = 20-1) 2.093. Unser erforderliches Intervall ist also nach der Berechnung (1256.16, 1143.83) mit einer Fehlerspanne von 56.16. Beziehen auf fehlen uns die Worte. Video, um zu wissen, wie man die t-Tabelle liest.

Annahmen für KI unter Verwendung der T-Statistik

Ähnlich wie bei der z-Statistik gibt es auch hier bei der t-Statistik einige Bedingungen, auf die wir bei gegebenen Daten achten müssen.

  1. Die Stichprobe muss zufällig sein
  2. Die Probe muss normal sein. Um normal zu sein, sollte die Stichprobengröße größer oder gleich 30 sein oder wenn der übergeordnete Datensatz, dh die Grundgesamtheit, ungefähr normal ist. Oder wenn die Stichprobengröße unter 30 liegt, muss die Verteilung ungefähr symmetrisch sein.
  3. Einzelbeobachtungen müssen unabhängig sein. Das heißt, es folgt die 10%-Regelung oder es erfolgt eine Bemusterung mit Ersatz.

Erstellen eines T-Intervalls für gepaarte Daten

Bisher haben wir nur Daten von einer Stichprobe verwendet. Jetzt werden wir sehen, wie wir ein t-Intervall für gepaarte Daten konstruieren können. Bei gepaarten Daten machen wir zwei Beobachtungen an derselben Person. Zum Beispiel der Vergleich von Vor- und Nachtestnoten von Studenten oder Daten zur Wirkung von Medikament und Placebo auf eine Personengruppe. Bei gepaarten Daten fanden wir den Unterschied zwischen den beiden Beobachtungen in der 3. Spalte. Wie üblich werden wir ein Beispiel durchgehen, um auch dieses Konzept zu verstehen,

F. Ein Lehrer hat versucht, die Auswirkung eines neuen Lehrplans auf das Testergebnis zu bewerten. Nachfolgend die Ergebnisse der Beobachtungen.

T-Intervall für gepaarte Daten

                                                      Bild gehört dem Autor

Da wir beabsichtigen, Intervalle für die mittlere Differenz zu finden, benötigen wir nur die Statistik für die Differenzen. Wir werden die gleiche Formel verwenden, die wir zuvor verwendet haben

Statistik +- (kritischer Wert oder t-Wert) (Standardabweichung der Statistik)

xd = Mittelwert der Differenz, Sd = Stichproben-Standardabweichung, für ein 95 %-KI mit einem Freiheitsgrad von 5 t* ergibt sich aus 2.57. Die Fehlerspanne = 0.97 und das Konfidenzintervall (4.18,6.13).

Dolmetschen: Aus den obigen Schätzungen geht hervor, dass das Konfidenzintervall keine Null- oder negativen Werte enthält. Wir können also schlussfolgern, dass sich der neue Lehrplan positiv auf die Testleistungen der Schüler ausgewirkt hat. Wenn es nur negative Werte hätte, könnten wir sagen, dass der Lehrplan einen negativen Einfluss hatte. Oder wenn es null enthielt, könnte die Möglichkeit bestehen, dass der Unterschied null oder keine Auswirkung des Lehrplans auf die Testergebnisse war.

Z-Wert vs. T-Wert

Am Anfang herrscht große Verwirrung darüber, wann man was verwendet. Als Faustregel gilt, wenn die Stichprobengröße >= 30 ist und die Populationsstandardabweichung bekanntermaßen Z-Statistiken verwendet. Falls die Stichprobengröße < 30 ist, verwenden Sie t-Statistiken. Im wirklichen Leben haben wir keine Populationsparameter, also gehen wir basierend auf der Stichprobengröße mit z oder t.

Bei kleineren Stichproben (n < 30) gilt das zentrale LImit-Theorem nicht, und es wird eine andere Verteilung namens Student's t-Verteilung verwendet. Die t-Verteilung ähnelt der Normalverteilung, nimmt jedoch je nach Stichprobenumfang unterschiedliche Formen an. Anstelle von z-Werten werden t-Werte verwendet, die für kleinere Proben größer sind, was eine größere Fehlerspanne erzeugt. Da eine kleine Stichprobengröße weniger genau ist.

Konfidenzintervalle mit Python

Python verfügt über eine riesige Bibliothek, die alle Arten von statistischen Berechnungen unterstützt, die unser Leben ein bisschen einfacher machen. In diesem Abschnitt werden wir uns die Daten zu den Schlafgewohnheiten von Kleinkindern ansehen. Die 20 Teilnehmer dieser Beobachtungen waren gesund, benahmen sich normal und hatten keine Schlafstörungen. Unser Ziel ist es, die Schlafenszeit von schlafenden und nicht schlafenden Kleinkindern zu analysieren.

Referenz: Akacem LD, Simpkin CT, Carskadon MA, Wright KP Jr., Jenni OG, Achermann P, et al. (2015) Das Timing der zirkadianen Uhr und des Schlafes unterscheiden sich zwischen schlafenden und nicht schlafenden Kleinkindern. PLoS ONE 10(4): e0125181. https://doi.org/10.1371/journal.pone.0125181

Wir werden Bibliotheken importieren, die wir benötigen

import numpy as np import pandas as pd from scipy.stats import t pd.set_option('display.max_columns', 30) # so einstellen, dass alle Spalten der DataFrame-Importmathematik angezeigt werden
df = pd.read_csv(nap_no_nap.csv) #Lesen von Daten
df.head ()
Konfidenzintervalle mit Python

Erstellen Sie zwei 95-%-Konfidenzintervalle für die durchschnittliche Schlafenszeit, eines für Kleinkinder, die ein Nickerchen machen, und eines für Kleinkinder, die es nicht tun. Zuerst werden wir die Spalte „Nachtschlafenszeit“ für diejenigen isolieren, die in einer neuen Variablen ein Nickerchen gemacht haben, und diejenigen, die in einer anderen neuen Variablen kein Nickerchen gemacht haben. Die Schlafenszeit ist hier dezimalisiert.

bedtime_nap = df['Nacht Schlafenszeit'].loc[df['Napping'] == 1] bedtime_no_nap = df['Nacht Schlafenszeit'].loc[df['Napping'] == 0]

print(len(schlafenszeit_nap))

print(len(Schlafenszeit_kein_Nickerchen))

Ausgang: 15 n 5


Jetzt finden wir die durchschnittliche Schlafenszeit des Beispiels für Nickerchen und kein Nickerchen.

nap_mean_bedtime = bedtime_nap.mean() #20.304 no_nap_mean_bedtime = bedtime_no_nap.mean() #19.59

Jetzt finden wir die Stichproben-Standardabweichung für XNickerchen und Xkein Nickerchen 

nap_s_bedtime = np.std(bedtime_nap,ddof=1) no_nap_s_bedtime = np.std(bedtime_no_nap,ddof=1)

Hinweis: Der ddof-Parameter wird für Sample Std Dev auf 1 gesetzt, andernfalls wird er zu Population Std Dev.

Jetzt finden wir den Beispiel-Standardfehler für XNickerchen und Xkein Nickerchen 

nap_se_mean_bedtime = nap_s_bedtime/math.sqrt(len(bedtime_nap)) #0.1526 no_nap_se_mean_bedtime = no_nap_s_bedtime/math.sqrt(len(bedtime_no_nap)) #0.2270

So weit, so gut, jetzt, da die Stichprobengröße klein ist und wir keine Standardabweichung des Bevölkerungsanteils haben, verwenden wir den t*-Wert. Eine Möglichkeit, den t*-Wert zu ermitteln, ist die Verwendung von scipy.stats t.ppf Funktion. Die Argumente für t.ppf() sind q = Prozentsatz, df = Freiheitsgrad, scale = std dev, loc = mean. Da die t-Verteilung für ein Konfidenzintervall von 95 % symmetrisch ist, beträgt q 0.975. Beziehen auf fehlen uns die Worte. für weitere Informationen zu t.ppf().

nap_t_star = t.ppf(0.975,df=14) #2.14 no_nap_t_star = t.ppf(0.975,df=5) #2.57

Jetzt werden wir die Teile hinzufügen, um schließlich unser Konfidenzintervall zu konstruieren.

nap_ci_plus = nap_mean_bedtime + nap_t_star*nap_se_bedtime

nap_ci_minus = nap_mean_bedtime – nap_t_star*nap_se_bedtime

print(nap_ci_minus,nap_ci_plus)

no_nap_ci_plus = no_nap_mean_bedtime + no_nap_t_star*nap_se_bedtime

no_nap_ci_minus = no_nap_mean_bedtime – no_nap_t_star*nap_se_bedtime

print(no_nap_ci_minus,no_nap_ci_plus)


Ausgabe: 19.976680775477412 20.631319224522585 18.95974084563192 20.220259154368087

Interpretation: 

Aus den obigen Ergebnissen schließen wir, dass wir uns zu 95 % sicher sind, dass die durchschnittliche Schlafenszeit für schlafende Kleinkinder zwischen 19.98 und 20.63 Uhr liegt, während sie für nicht schlafende Kleinkinder zwischen 18.96 und 20.22 Uhr liegt. Diese Ergebnisse entsprechen unserer Erwartung, dass Sie nachts lange schlafen werden, wenn Sie tagsüber ein Nickerchen machen.

Endnotes

Hier ging es also um einfache Konfidenzintervalle mit z- und t-Werten. Es ist in der Tat ein wichtiges Konzept, das man im Fall jeder statistischen Studie kennen sollte. Eine großartige inferenzstatistische Methode zur Schätzung von Populationsparametern aus Stichprobendaten. Konfidenzintervalle sind auch mit Hypothesentests verknüpft, dass Sie bei einem KI von 95 % 5 % Platz für Anomalien lassen. Wenn die Nullhypothese in das Konfidenzintervall fällt, ist der p-Wert groß und wir können Null nicht ablehnen. Umgekehrt, wenn es darüber hinausgeht, haben wir genügend Beweise, um Null zu verwerfen und alternative Hypothesen zu akzeptieren.

Ich hoffe, Ihnen hat der Artikel gefallen und ein frohes neues Jahr (:

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Quelle: https://www.analyticsvidhya.com/blog/2022/01/understanding-confidence-intervals-with-python/

Zeitstempel:

Mehr von Analytics-Vidhya