Calculons en fait le problème statistique avec Python

Un article sur les statistiques a été publié sur President Online.

Existe-t-il une «corrélation» entre le petit-déjeuner et les heures de travail et la performance de l'entreprise? http://president.jp/articles/-/12416

Dans l'article ci-dessus, la formule n'est certainement pas mentionnée, elle est donc facile à comprendre et l'explication est détaillée, elle est donc parfaite pour démarrer avec les statistiques. Cependant, il repose sur un calcul manuel avec Excel, ce qui est un peu désagréable.

J'aimerais donc calculer ces problèmes avec le Python que j'utilise jusqu'à présent.

Problème et sa solution

Le problème est de savoir s'il existe une corrélation entre la probabilité de chaque employé de prendre son petit-déjeuner (= taux de petit-déjeuner), le temps de présence et la performance de l'entreprise comme trois variables. L'examen de la corrélation entre les variables de cette manière peut être considéré comme la base de diverses statistiques.

Appelons chaque variable X Y Z pour qu'elle puisse être manipulée par un ordinateur. Tout d'abord, j'ai préparé ceci sous forme de données de fichier CSV.

Calculer des statistiques de base

Tout d'abord, recherchez les statistiques qui apparaissent sur Page 2. Lisez les données ci-dessus pour trouver des statistiques de base telles que la moyenne et l'écart type. C'est facile avec pandas et peut être trouvé en quelques secondes.

data = pd.read_csv("data.csv", names=['X', 'Y', 'Z'])
data.describe()
# =>
#                 X          Y           Z
# count    7.000000   7.000000    7.000000
# mean    42.571429  -8.571429   98.714286
# std     42.968427  14.920424    8.440266
# min      0.000000 -40.000000   88.000000
# 25%      5.000000 -10.000000   92.000000
# 50%     33.000000  -5.000000  100.000000
# 75%     77.500000   0.000000  104.500000
# max    100.000000   5.000000  110.000000

Dessinez une matrice de diagramme de dispersion

Dans l'article original, j'ai dessiné un diagramme de dispersion pour examiner la corrélation. Faisons cela aussi en Python. Il est simple et rapide de dessiner une matrice de diagramme dispersé pour vérifier la corrélation de chaque variable collectivement.

from pandas.tools.plotting import scatter_matrix
plt.figure()
scatter_matrix(data)
plt.savefig("image.png ")

1.png

Trouvez le coefficient de corrélation

Le coefficient de corrélation peut être obtenu en divisant la covariance par l'écart type de deux variables, mais en utilisant des pandas, il peut être facilement obtenu avec une seule fonction.

data.corr()
#=>
#           X         Y         Z
# X  1.000000  0.300076  0.550160
# Y  0.300076  1.000000 -0.545455
# Z  0.550160 -0.545455  1.000000

J'ai pu trouver la matrice de corrélation dans page 5 d'un seul coup. En règle générale, on dit qu'il y a une forte corrélation lorsqu'elle est de 0,7 ou plus, on peut donc dire qu'il s'agit d'une corrélation délicate comme décrit dans l'article original.

Faites une analyse de régression

Enfin, trouvez l'équation de régression qui apparaît à la fin de la 4e page. C'est l'une des fonctions statistiques de SciPy [scipy.stats.linregress](http://docs.scipy.org/doc/scipy-0.14.0/reference/ Il peut être obtenu par simple analyse de régression à l'aide de generated / scipy.stats.linregress.html).

#Récupérer la valeur
x = data.ix[:,0].values
y = data.ix[:,1].values
z = data.ix[:,2].values

#Équation de régression X et Z
slope, intercept, r_value, p_value, std_err = sp.stats.linregress(x, z)
print(slope, intercept, r_value)
#=> 0.108067677706 94.113690292 0.550160142939

#Équation de régression Y et Z
slope, intercept, r_value, p_value, std_err = sp.stats.linregress(y, z)
print(slope, intercept, r_value)
#=> -0.308556149733 96.0695187166 -0.545455364632

Notez que la pente est la pente, l'intersection est la section et r_value est le coefficient de corrélation. L'équation linéaire y = ax + b est obtenue, où a est la pente et b est la section.

Par exemple, une équation de régression linéaire pour X et Z renvoie à l'équation y = 0,11x + 94,11 (jusqu'à la deuxième décimale).

Résumé

L'utilisation de Python a rendu l'analyse statistique encore plus facile qu'avec Excel. L'examen de la corrélation entre deux variables est l'une des bases de la statistique, elle est donc souvent appliquée à des problèmes réels, et une fois que vous vous y serez habitué, vous pourrez effectuer ces analyses en très peu de temps.

Recommended Posts

Calculons en fait le problème statistique avec Python
Essayez de calculer Trace en Python
Essayez de calculer RPN avec Python (pour les débutants)
Essayez de créer un module Python en langage C
ABC166 en Python A ~ C problème
Essayez simplement de recevoir un webhook avec ngrok et Python
Essayez de vous connecter à qiita avec Python
Essayez d'envoyer un paquet SYN en Python
Essayez de dessiner une animation simple en Python
Comment obtenir stacktrace en python
Essayez un tube de programmation fonctionnel en Python
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
Premiers pas pour essayer Google CloudVision en Python
Essayez d'implémenter Oni Mai Tsuji Miserable avec python
3.14 π jour, alors essayez de sortir en Python
Comment effacer un taple dans une liste (Python)
Essayez auto pour évaluer automatiquement Enum dans Python 3.6
Comment incorporer des variables dans des chaînes python
Essayez de résoudre le problème de l'héritage de classe Python
Je veux créer une fenêtre avec Python
Comment créer un fichier JSON en Python
Essayez de dessiner une courbe de vie avec python
Essayez de créer un code de "décryptage" en Python
Une manière intelligente de chronométrer le traitement avec Python
Étapes pour développer une application Web en Python
Essayez gRPC en Python
Pour ajouter un module à python que vous mettez dans Julialang
Comment notifier les canaux Discord en Python
Essayez de créer un groupe de dièdre avec Python
[Python] Comment dessiner un histogramme avec Matplotlib
Essayez 9 tranches en Python
Essayez de résoudre un problème défini de mathématiques au lycée avec Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
Analyser une chaîne JSON écrite dans un fichier en Python
Comment convertir / restaurer une chaîne avec [] en python
Je souhaite intégrer une variable dans une chaîne Python
[Python] Essayez de lire la bonne réponse au problème FizzBuzz
Faisons un outil de veille de commande avec python
Essayez d'améliorer votre propre quiz d'introduction avec Python
(Python) Essayez de développer une application Web en utilisant Django
Essayez de résoudre le problème d'affectation du médecin de formation avec Python
Je veux écrire en Python! (2) Écrivons un test
[Python] Comment développer des variables dans une chaîne de caractères
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Essayez de rechercher un profil d'un million de caractères en Python
Essayez d'incorporer Python dans un programme C ++ avec pybind11
J'ai essayé d'implémenter un pseudo pachislot en Python
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Choses à noter lors de l'initialisation d'une liste en Python
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
[Python] Création d'une méthode pour convertir la base en 1 seconde
Comment exécuter une commande à l'aide d'un sous-processus en Python
Publier / télécharger une bibliothèque créée en Python vers PyPI
Prendre une capture d'écran en Python
Calculer mW <-> dBm en Python