Einfache Regressionsanalyse mit Python

Einführung

** Was ist eine Regressionsanalyse ** Eine Methode zur Kenntnis des Einflussgrades der erklärenden Variablen x (Ursache) auf die Zielvariable y (Ergebnis). Wenn es nur eine erklärende Variable x gibt, verwenden Sie eine einfache Regressionsanalyse, und wenn es mehrere erklärende Variablen x gibt, verwenden Sie mehrere Regressionsanalysen.

** Theoretisches Modell der Regressionsgleichung ** y = α + βx + u Zielvariable = Abschnitt + Steigung * erklärende Variable + Fehlerterm

Eine einfache Regressionsanalyse kann mit Excel durchgeführt werden, aber dieses Mal habe ich versucht, sie mit Python zum Üben zu überprüfen. (Ich habe es geschrieben, nachdem ich die Referenzmaterialien überprüft und die Anleitung eines Universitätsprofessors erhalten hatte, aber es kann Fehler geben. Ich würde es begrüßen, wenn Sie darauf hinweisen könnten: beten Sie :)

Einfache Regressionsanalyse

** Was Sie überprüfen möchten ** Dieses Mal werden wir untersuchen, "wie stark sich die Zunahme oder Abnahme der Anzahl der Direktflüge von China, Südkorea, Taiwan und Hongkong auf die Anzahl der Besucher nach Japan auswirkt". Die Zielvariable ist "die Anzahl der Besucher aus asiatischen Ländern nach Japan", und die erklärende Variable ist nur "die Anzahl der Direktflüge aus asiatischen Ländern". Neben der Anzahl der Direktflüge werden Wechselkurse, Naturkatastrophen, Sicherheit usw. auch als Faktoren angesehen, die die Anzahl der Besucher in Japan erhöhen oder verringern. Daher denke ich, dass eine multiple Regressionsanalyse für die Überprüfung besser geeignet ist, möchte sie aber beim nächsten Mal erneut überprüfen.

** Zu verwendende Daten **

Ich habe die folgende Excel-Tabelle erstellt, indem ich die beiden oben genannten Daten verwendet habe. dataset.png Die Anzahl der Direktflüge aus asiatischen Ländern und die Anzahl der Besucher nach Japan werden nach Präfektur zusammengefasst. 0 wird in Bereichen eingegeben, in denen es keine Direktflüge gibt oder in denen es überhaupt keinen Flughafen gibt.

Daten lesen und Variablen erstellen

Verwenden Sie "Pandas", um die Daten zu lesen und in einer Datendatei zu speichern. Geben Sie die Anzahl der Direktflüge in x und die Anzahl der Besucher nach Japan in y ein.

linear-regression.py


import pandas as pd

df = pd.read_excel('2016_summer_original.xlsx', sheet_name='Sheet2', encoding='utf-8')
x = df[['Korea']]
y = df[['Anzahl der Besucher in Japan']]

Einfache Regressionsanalyse mit Scikit-Learn

Verwenden Sie "scikit-learn" für eine einfache Regressionsanalyse und "matplotlib" für eine grafische Darstellung.

linear-regression.py


import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression

##Zeichnen Sie eine Regressionslinie
model_lr = LinearRegression()
model_lr.fit(x, y)

plt.plot(x, y, 'o')
plt.plot(x, model_lr.predict(x), linestyle="solid")
plt.show()

Erstellen Sie außerdem beschreibende Statistiken mit dem Statistikmodell.

linear-regression.py


import statsmodels.api as sm

#Beschreibende Statistiken anzeigen
x_add_const = sm.add_constant(x)
model_sm = sm.OLS(y, x_add_const).fit()

print(model_sm.summary())

Das Folgende ist das Ausführungsergebnis. Es ist ein sofortiger Kill: Lachen: korea-LR.png korea-DS.png

Interpretation der Ergebnisse

Vergleichen wir die Ergebnisse von China und Hongkong im Sommer 2015.

China china_LR.png china_DS.png Modell: y = 942,76x + 21142,86 P>|t|:0.000 R-squared:0.405

Hongkong hongkong_LR.png hongkong_DS.png Modell: y = 961,33x + 4053,08 P>|t|:0.000 R-squared:0.654

Zumindest sollte die Bedeutung der Analyseergebnisse und die Fähigkeit zur Erklärung der Formel im "P-Wert" und "R2" der deskriptiven Statistik gesehen werden. Der "P-Wert" ist die Wahrscheinlichkeit, die Nullhypothese abzulehnen (die entgegengesetzte Hypothese zu dem, was Sie behaupten möchten). Wenn es unter 5% liegt, ist es statistisch signifikant. Der "Entscheidungskoeffizient R2" ist ein Index, der misst, wie gut die geschätzte Regressionslinie auf die beobachteten Daten zutrifft. Je näher der Wert an 1 liegt, desto besser ist die Anpassung. Wenn in der obigen Abbildung der blaue Punkt nahe der orangefarbenen Linie liegt, ist die Anpassung gut.

Nach dem Regressionsmodell scheint China für jeden weiteren Direktflug um 943 zuzunehmen. Das Ergebnis ist signifikant, da der P-Wert 0 ist, die Erklärung der Formel jedoch gering ist. Andererseits steigt in Hongkong die Anzahl der Personen für jeden weiteren Flug um 961, was zeigt, dass dies sinnvoll ist und die Formel erklären kann.

schließlich

Da die veröffentlichten Nonstop-Flugdaten von 2015 bis 2018 stammen, ist das Analyseziel auf den Zeitraum beschränkt, in dem die Daten vorhanden sind. Da es sich nicht um monatliche Daten handelt, ist es nicht möglich, kontinuierliche Änderungen zu analysieren. Es war schade. Ich habe es im Artikel nicht erwähnt, weil es nicht das wichtigste ist, aber diesmal war es schwieriger, Daten zu sammeln und vorzuverarbeiten als zu analysieren: heat_smile: Das nächste Mal möchte ich dies mit einer multiplen Regressionsanalyse überprüfen.

Referenzmaterial

Ich habe versucht zu erklären, wie man mit Python Daten für Anfänger analysiert [# 1 So führen Sie eine einfache Regressionsanalyse mit Scikit-learn durch](https://medium.com/@yamasaKit/scikit-learn%E3%81%A7%E5%8D%98%E5%9B%9E%E5% B8% B0% E5% 88% 86% E6% 9E% 90% E3% 82% 92% E8% A1% 8C% E3% 81% 86% E6% 96% B9% E6% B3% 95-f6baa2cb761e) Lesen der Ergebnisse einer einfachen Regressionsanalyse [Excel-Datenanalysetool] [Regressionsanalyse-Serie 2] (Video) [Shinichi Kurihara und Atsushi Maruyama "Statistik-Bilderbuch" Ohm Co., Ltd.](https://www.amazon.co.jp/%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%9B% B3% E9% 91% 91-% E6% A0% 97% E5% 8E% 9F-% E4% BC% B8% E4% B8% 80 / dp / 427422080X)

Recommended Posts

Einfache Regressionsanalyse mit Python
Erste einfache Regressionsanalyse in Python
Regressionsanalyse mit Python
Einfache Implementierung einer Regressionsanalyse mit Keras
2. Multivariate Analyse in Python 1-1. Einfache Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 1-2. Einfache Regressionsanalyse (Algorithmus)
Einfacher gRPC in Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Assoziationsanalyse in Python
Mehrfacher Regressionsausdruck in Python
Online lineare Regression in Python
Einfacher IRC-Client mit Python
2. Multivariate Analyse in Python 7-3. Entscheidungsbaum [Rückgabebaum]
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
Einfaches OAuth 2 mit Python (urllib + oauthlib)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Implementierung eines einfachen Algorithmus in Python 2
Planare Skelettanalyse in Python (2) Hotfix
Führen Sie einen einfachen Algorithmus in Python aus
Logistische Regressionsanalyse Selbst erstellt mit Python
Einfache Gacha-Logik in Python geschrieben
2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Ein einfacher HTTP-Client, der in Python implementiert ist
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
Metaanalyse in Python
Unittest in Python
Versuchen Sie, eine einfache Animation in Python zu zeichnen
Datenanalyse Python
Online lineare Regression in Python (Robuste Schätzung)
Erstellen Sie eine einfache GUI-App in Python
Epoche in Python
Zwietracht in Python
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (2)
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
Poisson-Regressionsanalyse
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
Plink in Python
Konstante in Python
Schreiben Sie eine einfache Giermethode in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
Methode der Regressionsanalyse
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (1)
2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]