[Algorithmus x Python] Berechnung der Basisstatistik Teil 3 (Bereich, Varianz, Standardabweichung, Fluktuationskoeffizient)

Ich werde über Algorithmen und Python schreiben. Dieses Mal werde ich nicht nur schreiben, wie man eine einfache Berechnung mit einer Funktion findet, sondern auch, wie man sie findet, wenn die Funktion nicht verwendet wird.

Inhaltsverzeichnis

  1. Finden Sie den Bereich
  2. Finden Sie die Varianz 1-0. Finden Sie die Populationsvarianz 1-1. Finden Sie eine unvoreingenommene Dispersion
  3. Ermitteln Sie die Standardabweichung 2-0. Finden Sie die Populationsstandardabweichung 2-1. Finden Sie die unverzerrte Standardabweichung
  4. Ermitteln Sie den Schwankungskoeffizienten Schließlich

0. Finden Sie den Bereich

◯ Der Bereich ist die einfachste ** Größe, die die Datenverteilung ** darstellt. Maximalwert - Der Minimalwert kann leicht berechnet werden. Wenn jedoch ** Extremwerte in den Daten enthalten sind **, ist der Bereich möglicherweise zu groß, um die Daten zu charakterisieren. (Distribution löst dieses Problem)

So finden Sie den Bereich anhand der Maximal- und Minimalwerte

◯ Betrachten Sie den Bereich anhand der Daten des Mathe-Tests einer Klasse von 30 Personen.

test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]
#Finden Sie die Maximal- und Minimalwerte
max_score = max(test_score)
min_score = min(test_score)
#Finden Sie den Bereich
score_range = max_score-min_score

print('max_score = ',max_score)
print('min_score = ',min_score)
print('score_range = ',score_range)
max_score =  97
min_score =  9
score_range =  88

1. Finden Sie die Varianz

◯ Die Verteilung wird als ** Statistik verwendet, die die Datenvariation zeigt **. Die Varianz reagiert nicht so empfindlich auf Extremwerte wie der Bereich, da der Beitrag eines Elements gering ist. Da es jedoch im Berechnungsprozess quadriert wird, unterscheidet sich die Einheit von den Originaldaten **. (Die Standardabweichung löst dieses Problem)

◯ Wenn Sie die Variation bestimmter Daten wissen möchten, ** ist die Varianz der Population ** erforderlich, ** das ist die beste **. Es gibt jedoch viele Fälle, in denen es nicht möglich ist, alle Elemente der Bevölkerung zu erfassen, und ** eine Streuung der Bevölkerung nicht direkt erforderlich ist **. In solchen Fällen wird eine unvoreingenommene Dispersion verwendet.

Arten der Verteilung Anwendungszweck Charakteristisch
Mutter Streuung Finden Sie die Varianz der Bevölkerung Nur wenn Sie alle Elemente der Bevölkerung kennenVerfügbar
Probendispersion Finden Sie die Varianz der Probe Keine Schätzung der Populationsvarianz
Unvoreingenommene Dispersion Schätzen Sie die Populationsvarianz anhand von Proben Werden Sie eine Schätzung der Populationsvarianz

Warum die Varianz quadrieren?


Formel zum Ermitteln der Populationsvarianz

S^2 = \frac{1}{n} [(x_1-\bar{x})^2 +(x_2-\bar{x})^2 +...(x_n-\bar{x})^2 ] = \frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2 

Gleichung für unverzerrte Dispersion

U^2 = \frac{1}{m-1}\sum_{i=1}^{m}(x_i-\bar{x})^2 = \frac{m}{m-1}s^2


◯ Der Grund, warum ** der Freiheitsgrad der unverzerrten Dispersion m-1 ist, obwohl die Größe der Probe m ** ist, ist, dass die m beobachteten Werte in der Formel zur Berechnung der unverzerrten Dispersion nicht vollständig unabhängig voneinander sind * * Eine der Beobachtungen ergibt sich aus den anderen unabhängigen m-1-Beobachtungen und dem Stichprobenmittelwert **.

◯ Mathematische Erklärung, dass der Freiheitsgrad m-1 ist Beziehung zwischen Stichprobenverteilung und unvoreingenommener Verteilung

◯ Beim Vergleich der Gleichungen für Nennerdispersion und unverzerrte Dispersion kann es seltsam erscheinen, dass sich nur der Nenner auf diese Weise unterscheidet. In der Grenze, in der ** die Größe n der Population ziemlich groß ist ** und ** die Größe m der Stichprobe so groß wie n ** ist, entspricht die unverzerrte Dispersion fast der Populationsdispersion ** Es hat sich als gute Schätzung der Populationsvarianz erwiesen **.


1-0. Finden Sie die Populationsvarianz

◯ Populationsvarianz ist die Varianz der Bevölkerung. Es wird verwendet, wenn alle Elemente der Bevölkerung bekannt sind.

◯ Die Populationsvarianz ist die Summe der Quadrate der Abweichungen (Abweichungen) vom Durchschnitt jeder Daten und geteilt durch die Anzahl der Daten. Mit anderen Worten: ** Je mehr Elemente der Daten vom Durchschnitt abweichen, desto größer ist die Populationsvarianz **.


So ermitteln Sie die Populationsvarianz mithilfe der Funktion pvariance ()

◯ Berechnen Sie die Populationsvarianz anhand der Score-Daten einer bestimmten Klasse von Mathematiktests als Population. Mit anderen Worten, finden Sie den Grad der Variation in den Bewertungen dieser Testklasse.

import statistics
#Liste der Testergebnisse
test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]

population_variance = statistics.pvariance(test_score)
print('population_variance =',population_variance)
population_variance = 638.6455555555556

So ermitteln Sie die Populationsvarianz mithilfe der Abweichung

Formel zum Ermitteln der Populationsvarianz

S^2 = \frac{1}{n} [(x_1-\bar{x})^2 +(x_2-\bar{x})^2 +...(x_n-\bar{x})^2 ] = \frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2 

◯ ** (Datenwert) - (Durchschnittswert) ** heißt ** Abweichung (= Abweichung) **. In der obigen Formel wird die Abweichung berechnet, das Quadrat der Abweichung summiert und durch die Anzahl der Elemente geteilt.

import statistics

test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]
#Suchen Sie die Anzahl der Elemente in der Liste
n = len(test_score)
#Finden Sie die durchschnittliche Punktzahl des Tests
score_mean  = statistics.mean(test_score)
#Erstellen Sie eine Liste der Abweichungsquadrate
squared_deviation_list = [(score-score_mean)**2 for score in test_score]
#Mutter Streuung= squared_deviation_Summe der Liste/Elementanzahl
population_variance = sum(squared_deviation_list)/n

print('population_variance = ',population_variance)
population_variance =  638.6455555555556

So ermitteln Sie die Populationsvarianz anhand des Durchschnitts

◯ Die Bevölkerungsverteilung kann in die folgenden Formen umgewandelt werden. Wir werden dies verwenden, um die Populationsvarianz zu ermitteln.

S^2 = \frac{1}{n} (x_1^2+x_2^2+...+x_n^2)-\bar{x}^2 = \frac{1}{n}\sum_{i=1}^{n}x_i^2-\bar{x}^2 

① Finden Sie die Anzahl der Elemente ② Finden Sie den Durchschnittswert ③ Quadrieren Sie die Elemente und listen Sie sie auf ④ Ermitteln Sie die Summe der Liste der quadratischen Elemente und dividieren Sie diese durch die Anzahl der Elemente ⑤ Subtrahieren Sie das Quadrat des Durchschnittswerts davon

#Liste der Testergebnisse
import statistics

test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]
#Finden Sie die Anzahl der Elemente
n = len(test_score)
#Finden Sie den Durchschnittswert des Tests
score_mean = statistics.mean(test_score)
#Quadrieren Sie jedes Element der Liste
squared_test_score = [score**2 for score in test_score]
#"Die Summe der Quadrate jedes Elements geteilt durch die Anzahl der Elemente"-"Quadrat des durchschnittlichen Testwerts"
population_variance = sum(squared_test_score)/n - (score_mean)**2
print('score_mean = ',score_mean)
print('population_variance = ',population_variance)
score_mean =  51.766666666666666
population_variance =  638.6455555555558

1-1. Finden Sie eine unvoreingenommene Dispersion

◯ Die unvoreingenommene Varianz wird verwendet, wenn die Varianz der Population aus einer Stichprobe geschätzt wird. Dies ist eine bequeme Berechnung, mit der Sie die Natur der Bevölkerung erfassen können, ohne alle Elemente der Bevölkerung erfassen zu müssen.

Gleichung für unverzerrte Dispersion

U^2 = \frac{1}{m-1}\sum_{i=1}^{m}(x_i-\bar{x})^2 = \frac{m}{m-1}s^2

So finden Sie eine unverzerrte Varianz mithilfe der Funktion Varianz ()

import statistics

#Stichprobe der Testergebnisse(Stichprobe)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Unvoreingenommene Dispersion(=unbiased_distribution), Probentest_score_Aus der Probe entnehmen
unbiased_distribution = statistics.variance(test_score_sample)
print('unbiased_distribution =',unbiased_distribution)
unbiased_distribution = 434.2

So finden Sie eine unverzerrte Varianz mit der Funktion pvariance ()

◯ Es kann nur verwendet werden, wenn der Durchschnitt der Bevölkerung bekannt ist.

◯ Wenn Sie den Durchschnitt der Population nicht kennen, können Sie diese Funktion mit Stichprobendaten ausführen, um eine Stichprobenvarianz mit n Freiheitsgraden zu erhalten. Das heißt, es ist keine unvoreingenommene Schätzung der Populationsvarianz.

import statistics

#Bevölkerungsdurchschnitt
score_mean = 51.766666666666666

#Stichprobe der Testergebnisse(Stichprobe)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Unvoreingenommene Dispersion(=unbiased_distribution), Probentest_score_Aus der Probe entnehmen
#Der Durchschnitt der Bevölkerung wird durch das zweite Argument angegeben
unbiased_distribution = statistics.pvariance(test_score_sample,score_mean)
print('unbiased_distribution =',unbiased_distribution)
unbiased_distribution = 412.49

So finden Sie eine unverzerrte Streuung mithilfe von Abweichungen

◯ Teilen Sie die Summe der Quadrate der Abweichungen durch die Stichprobengröße -1, wie in der folgenden Formel gezeigt, um die unverzerrte Dispersion zu erhalten.

Gleichung für unverzerrte Dispersion

u^2 = \frac{1}{m-1}\sum_{i=1}^{m}(x_i-\bar{x})^2 = \frac{m}{m-1}s^2

① Finden Sie die Stichprobengröße ② Ermitteln Sie den Durchschnittswert, um die Abweichung zu ermitteln ③ Erstellen Sie eine Liste mit ** Abweichung im Quadrat ** als Element ④ Teilen Sie die Summe dieser Liste durch m-1 (= Stichprobengröße-1)

import statistics

#Stichprobe der Testergebnisse(Stichprobe)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Finden Sie die Stichprobengröße
m = len(test_score_sample)
#Finden Sie den Durchschnitt der Proben, um die Abweichung zu finden
score_mean = statistics.mean(test_score_sample)
#Abweichung(=score-score_mean)Machen Sie eine Liste der Quadrate von
squared_deviation_list = [(score-score_mean)**2 for score in test_score_sample]

#Mutter Streuung= squared_deviation_Summe der Liste/Stichprobengröße-1
unbiased_distribution = sum(squared_deviation_list)/m-1

print('unbiased_distribution = ',unbiased_distribution)
unbiased_distribution =  411.49000000000007

2. Ermitteln Sie die Standardabweichung

◯ Die Standardabweichung umfasst die Populationsstandardabweichung und die unverzerrte Standardabweichung.

◯ Die Populationsstandardabweichung ist die Quadratwurzel der Populationsvarianz und richtet die Einheit an den Daten aus, um das Verständnis der Datenverteilung zu erleichtern.

◯ Die unverzerrte Standardabweichung ist eine unverzerrte Schätzung der Populationsstandardabweichung.

2-0. Finden Sie die Populationsstandardabweichung

◯ Die Populationsstandardabweichung ist die Quadratwurzel der Populationsvarianz.

Suchen Sie mit der Funktion pstdev ()

import statistics

#Prüfungsergebnis(Population)
test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]

population_standard_deviation = statistics.pstdev(test_score)
print('population_standard_deviation =',population_standard_deviation)
population_standard_deviation = 25.27143754430198

Finden Sie mit Populationsvarianz

◯ Die Quadratwurzel der Populationsvarianz ist die Populationsstandardabweichung. Verwenden Sie diese.

(1) Ermitteln Sie die Populationsvarianz mit der Funktion pvariance () ② Ziehen Sie die Quadratwurzel der Populationsvarianz

import statistics
import sympy

test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]
#Suche nach Bevölkerungsstreuung
population_variance = statistics.pvariance(test_score)
#Nehmen Sie die Quadratwurzel der Populationsvarianz
#root(Der Inhalt der Route,~Wurzel)
population_standard_deviation = sympy.root(population_variance,2)

print('population_variance = ',population_variance)
print('population_standard_deviation = ',population_standard_deviation)
population_variance =  638.6455555555556
population_standard_deviation =  25.2714375443020

Berechnet anhand des quadratischen Durchschnitts der Abweichungen

◯ Die Populationsstandardabweichung entspricht ** dem quadratischen Durchschnitt der Abweichung **.

⓪ Ermitteln Sie den Durchschnittswert der Daten, um die Abweichung zu ermitteln ① Erstellen Sie eine Liste mit ** Abweichung ** als Element. (2) Erstellen Sie eine Liste mit ** Abweichung im Quadrat ** als Element. (Quadrat jedes Elements) ③ Finden Sie den Durchschnittswert dieser Liste. ④ Nehmen Sie die Quadratwurzel des Durchschnittswerts

◯ Der quadratische Durchschnitt wird berechnet, indem die Werte, die Sie im Quadrat mitteln möchten, multipliziert, summiert und durch die Anzahl der Elemente n durch die Quadratwurzel ** dividiert werden. Es wird verwendet, wenn Sie die Differenz von der Ankunftszeit in Bezug auf den Zeitplan des Transports berechnen möchten.

◯ Es gibt keinen Unterschied in der Zeitverzögerung zwischen 2 Minuten Verspätung und 2 Minuten Verspätung. Es gleicht jedoch den ** Fehler ** mit der ** mathematischen Mittelung ** mit Plus oder Minus aus. Also, ** Quadrat, um das Minus zu eliminieren und ** zu berechnen.


import sympy
import statistics

#Testergebnisdaten(Population)
test_score = [42, 66, 39, 27, 9, 97, 48, 13, 39, 63, 78, 93, 91, 86, 69, 56, 39, 23, 11, 48, 34, 56, 73, 89, 68, 24, 22, 61, 49, 40]
#Finden Sie den Mittelwert der Bevölkerung, um die Abweichung zu finden
score_mean = statistics.mean(test_score)

#Abweichung(Unterschied zwischen Punktzahl und Durchschnitt)Machen Sie eine Liste von und finden Sie den quadratischen Durchschnitt für diese Liste
deviation_list = [score-score_mean for score in test_score]

#Quadrierte jedes Element der Liste in eine neue Liste im Quadrat_test_Machen Sie eine Punktzahl
squared_deviation_list = [i**2 for i in deviation_list]
#squared_deviation_Finden Sie den Durchschnittswert der Liste(Summe/Stichprobengröße)
mean_square = sum(squared_deviation_list)/len(squared_deviation_list)
#mean_Nimm die Quadratwurzel des Quadrats
root_mean_square = sympy.root(mean_square,2)

print('RMS = population standard deviation = ',root_mean_square)
#Quadratischer Mittelwert der Abweichung=Mutter Standardabweichung= 25.2714375443020
RMS = population standard deviation = 25.2714375443020

2-1. Finden Sie die unverzerrte Standardabweichung

◯ ** Es handelt sich um eine unvoreingenommene Schätzung der Populationsstandardabweichung **.

◯ Außerdem ist die unverzerrte Standardabweichung nicht die Quadratwurzel der unverzerrten Dispersion selbst, sondern die ** korrigierte Quadratwurzel der unverzerrten Dispersion **.

◯ Da die unverzerrte Varianz eine unverzerrte Schätzung der Populationsvarianz ist, ist die Quadratwurzel der unverzerrten Varianz die unverzerrte Standardabweichung, und es wird oft angenommen, dass es sich um die unverzerrte Schätzung der Populationsstandardabweichung handelt. Die Quadratwurzel der ** unverzerrten Dispersion ist jedoch keine unverzerrte Standardabweichung. ** **.

Die unverzerrte Standardabweichung Us als unverzerrte Schätzung der Populationsstandardabweichung ist die Quadratwurzel der unverzerrten Varianz U ^ 2 geteilt durch den Koeffizienten C4.

U^2 = \frac{1}{m-1}\sum_{i=1}^{m}(x_i-\bar{x})^2 = \frac{m}{m-1}s^2
C_4 = \frac{\sqrt{\frac{2}{n-1}} \Gamma(\frac{2}{n})}{\Gamma(\frac{n-1}{2})}

Unvoreingenommene Standardabweichungsformel

U_s = \frac{\sqrt{U^2}}{C_4}

Aufblaskoeffizient und Abzinsungskoeffizient: unverzerrte Standardabweichung und Kontrolldiagrammkoeffizient Ist die Quadratwurzel der unverzerrten Dispersion eine unverzerrte Schätzung der Standardabweichung Was ist eine unvoreingenommene Standardabweichung? : Für diejenigen, die statistische Tests nicht verstehen

Ermitteln Sie die unverzerrte Standardabweichung mit der Funktion stdev ()

import statistics

#Stichprobe der Testergebnisse(Stichprobe)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

unbiased_standard_deviation = statistics.stdev(test_score_sample)
print('unbiased_standard_deviation = ',unbiased_standard_deviation)
unbiased_standard_deviation =  20.837466256721328

3. Ermitteln Sie den Schwankungskoeffizienten

◯ Der Schwankungskoeffizient ist der Wert, der durch Teilen der Standardabweichung durch den Durchschnittswert erhalten wird.

◯ Es handelt sich um einen numerischen Wert, für den keine Einheit (= dimensionslos) verwendet wird, wenn die Variation von Daten mit verschiedenen Einheiten und die Beziehung zwischen Daten und Variation in Bezug auf den Durchschnittswert relativ bewertet wird. Fluktuationsfaktoren können im Lebenslauf ausgedrückt werden.

Formel zur Berechnung des Variationskoeffizienten

CV = \frac{S}{\bar{x}}

So ermitteln Sie den Fluktuationskoeffizienten anhand der Populationsstandardabweichung und des Durchschnittswerts

import statistics

#Die Daten wurden jeweils 10-mal für Menschen und Mäuse gemessen
#Die Einheit ist kg
human_data = [75,77,75,76,78,76,75,76,77,75]
mouse_data = [0.04,0.05,0.02,0.03,0.02,0.03,0.05,0.06,0.07,0.03]

#pstdev()Verwenden Sie eine Funktion, um jede Populationsstandardabweichung zu ermitteln
human_pstdev = statistics.pstdev(human_data)
mouse_pstdev = statistics.pstdev(mouse_data)

#mean()Berechnen Sie den Durchschnittswert von jedem mit einer Funktion
human_mean = statistics.mean(human_data)
mouse_mean = statistics.mean(mouse_data)

#Finden Sie den Schwankungskoeffizienten
#Finden Sie das Verhältnis zwischen der Populationsstandardabweichung und dem Mittelwert
human_cv = human_pstdev/adult_mean
mouse_cv = mouse_pstdev/mouse_mean

print('human_pstdev = ',human_pstdev)
print('mouse_pstdev = ',mouse_pstdev)
print('human_cv = ',human_cv)
print('mouse_cv = ',mouse_cv)
#Die Standardabweichung der Mutter ist beim Menschen größer(Der numerische Wert, der die Variation darstellt, ist groß)
#Repräsentiert die Variation in kg
human_pstdev =  1.0
mouse_pstdev =  0.0161245154965971

#Der Fluktuationskoeffizient ist bei Mäusen größer(Große Variation)
human_cv =  0.013106159895150722
mouse_cv =  0.40311288741492746

Schließlich

Danke fürs Lesen. Wir würden uns freuen, wenn Sie auf Fehler oder Verbesserungen hinweisen könnten. Ich freue mich darauf, mit Dir zu arbeiten.

Recommended Posts

[Algorithmus x Python] Berechnung der Basisstatistik Teil 3 (Bereich, Varianz, Standardabweichung, Fluktuationskoeffizient)
[Algorithmus x Python] Berechnung der Basisstatistik Teil2 (Mittelwert, Median, am häufigsten)
[Statistik für Programmierer] Dispersion, Standardabweichung und Fluktuationskoeffizient
[Algorithmus x Python] Berechnung der Basisstatistik (Gesamtwert, Maximalwert, Minimalwert)
Berechnung der Standardabweichung und des Korrelationskoeffizienten in Python
Python x GIS-Grundlagen (3)
Grundlagen von Python x GIS (Teil 2)
Statistiken bis zur Streuung und Standardabweichung
[Python] Berechnung des Kappa (k) -Koeffizienten
[Python] Berechnung der Bildähnlichkeit (Würfelkoeffizient)
1. Mit Python 1-3 gelernte Statistiken. Berechnung verschiedener Statistiken (Statistiken)
1. Mit Python 1-2 gelernte Statistiken. Berechnung verschiedener Statistiken (Numpy)
Berechnen Sie den Mittelwert, den Median, die häufigste Varianz und die Standardabweichung in Python