Berechnen wir das statistische Problem mit Python

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.

Problem und seine Lösung

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

Grundstatistik berechnen

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

Zeichnen Sie eine Streudiagrammmatrix

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

1.png

Finden Sie den Korrelationskoeffizienten

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.

Führen Sie eine Regressionsanalyse durch

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.

Zusammenfassung

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

Berechnen wir das statistische Problem mit Python
Versuchen Sie, Trace in Python zu berechnen
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
ABC166 in Python A ~ C Problem
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
Versuchen Sie, sich mit Python bei qiita anzumelden
Versuchen Sie, ein SYN-Paket in Python zu senden
Versuchen Sie, eine einfache Animation in Python zu zeichnen
Wie bekomme ich Stacktrace in Python?
Probieren Sie eine funktionale Programmierpipe in Python aus
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
Erste Schritte zum Testen von Google CloudVision in Python
Versuchen Sie, Oni Mai Tsuji Miserable mit Python zu implementieren
3,14 π Tag, versuchen Sie also, in Python auszugeben
So löschen Sie einen Taple in einer Liste (Python)
Versuchen Sie automatisch, Enum in Python 3.6 automatisch zu bewerten
Einbetten von Variablen in Python-Strings
Versuchen Sie, das Problem der Python-Klassenvererbung zu lösen
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
Schritte zum Entwickeln einer Webanwendung in Python
Versuchen Sie gRPC in Python
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
So benachrichtigen Sie Discord-Kanäle in Python
Versuchen Sie, mit Python eine Diedergruppe zu bilden
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Probieren Sie 9 Slices in Python aus
Versuchen Sie, ein festgelegtes Problem der High-School-Mathematik mit Python zu lösen
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
Analysieren Sie eine JSON-Zeichenfolge, die in eine Datei in Python geschrieben wurde
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Ich möchte eine Variable in einen Python-String einbetten
[Python] Versuchen Sie, die coole Antwort auf das FizzBuzz-Problem zu lesen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, Ihr eigenes Intro-Quiz mit Python zu verbessern
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Versuchen Sie, in Python nach einem Profil mit einer Million Zeichen zu suchen
Versuchen Sie, Python mit pybind11 in ein C ++ - Programm einzubetten
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Beachten Sie beim Initialisieren einer Liste in Python
Einführung in die lineare Algebra mit Python: A = LU-Zerlegung
[Python] Erstellt eine Methode zum Konvertieren von Radix in 1 Sekunde
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Veröffentlichen / Hochladen einer in Python erstellten Bibliothek in PyPI
Machen Sie einen Screenshot in Python
Berechnen Sie mW <-> dBm in Python