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.
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.
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
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 ")
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.
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).
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