Dieses Mal möchte ich die Schätzung von letztes Mal fortsetzen. Beim letzten Mal haben wir die Punkte geschätzt. Schauen Sie also bitte vorbei, wenn Sie interessiert sind.
Auch diesmal habe ich versucht, das Intervall mithilfe des Pokemon-Datensatzes zu schätzen. Die Daten sind wie folgt. Auch dieses Mal möchte ich die HP-Daten dieser Daten als Grundgesamtheit verwenden, um den Abschnitt zu schätzen.
Zunächst möchte ich den Durchschnitt und die Streuung von HP ermitteln.
score = np.array(df['HP'])
mean = np.mean(score)
var = np.var(score)
print("HP Durchschnitt: {} ,Verteilt: {} ".format(mean , var))
HP-Durchschnitt: 69,25875, Dispersion: 651,2042984374999 Ich möchte diese als Bevölkerungsdurchschnitt und Bevölkerungsvarianz analysieren.
Betrachten wir diesmal den Fall, in dem die zuvor genannten HP-Daten als Population verwendet werden und die Populationsvarianz ebenfalls bekannt ist, vorausgesetzt, sie folgt einer Normalverteilung.
Da wir eine Normalverteilung für die Population annehmen, folgt der Stichprobenmittelwert $ \ bar {X} $ $ N (μ, σ ^ 2 / n) $. Mit anderen Worten, der geschätzte Wert des Stichprobenmittelwerts variiert mit der Standardabweichung $ \ sqrt {σ ^ 2 / n} $, obwohl der erwartete Wert der Populationsmittelwert μ ist. Die Standardabweichung einer solchen Schätzung wird als "Standardfehler" bezeichnet.
Da der Stichprobenmittelwert $ \ bar {X} $ $ N (μ, σ ^ 2 / n) $ folgt, ist $ Z = (\ bar {X} -μ) / \ sqrt {σ ^ 2 / n} Es kann mit $ standardisiert werden und Z folgt einer Standardnormalverteilung. Das Gute an dieser Standardisierung ist das Vertrauensintervall Dies bedeutet, dass die Berechnung einfacher ist.
Berechnen Sie zunächst den Populationsmittelwert / Populationsvarianz und den Stichprobenmittelwert / Stichprobenvarianz der Stichprobendaten. Die Stichprobengröße dieser Stichprobe beträgt 20.
np.random.seed(0)
n = 20
sample = np.random.choice(score , n)
p_mean = np.mean(score)
p_var = np.var(score)
s_mean = np.mean(sample)
s_var = np.var(sample , ddof = 1)
Bevölkerungsdurchschnitt: 69.25875, Bevölkerungsverteilung: 651.2042984374999 Stichprobenmittelwert: 68,8, Stichprobenvarianz (unverzerrte Varianz): 451,26000000000005
Dieses Mal möchte ich diesen Stichprobenmittelwert verwenden, um das Konfidenzintervall des Populationsmittelwerts zu berechnen. (Angenommen, Sie kennen die Populationsvarianz.)
Erwägen Sie, ein 95% -Konfidenzintervall vom Stichprobenmittelwert zum Populationsmittelwert zu finden. Erstens ergibt die Standardisierung des Stichprobenmittelwerts $ \ bar {X} $ $ Z = (\ bar {X} -μ) / \ sqrt {σ ^ 2 / n} $. Betrachten wir zunächst das 95% -Konfidenzintervall von $ Z $.
Dann
Um das 95% -Konfidenzintervall zu finden, wenn die Populationsvarianz bekannt ist,
Ich habe versucht, es umzusetzen.
rv = stats.norm()
#rv.isf(0.025)Hat eine Standardnormalverteilungswahrscheinlichkeit von 0.Es repräsentiert den Punkt 025. Multiplizieren Sie es mit dem Standardfehler.
lcl = s_mean - rv.isf(0.025) * np.sqrt(p_var/n)
ucl = s_mean - rv.isf(0.975) * np.sqrt(p_var/n)
lcl , ucl
(57.616, 79.984)
Aus dem Obigen wurde festgestellt, dass das 95% -Konfidenzintervall des Bevölkerungsdurchschnitts (57,616, 79,984) beträgt. Da der früher ermittelte Bevölkerungsdurchschnitt 69,25875 betrug, können wir sehen, dass der Bevölkerungsdurchschnitt im Konfidenzintervall enthalten ist.
Dieses Konfidenzintervall wird viele Male auf die gleiche Weise abgetastet, und wenn eine Intervallschätzung durchgeführt wird, enthalten 95% der Intervallschätzung den Populationsmittelwert. In einer gekauten Form wird, wenn das Intervall 100-mal geschätzt wird, das Konfidenzintervall einschließlich des Bevölkerungsdurchschnitts 95-mal erhalten, aber das 5-mal erhaltene Konfidenzintervall enthält nicht den Bevölkerungsdurchschnitt. ..
Wir werden das Intervall der Populationsvarianz schätzen. Betrachten wir den Fall, in dem eine Normalverteilung für die Bevölkerung angenommen wird und der Bevölkerungsdurchschnitt nicht bekannt ist.
So wie wir bei der Berechnung des Konfidenzintervalls des Populationsmittelwerts standardisiert und in eine Wahrscheinlichkeitsvariable konvertiert haben, die der Standardnormalverteilung folgt, haben wir auch eine gewisse Konvertierung in die unverzerrte Varianz $ s ^ 2 $ durchgeführt, um eine Wahrscheinlichkeitsvariable zu erstellen, die einer typischen Wahrscheinlichkeitsverteilung folgt. müssen es tun. Die zu diesem Zeitpunkt verwendete Wahrscheinlichkeitsverteilung ist die Chi-Quadrat-Verteilung. Es ist bekannt, dass diese Variable Y einer Chi-Quadrat-Verteilung mit n-1 Freiheitsgraden folgt, indem die unverzerrte Varianz $ s ^ 2 $ in $ Y = (n-1) s ^ 2 / σ ^ 2 $ umgewandelt wird. Ich werde.
Nun möchte ich das Konfidenzintervall der Populationsvarianz ermitteln. Ermitteln Sie zunächst das 95% -Konfidenzintervall für $ \ chi {} ^ 2 (n-1) $.
Da wir dieses Mal das Konfidenzintervall der Populationsvarianz ermitteln möchten, stellen Sie sicher, dass $ σ ^ 2 $ in der Mitte liegt.
Daraus ergibt sich das 95% -Konfidenzintervall der Populationsvarianz $ σ ^ 2 $
Wird sein.
rv = stats.chi2(df=n-1)
lcl = (n-1) * s_var / rv.isf(0.025)
hcl = (n-1) * s_var / rv.isf(0.975)
lcl , hcl
(260.984, 962.659)
Das Konfidenzintervall für die Populationsvarianz beträgt (260,984, 962,659). Da die Populationsvarianz 651,204 betrug, ist ersichtlich, dass sie im Intervall enthalten ist.
Ich fuhr mit der Analyse in der Situation fort, in der die Populationsvarianz bei der Berechnung des Konfidenzintervalls des Populationsdurchschnitts bekannt war. Es gibt jedoch nicht viele Situationen, in denen der Bevölkerungsdurchschnitt nicht tatsächlich bekannt ist und die Populationsvarianz bekannt ist. Daher möchte ich dieses Mal das Konfidenzintervall des Bevölkerungsdurchschnitts schätzen, wenn die Populationsvarianz unbekannt ist.
Wenn die Populationsvarianz bekannt war, wurde das Intervall durch den Standardfehler $ \ sqrt {σ ^ 2 / n} $ des Stichprobenmittelwerts $ \ bar {X} $ geschätzt. Da wir diese Populationsvarianz $ σ ^ 2 $ dieses Mal nicht kennen, werden wir $ \ sqrt {s ^ 2 / n} $ ersetzen, wobei die geschätzte unverzerrte Varianz $ s ^ 2 $ als Standardfehler verwendet wird. ..
Transformieren Sie zunächst den Stichprobenmittelwert $ \ bar {X} $ mit $ \ sqrt {s ^ 2 / n} $, genau wie Sie es tun würden, wenn Sie die Populationsvarianz kennen.
Das ist $ t $
Wenn Sie mit diesen beiden konvertieren,
Es kann dargestellt werden durch. Daher ist ersichtlich, dass dieses $ t $ einer t-Verteilung mit n-1 Freiheitsgraden folgt.
Nun, da $ t = (\ bar {X} --μ) / \ sqrt {s ^ 2 / n} $ einer t-Verteilung mit n-1 Freiheitsgraden folgt, bedeutet das 95% -Konfidenzintervall der Bevölkerung Ich werde fragen.
Transformieren Sie diese Gleichung so, dass der Populationsmittelwert μ in der Mitte liegt.
Infolgedessen beträgt das 95% -Konfidenzintervall des Bevölkerungsdurchschnitts
Es wird sein.
rv = stats.t(df=n-1)
lcl = s_mean - rv.isf(0.025) * np.sqrt(s_var/n)
ucl = s_mean - rv.isf(0.975) * np.sqrt(s_var/n)
lcl , ucl
(58.858, 78.742)
Das 95% -Konfidenzintervall für den Bevölkerungsdurchschnitt betrug (57,616, 79,984). Da der früher ermittelte Bevölkerungsdurchschnitt 69,25875 betrug, können wir sehen, dass der Bevölkerungsdurchschnitt im Konfidenzintervall enthalten ist.
Diesmal habe ich versucht, den Abschnitt zu schätzen. Ich dachte, dass es schön wäre, Ihre Hände zu bewegen und auszugeben, weil Sie Ihr Verständnis vertiefen können, indem Sie tatsächlich Ihre Hände bewegen und es implementieren!
Referenzmaterial
Grundlagen der statistischen Analyse, verstanden von Python
Recommended Posts