[PYTHON] Introduction aux statistiques Exercices du chapitre 2 de la presse de l'Université de Tokyo

Chapitre 2 Exercices

Ces calculs peuvent être facilement obtenus en utilisant des fonctions existantes, mais nous les implémenterons à partir de zéro dans le sens d'en étudier le contenu.

2.2 Différence moyenne / coefficient de Gini

A : 0, 3, 3, 5, 5, 5, 5, 7, 7, 10 B : 0, 1, 2, 3, 5, 5, 7, 8, 9, 10 C : 3, 4, 4, 5, 5, 5, 5, 6, 6, 7

Calculez la différence moyenne et le coefficient de Gini pour les données dans.

Ici, la différence moyenne et le coefficient de Gini sont définis respectivement par les formules suivantes.

\frac{Σ_iΣ_j|x_i-x_j|}{n^2}
\frac{Σ_iΣ_j|x_i-x_j|}{2n^2 \bar{x}}

Par conséquent, j'ai écrit le programme comme suit.

import numpy as np
A = np.array([0,3,3,5,5,5,5,7,7,10])
B = np.array([0,1,2,3,5,5,7,8,9,10])
C = np.array([3,4,4,5,5,5,5,6,6,7])
#Différence moyenne
def ave_diff(x):
    n=len(x)**2
    result = [np.abs(x[i]-x[j])/n for i in range(len(x)) for j in range(len(x))]
    return sum(result)


"""
print(ave_diff(A))
print(ave_diff(B))
print(ave_diff(C))

2.76
3.7599999999999976
1.2000000000000008
"""
#coefficient de Gini
def get_gini(x):
def get_gini(x):
    n=len(x)**2
    x_bar=x.mean()
    result = [np.abs(x[i]-x[j])/(2*n*x_bar) for i in range(len(x)) for j in range(len(x))]
    return sum(result)
"""
print(get_gini(A))
print(get_gini(B))
print(get_gini(C))

0.2760000000000002
0.3760000000000002
0.12000000000000008
"""

2.3 Entropie

Lorsque p_i = f_i / n

H(p_1, p_2, ...., p_n) = -Σp_iilog(p_ii)

Défini dans. Cette quantité est appelée entropie, et plus H est grand, plus la distribution est uniforme, et plus H est petit, plus il est concentré.

exemple J'ai demandé à 100 étudiants d'où ils venaient. Les résultats suivants ont été obtenus il y a 10 ans et cette année. Comparez la distribution de ce lieu d'origine du point de vue de la concentration.

zone A B C D E Total
Cette année 32 19 10 24 15 100
Il ya 10 ans 28 13 18 29 12 100
import numpy as np
a=np.array([32, 19, 10, 24, 15])
b=np.array([28,13,18,29,12])

def entropy(x):
    H=0
    n=sum(x)
    
    H=[x[i]/n*np.log10(x[i]/n) for i in range(len(x))]
#     for i in range(len(x)):
#         p=a[i]/n
#         H.append(p*np.log10(p))
    return -sum(H)

"""
print(entropy(a))
print(entropy(b))

0.667724435887455
0.6704368955892825
"""

2.4 Score standard / score d'écart

Calculer le score standard et le score d'écart pour les données B

Score standard / standardisation

z_i = \frac{xi-\bar{x}}{S_x}

Alors

def standard_score(x):
    x_bar = x.mean()
    s=np.sqrt(x.var())
    z = [(x[i]-x_bar)/s for i in range(len(x))]
    return z

"""
standard_score(B)

[-1.5214515486254614,
 -1.217161238900369,
 -0.9128709291752768,
 -0.6085806194501845,
 0.0,
 0.0,
 0.6085806194501845,
 0.9128709291752768,
 1.217161238900369,
 1.5214515486254614]

"""

À propos du score de valeur d'écart

T_i = 10z_i * 50

J'ai donc changé un peu la fonction ci-dessus

def dev_val(x):
    x_bar = x.mean()
    s=np.sqrt(x.var())
    T = [(x[i]-x_bar)/s*10 +50 for i in range(len(x))]
    return T

'''

def_val(B)


[34.78548451374539,
 37.82838761099631,
 40.87129070824723,
 43.91419380549816,
 50.0,
 50.0,
 56.08580619450184,
 59.12870929175277,
 62.17161238900369,
 65.21451548625461]

'''

Ce sera.

Recommended Posts

Introduction aux statistiques Exercices du chapitre 2 de la presse de l'Université de Tokyo
Mathématiques Todai 2016 résolues avec Python
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
De l'introduction de pyethapp à l'exécution du contrat
Introduction aux statistiques de quiz (1) -Analyse mathématique des phrases de questions pour connaître la tendance des questions-
Introduction à l'architecture de traduction automatique par l'Université de Cambridge par l'application Slack Translation Kiara
Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (Chapitre 1)
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
Introduction à l'ingénierie financière [Science de l'investissement] Chapitre 2 Exercices d'auto-réponse
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Une introduction à l'orientation des objets - changeons l'état interne d'un objet
Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (fonction du chapitre 0)
Chapitre 1 Introduction à Python Découpez uniquement les bons points de Deeplearning à partir de zéro
J'ai essayé de résoudre la première question de l'examen d'entrée en mathématiques 2019 de l'Université de Tokyo avec python sympy
Résumé du chapitre 2 de l'introduction aux modèles de conception appris en langage Java
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
Chapitre 4 Résumé de l'introduction aux modèles de conception appris en langage Java
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Utilisez PyCaret pour prédire le prix des appartements d'occasion à Tokyo!
Résolution du labyrinthe avec Python-Supplément au chapitre 6 de la référence rapide de l'algorithme-
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
[Introduction au modèle SIR] Considérez le résultat de l'ajustement de Diamond Princess ♬
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
Supplément à l'explication de vscode
[Introduction à Python3 Day 21] Chapitre 10 Système (10.1 à 10.5)
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
Méthode Ford-Falkerson et ses applications - Supplément au chapitre 8 de la référence rapide de l'algorithme -
Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Introduction
J'ai essayé de résoudre 100 traitements linguistiques Knock version 2020 [Chapitre 3: Expressions régulières 25-29]
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Introduction aux data scientists] Bases de la probabilité et des statistiques ♬ Variable de probabilité / probabilité et distribution de probabilité
[Introduction à Python] Une explication approfondie des types de chaînes de caractères utilisés dans Python!
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
L'histoire d'essayer de reconnecter le client
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
Script pour changer la description de fasta
10 méthodes pour améliorer la précision de BERT
Comment vérifier la version de Django
L'histoire de la mise en place de MeCab dans Ubuntu 16.04
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
Probablement l'introduction la plus simple à TensorFlow
L'histoire du changement de pep8 en pycodestyle
Introduction à Scapy ① (De l'installation à l'exécution de Scapy)
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
[Introduction au Data Scientist] Bases de Python ♬
J'ai essayé de résoudre la version 2020 de 100 problèmes de traitement du langage [Chapitre 3: Expressions régulières 20 à 24]
Introduction à la modélisation statistique pour l'analyse des données Élargissement de la gamme d'applications de GLM
Une introduction à l'analyse de données à l'aide de Python - Pour augmenter le nombre de vues vidéo -
J'ai essayé de résoudre la version 2020 de 100 coups de traitement de langue [Chapitre 1: Mouvement préparatoire 00-04]
J'ai essayé de résoudre la version 2020 de 100 traitements linguistiques [Chapitre 1: Mouvement préparatoire 05-09]
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
[Introduction aux statistiques] Quel type de distribution est la distribution t, la distribution chi carré et la distribution F? Un petit résumé de l'utilisation de [python]
Essayez le livre "Introduction au développement d'applications de traitement du langage naturel en 15 étapes" -Chapitre 1 Mémo "Connaissances préliminaires avant de commencer les exercices"