Ein Artikel über Statistiken wurde auf President Online veröffentlicht.
Gibt es eine "Korrelation" zwischen Frühstück und Arbeitszeit und Geschäftsleistung? http://president.jp/articles/-/12416
Im obigen Artikel wird die Formel sicherlich nicht erwähnt, daher ist sie leicht zu verstehen und die Erklärung ist detailliert, sodass sie perfekt für den Einstieg in die Statistik geeignet ist. Es wird jedoch von einer manuellen Berechnung mit Excel ausgegangen, was etwas unangenehm ist.
Daher möchte ich diese Probleme mit dem Python berechnen, den ich bisher verwendet habe.
Das Problem besteht darin, herauszufinden, ob eine Korrelation zwischen der Wahrscheinlichkeit, dass jeder Mitarbeiter frühstückt (= Frühstücksrate), der Anwesenheitszeit und der Geschäftsleistung als drei Variablen besteht. Die Untersuchung der Korrelation zwischen Variablen auf diese Weise kann als Grundlage verschiedener Statistiken angesehen werden.
Rufen wir jede Variable X Y Z auf, damit sie von einem Computer verarbeitet werden kann. Zuerst habe ich dies als [CSV-Dateidaten] vorbereitet (https://github.com/ynakayama/sandbox/blob/master/python/pandas/data.csv).
Suchen Sie zunächst die Statistiken auf Seite 2. Lesen Sie die obigen Daten, um grundlegende Statistiken wie Mittelwert und Standardabweichung zu finden. Dies ist mit pandas einfach und kann in Sekundenschnelle gefunden werden.
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
Im Originalartikel habe ich ein Streudiagramm gezeichnet, um die Korrelation zu untersuchen. Lassen Sie uns dies auch in Python tun. Es ist schnell und einfach, eine Streudiagramm-Matrix zu zeichnen, um die Korrelation für jede Variable gemeinsam zu überprüfen.
from pandas.tools.plotting import scatter_matrix
plt.figure()
scatter_matrix(data)
plt.savefig("image.png ")
Der Korrelationskoeffizient kann erhalten werden, indem die Kovarianz durch die Standardabweichung zweier Variablen dividiert wird. Mit Pandas kann er jedoch leicht mit einer einzigen Funktion erhalten werden.
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
Ich konnte die Korrelationsmatrix in Seite 5 auf einmal finden. Als allgemeine Richtlinie wird gesagt, dass es eine starke Korrelation gibt, wenn sie 0,7 oder mehr beträgt, so dass gesagt werden kann, dass es sich um eine heikle Korrelation handelt, wie im ursprünglichen Artikel beschrieben.
Suchen Sie schließlich die Regressionsgleichung am Ende von 4. Seite. Dies ist eine der statistischen Funktionen von SciPy scipy.stats.linregress. Es kann durch einfache Regressionsanalyse unter Verwendung von generate / scipy.stats.linregress.html) erhalten werden.
#Wert abrufen
x = data.ix[:,0].values
y = data.ix[:,1].values
z = data.ix[:,2].values
#X- und Z-Regressionsgleichung
slope, intercept, r_value, p_value, std_err = sp.stats.linregress(x, z)
print(slope, intercept, r_value)
#=> 0.108067677706 94.113690292 0.550160142939
#Y- und Z-Regressionsgleichung
slope, intercept, r_value, p_value, std_err = sp.stats.linregress(y, z)
print(slope, intercept, r_value)
#=> -0.308556149733 96.0695187166 -0.545455364632
Beachten Sie, dass Steigung die Steigung ist, Achsenabschnitt der Abschnitt ist und r_Wert der Korrelationskoeffizient ist. Man erhält die lineare Gleichung y = ax + b, wobei a die Steigung und b der Schnitt ist.
Beispielsweise kehrt eine lineare Regressionsgleichung für X und Z zur Gleichung y = 0,11x + 94,11 (bis zur zweiten Dezimalstelle) zurück.
Die Verwendung von Python machte die statistische Analyse noch einfacher als mit Excel. Die Untersuchung der Korrelation zwischen zwei Variablen ist eine der Grundlagen der Statistik. Sie wird daher häufig auf reale Probleme angewendet. Sobald Sie sich daran gewöhnt haben, können Sie diese Analysen in sehr kurzer Zeit durchführen.
Recommended Posts