[Algorithme x Python] Calcul des statistiques de base Partie3 (plage, variance, écart type, coefficient de fluctuation)

J'écrirai sur les algorithmes et Python. Cette fois, j'écrirai non seulement comment trouver un calcul simple à l'aide d'une fonction, mais aussi comment le trouver lorsque la fonction n'est pas utilisée.

table des matières

  1. Trouvez la plage
  2. Trouvez la variance 1-0. Trouver la variance de la population 1-1. Trouver une dispersion non biaisée
  3. Trouvez l'écart type 2-0. Trouvez l'écart type de la population 2-1. Trouvez l'écart-type non biaisé
  4. Trouvez le coefficient de fluctuation finalement

0. Trouvez la plage

◯ La plage est la quantité ** la plus simple qui représente la répartition des données **. Valeur maximale-La valeur minimale peut être facilement calculée. Cependant, si ** des valeurs extrêmes sont incluses dans les données **, la plage peut être trop large pour caractériser les données. (La distribution résout ce problème)

Comment trouver la plage à l'aide des valeurs maximale et minimale

◯ Considérez la plage en utilisant les données du test de mathématiques d'une classe de 30 personnes.

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]
#Trouvez les valeurs maximales et minimales
max_score = max(test_score)
min_score = min(test_score)
#Trouvez la gamme
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. Trouvez la variance

◯ La distribution est utilisée comme ** statistiques montrant la variation des données **. La variance n'est pas aussi sensible aux valeurs extrêmes que la plage, car la contribution d'un élément est faible. Cependant, comme elle est au carré dans le processus de calcul, l'unité est différente des données d'origine **. (L'écart type résout ce problème)

◯ Si vous voulez connaître la variation d'une certaine donnée, ** la variance de la population ** est requise, ** c'est le meilleur **. Cependant, il existe de nombreux cas où il n'est pas possible de saisir tous les éléments de la population et ** la dispersion de la population n'est pas directement requise **. Une dispersion impartiale est utilisée dans de tels cas.

Types de distribution Utilisation conforme Fonctionnalité
Dispersion mère Trouvez la variance de la population Seulement si vous connaissez tous les éléments de la populationDisponible
Dispersion des échantillons Trouvez la variance de l'échantillon Pas une estimation de la variance de la population
Dispersion impartiale Estimer la variance de la population à partir des spécimens Devenir une estimation de la variance de la population

Pourquoi mettre au carré la variance?


Formule pour trouver la variance de la population

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 

Équation de dispersion non biaisée

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


◯ La raison pour laquelle ** le degré de liberté de dispersion sans biais est m-1 même si la taille de l'échantillon est m ** est que les m valeurs observées dans la formule de calcul de la dispersion sans biais ne sont pas complètement indépendantes les unes des autres * * L'une des observations est obtenue à partir des autres observations indépendantes m-1 et de la moyenne de l'échantillon **.

◯ Explication mathématique que le degré de liberté est m-1 Relation entre la distribution de l'échantillon et la distribution impartiale

◯ En comparant les équations pour la dispersion du dénominateur et la dispersion sans biais, il peut sembler étrange que seul le dénominateur soit différent de cette manière. Cependant, dans la limite où ** la taille n de la population est assez grande ** et ** la taille m de l'échantillon est aussi grande que n **, la dispersion sans biais correspond presque à la dispersion de la population, ** Il a été prouvé qu'il s'agissait d'une bonne estimation de la variance de la population **.


1-0. Trouver la variance de la population

◯ La variance de la population est la variance de la population. Il est utilisé lorsque tous les éléments de la population sont connus.

◯ La variance de la population est la somme des carrés des écarts (écarts) par rapport à la moyenne de chaque donnée et divisée par le nombre de données. En d'autres termes, ** plus les éléments des données s'écartent de la moyenne, plus la variance de la population est grande **.


Comment trouver la variance de la population à l'aide de la fonction pvariance ()

◯ Calculez la variance de la population en utilisant les données de score d'une certaine classe de test de mathématiques comme population. En d'autres termes, trouvez le degré de variation des scores de cette classe de tests.

import statistics
#Liste des résultats des tests
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

Comment trouver la variance de la population à l'aide de l'écart

Formule pour trouver la variance de la population

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 

◯ ** (valeur de données) - (valeur moyenne) ** s'appelle ** écart (= écart) **. Dans la formule ci-dessus, l'écart est calculé, le carré de l'écart est additionné et divisé par le nombre d'éléments.

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]
#Trouvez le nombre d'éléments dans la liste
n = len(test_score)
#Trouvez la note moyenne du test
score_mean  = statistics.mean(test_score)
#Faites une liste des carrés de déviation
squared_deviation_list = [(score-score_mean)**2 for score in test_score]
#Dispersion mère= squared_deviation_Somme de la liste/Nombre d'éléments
population_variance = sum(squared_deviation_list)/n

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

Comment trouver la variance de la population à l'aide de la moyenne

◯ La dispersion de la population peut être transformée dans les formes suivantes. Nous utiliserons ceci pour trouver la variance de la population.

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 

① Trouvez le nombre d'éléments ② Trouvez la valeur moyenne ③ Équerrez les éléments et listez-les ④ Trouvez la somme de la liste des éléments au carré et divisez-la par le nombre d'éléments ⑤ Soustrayez-y le carré de la valeur moyenne

#Liste des résultats des tests
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]
#Trouvez le nombre d'éléments
n = len(test_score)
#Trouvez la valeur moyenne du test
score_mean = statistics.mean(test_score)
#Mettre au carré chaque élément de la liste
squared_test_score = [score**2 for score in test_score]
#"La somme des carrés de chaque élément divisée par le nombre d'éléments"-"Carré de la valeur de test moyenne"
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. Trouver une dispersion non biaisée

◯ Une variance non biaisée est utilisée pour estimer la variance de la population à partir d'un échantillon. Il s'agit d'un calcul pratique qui vous permet de saisir la nature de la population sans avoir à saisir tous les éléments de la population.

Équation de dispersion non biaisée

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

Comment trouver une variance sans biais à l'aide de la fonction variance ()

import statistics

#Échantillon de résultats de test(échantillon)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Dispersion impartiale(=unbiased_distribution), Test d'échantillon_score_Obtenir de l'échantillon
unbiased_distribution = statistics.variance(test_score_sample)
print('unbiased_distribution =',unbiased_distribution)
unbiased_distribution = 434.2

Comment trouver une variance sans biais à l'aide de la fonction pvariance ()

◯ Il ne peut être utilisé que lorsque la moyenne de la population est connue.

◯ Si vous ne connaissez pas la moyenne de la population, vous pouvez exécuter cette fonction avec des données d'échantillon pour obtenir une variance d'échantillon avec n degrés de liberté. Autrement dit, il ne s'agit pas d'une estimation sans biais de la variance de la population.

import statistics

#Moyenne de la population
score_mean = 51.766666666666666

#Échantillon de résultats de test(échantillon)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Dispersion impartiale(=unbiased_distribution), Test d'échantillon_score_Obtenir de l'échantillon
#La moyenne de la population est spécifiée par le deuxième argument
unbiased_distribution = statistics.pvariance(test_score_sample,score_mean)
print('unbiased_distribution =',unbiased_distribution)
unbiased_distribution = 412.49

Comment trouver une dispersion non biaisée en utilisant la déviation

◯ Divisez la somme des carrés des écarts par la taille de l'échantillon -1 comme indiqué dans la formule ci-dessous pour obtenir la dispersion sans biais.

Équation de dispersion non biaisée

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

① Trouvez la taille de l'échantillon ② Trouvez la valeur moyenne pour trouver l'écart ③ Faites une liste avec ** écart au carré ** comme élément ④ Divisez la somme de cette liste par m-1 (= taille de l'échantillon-1)

import statistics

#Échantillon de résultats de test(échantillon)
test_score_sample = [27, 22, 22, 73, 56, 61, 61, 22, 27, 63, 61, 22, 27, 61, 22, 61, 73, 61, 27, 73]

#Trouvez la taille de l'échantillon
m = len(test_score_sample)
#Trouvez la moyenne des échantillons pour trouver l'écart
score_mean = statistics.mean(test_score_sample)
#déviation(=score-score_mean)Faites une liste de carrés de
squared_deviation_list = [(score-score_mean)**2 for score in test_score_sample]

#Dispersion mère= squared_deviation_Somme de la liste/taille de l'échantillon-1
unbiased_distribution = sum(squared_deviation_list)/m-1

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

2. Trouvez l'écart type

◯ Il existe deux types d'écarts types: l'écart type de la population et l'écart type non biaisé.

◯ L'écart type de la population est la racine carrée de la variance de la population et aligne l'unité avec les données pour faciliter la compréhension de la dispersion des données.

◯ L'écart type non biaisé est une estimation non biaisée de l'écart type de la population.

2-0. Trouvez l'écart type de la population

◯ L'écart type de la population est la racine carrée de la variance de la population.

Rechercher à l'aide de la fonction pstdev ()

import statistics

#Score du test(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

Rechercher à l'aide de la variance de la population

◯ La racine carrée de la variance de la population est l'écart-type de la population, alors utilisez-la.

(1) Trouvez la variance de la population avec la fonction pvariance () ② Prendre la racine carrée de la variance de la population

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]
#Recherche de dispersion de la population
population_variance = statistics.pvariance(test_score)
#Prendre la racine carrée de la variance de la population
#root(Le contenu de l'itinéraire,~Racine)
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

Calculé en utilisant la moyenne quadratique des écarts

◯ L'écart type de la population équivaut à ** la moyenne au carré de l'écart **.

⓪ Trouvez la valeur moyenne des données pour trouver l'écart ① Faites une liste avec ** écart ** comme élément. (2) Créez une liste avec ** écart au carré ** comme élément. (Carré de chaque élément) ③ Trouvez la valeur moyenne de cette liste. ④ Prenez la racine carrée de la valeur moyenne

◯ La moyenne au carré est calculée en multipliant les valeurs que vous voulez faire en moyenne au carré, en les additionnant et en divisant par le nombre d'éléments n par la racine carrée **. Il est utilisé lorsque vous souhaitez calculer la différence entre l'heure d'arrivée et l'horaire du transport.

◯ Il n'y a aucune différence dans le délai entre l'arrivée 2 minutes en retard et l'arrivée 2 minutes plus tôt. Cependant, il compense l '** erreur ** avec le ** calcul de la moyenne mathématique ** avec plus ou moins. Donc, ** carré pour éliminer le moins et ** calculer.


import sympy
import statistics

#Données de score de test(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]
#Trouvez la moyenne de la population pour trouver l'écart
score_mean = statistics.mean(test_score)

#déviation(Différence entre le score et la moyenne)Faites une liste et trouvez la moyenne au carré de cette liste
deviation_list = [score-score_mean for score in test_score]

#Mise au carré de chaque élément de la liste en une nouvelle liste au carré_test_Faire un score
squared_deviation_list = [i**2 for i in deviation_list]
#squared_deviation_Trouvez la valeur moyenne de la liste(Somme/taille de l'échantillon)
mean_square = sum(squared_deviation_list)/len(squared_deviation_list)
#mean_Prenez la racine carrée du carré
root_mean_square = sympy.root(mean_square,2)

print('RMS = population standard deviation = ',root_mean_square)
#Moyenne quadratique de l'écart=Écart type de la mère= 25.2714375443020
RMS = population standard deviation = 25.2714375443020

2-1. Trouvez l'écart-type non biaisé

◯ ** Il s'agit d'une estimation non biaisée de l'écart type de la population **.

◯ De plus, l'écart-type sans biais n'est pas la racine carrée de la dispersion sans biais elle-même, mais la ** racine carrée corrigée de la dispersion sans biais **.

◯ Puisque la variance sans biais est une estimation sans biais de la variance de la population, on pense souvent que la racine carrée de la variance sans biais est l'écart-type sans biais et est l'estimation sans biais de l'écart-type de la population. Cependant, la racine carrée de ** dispersion sans biais n'est pas un écart-type sans biais. ** **

L'écart-type non biaisé Us en tant qu'estimation non biaisée de l'écart-type de la population est la racine carrée de la variance non biaisée U ^ 2 divisée par le coefficient 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})}

Formule d'écart type impartiale

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

Coefficient de gonflage et coefficient d'actualisation: écart-type non biaisé et coefficient de la carte de contrôle La racine carrée de la dispersion non biaisée est-elle une estimation non biaisée de l'écart type Qu'est-ce que l'écart type non biaisé? : Pour ceux qui ne comprennent pas les tests statistiques

Trouvez l'écart type non biaisé à l'aide de la fonction stdev ()

import statistics

#Échantillon de résultats de test(échantillon)
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. Trouvez le coefficient de fluctuation

◯ Le coefficient de fluctuation est la valeur obtenue en divisant l'écart type par la valeur moyenne.

◯ Il s'agit d'une valeur numérique pour laquelle aucune unité (= sans dimension) n'est utilisée lors de l'évaluation relative de la variation des données avec différentes unités et de la relation entre les données et la variation par rapport à la valeur moyenne. Les facteurs de fluctuation peuvent être exprimés en CV.

Formule de calcul du coefficient de variation

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

Comment trouver le coefficient de fluctuation à l'aide de l'écart type de la population et de la valeur moyenne

import statistics

#Données mesurées 10 fois chacune pour les humains et les souris
#L'unité est le 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()Utilisez une fonction pour trouver chaque écart-type de population
human_pstdev = statistics.pstdev(human_data)
mouse_pstdev = statistics.pstdev(mouse_data)

#mean()Calculez la valeur moyenne de chacun à l'aide d'une fonction
human_mean = statistics.mean(human_data)
mouse_mean = statistics.mean(mouse_data)

#Trouvez le coefficient de fluctuation
#Trouvez le rapport entre l'écart type de la population et la valeur moyenne
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)
#L'écart type de la mère est plus grand pour les humains(La valeur numérique représentant la variation est grande)
#Représente la variation en kg
human_pstdev =  1.0
mouse_pstdev =  0.0161245154965971

#Le coefficient de fluctuation est plus grand chez la souris(Grand degré de variation)
human_cv =  0.013106159895150722
mouse_cv =  0.40311288741492746

finalement

Merci pour la lecture. Nous vous serions reconnaissants de bien vouloir signaler des erreurs ou des améliorations. J'ai hâte de travailler avec vous.

Recommended Posts

[Algorithme x Python] Calcul des statistiques de base Partie3 (plage, variance, écart type, coefficient de fluctuation)
[Algorithme x Python] Calcul des statistiques de base Partie 2 (moyenne, médiane, la plus fréquente)
[Statistiques pour les programmeurs] Dispersion, écart type et coefficient de fluctuation
[Algorithm x Python] Calcul des statistiques de base (valeur totale, valeur maximale, valeur minimale)
Calcul de l'écart type et du coefficient de corrélation en Python
Principes de base de Python x SIG (3)
Principes de base de Python x SIG (partie 2)
Statistiques jusqu'à la dispersion et l'écart type
[Python] Calcul du coefficient kappa (k)
[Python] Calcul de la similarité d'image (coefficient de dés)
1. Statistiques apprises avec Python 1-3. Calcul de diverses statistiques (statistiques)
1. Statistiques apprises avec Python 1-2. Calcul de diverses statistiques (Numpy)
Calculer la moyenne, la médiane, la plus fréquente, la variance, l'écart type en Python