[GO] 2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]

Ich möchte einen konkreteren Blick darauf werfen, was die multiple Regressionsanalyse uns sagen kann. Daher werden wir Beispieldaten aus bekannten statistischen Daten erstellen und damit mehrere Regressionsanalysen durchführen, um zu versuchen, sie zu interpretieren. Bei der Erstellung der Beispieldaten haben wir diesmal die folgenden zwei Datenquellen verwendet.

➀ Website des Regierungsstatistikportals "Umfassendes Fenster für Regierungsstatistik e-Stat" Präfekturdaten https://www.e-stat.go.jp/regional-statistics/ssdsview/prefectures ➁ Ministerium für Gesundheit, Arbeit und Soziales "New Corona Virus Infection" Status von testpositiven Personen in jeder Präfektur https://www.mhlw.go.jp/content/10906000/000646813.pdf

Als Zielvariable sei zunächst die Rate der mit dem neuen Koronavirus infizierten Personen angegeben. Als erklärende Variablen, die dies beeinflussen können, haben wir die folgenden sieben Variablen als Indikatoren für die sogenannten "drei dichten" und "Aktivitäten der Menschen" vorbereitet, von denen angenommen wird, dass sie zur Ausbreitung von Infektionen führen.

Name des Indikators Indexberechnungsformel Erhebungsjahr
Bevölkerungskonzentrationsgebiet Bevölkerungsverhältnis(%) Bevölkerungskonzentration Bezirksbevölkerung(Mann) / 総Mann口(Mann) 2015
Tag / Nacht-Bevölkerungsverhältnis(%) Tagesbevölkerung/Nachtbevölkerung 2015
Beschäftigungsquote(%) Anzahl der Angestellten(Mann) / 総Mann口(Mann) 2015
Beschäftigungsverhältnis zwischen Restaurant und Unterkunft(%) Anzahl der Angestellten(Restaurant / Unterkunftsgeschäft)(Mann) / Anzahl der Angestellten(Mann) 2005
Reiseaktivitätsrate(%) Reiseaktivitätsrate 10歳以上(%) 2016
Ausländische Gästequote(%) Gesamtzahl der ausländischen Gäste(Mann) /Gesamtzahl der Gäste(Mann) 2018
Verhältnis einzelner Haushalte(%) Anzahl der einzelnen Haushalte(Haushalt) / Haushalt数(Haushalt) 2018
Infektionsrate pro 100.000 Einwohner(%) Anzahl der Infizierten Positives Datum(Mann) / 総Mann口(Mann) Stand 5. Juli 2020

⑴ Importieren Sie die Bibliothek

import numpy as np                #Numerische Berechnung
import pandas as pd               #Datenrahmenbetrieb
from sklearn import linear_model  #Lineares Modell des maschinellen Lernens

⑵ Beispieldaten lesen

#Geben Sie die URL an und lesen Sie die CSV-Datei
url = 'https://raw.githubusercontent.com/yumi-ito/sample_data/master/covid19_factors_prefecture.csv'
df = pd.read_csv(url)

#Überprüfen Sie den Inhalt, indem Sie die ersten 5 Datenzeilen anzeigen
df.head()

Da die Beispieldaten (covid19_factors_prefecture.csv) auf GitHub abgelegt sind, werden sie von dort gelesen. 002_0203_001.PNG Es gibt ein "Bevölkerungsverhältnis", aber dieser dicht besiedelte Bezirk (DID: Densely Inhabited District) ist ein Stadtgebiet, das durch einen bestimmten Standard definiert wird, der auf statistischen Daten basiert. Was ist ein Stadtgebiet? Es ist ein besonders dicht besiedeltes Gebiet, das im weitesten Sinne ein Stadtgebiet ist. Wie konzentriert ist grob gesagt die Bevölkerung einer Präfektur in der Stadt? Wenn beispielsweise in Hokkaido die Bevölkerungsdichte einfach festgelegt wird, wird sie verstreut, weil das Gebiet groß ist, aber die Bevölkerungsquote in dem dicht besiedelten Gebiet 75,2% beträgt und 3 von 4 Personen im Stadtgebiet leben, was zeigt, dass die Dichte bemerkenswert ist.

(3) Datenübersicht

#Erhalten Sie zusammenfassende Statistiken für jede Spalte
df.describe()

Verwenden Sie die Pandas-Funktion "beschreiben". 002_0203_002.PNG

Selbstverständlich beträgt der Maximalwert in Tokio 46,34% und der Minimalwert in der Präfektur Iwate 0,00%.

002_0203_003.PNG

#Es versteht sich von selbst, dass Tokio im Allgemeinen die Spitze ist, aber ich bin gespannt, dass die beiden Präfekturen Hokuriku, Ishikawa und Toyama, in der Infektionsrate eingestuft sind. Beide Präfekturen sind in Bezug auf die Anzahl der Infizierten unauffällig, aber das Verhältnis von Infizierten zur Bevölkerung der Präfektur ist hoch. Die tatsächliche Zahl beträgt übrigens 300 in der Präfektur Ishikawa und 228 in der Präfektur Toyama. In der Präfektur Ishikawa beträgt das Verhältnis von Restaurant- / Unterkunftsarbeitern zu allen Arbeitern in der Präfektur 5,8%. Dies entspricht dem Verhältnis der Präfektur Nagano, die in Japan die fünfthöchste ist. Die Absicht, diese Variable zu übernehmen, ist eine etwas erweiterte Interpretation, aber die Idee ist, dass touristische wirtschaftliche Aktivitäten wie Unterkunft und begleitendes Essen und Trinken aktiv sind und es viele Möglichkeiten für menschlichen Kontakt gibt. In diesem Sinne kann die Bedeutung der Präfektur Okinawa genickt werden. Darüber hinaus gab es in Hokkaido zusammen mit der großen Anzahl infizierter Menschen viele Berichte über touristische Auswirkungen in den Medien, aber es stimmt, dass das Verhältnis von Ausländern zur Gesamtzahl der Übernachtungsgäste in einem Jahr ist Es ist der 4. Platz nach der Präfektur Kyoto mit 25,3%. Lassen Sie uns nun eine multiple Regressionsanalyse durchführen. (4) Speichern Sie erklärende Variablen bzw. objektive Variablen
X = df.loc[:, 'Bevölkerungskonzentrationsgebiet Bevölkerungsverhältnis':'Verhältnis einzelner Haushalte']

#Extrahieren Sie nur die Zielvariable und speichern Sie sie in der Variablen Y.
Y = df["Infektionsrate pro 100.000 Einwohner"]

⑸ Generieren Sie ein Modell

#Generieren Sie eine Instanz eines linearen Modells
model = linear_model.LinearRegression()

#Übergeben Sie Daten, um ein Modell zu generieren
model.fit(X,Y)

⑹ Ermitteln Sie den partiellen Regressionskoeffizienten

#Holen Sie sich den Wert des Koeffizienten und speichern Sie ihn im variablen Koeffizienten
coefficient = model.coef_

#In Datenrahmen mit Spaltennamen und Indexnamen konvertieren
df_coefficient = pd.DataFrame(coefficient, columns=["Partieller Regressionskoeffizient"], index=[X.columns])

df_coefficient

002_0203_004.PNG Der partielle Regressionskoeffizient repräsentiert die ** Größe der Auswirkung jeder erklärenden Variablen auf die Zielvariable **. Erstens ist das "Beschäftigungsverhältnis zwischen Restaurant und Unterkunft" bei weitem das größte, gefolgt vom "Reisendenverhältnis" und dem "Tag / Nacht-Bevölkerungsverhältnis". Wenn es um Unterkunft geht, ist es meistens entweder Sightseeing oder Business. Mit anderen Worten kann gesagt werden, dass die Tatsache, dass viele Menschen von außerhalb der Präfektur kommen und für einen bestimmten Zeitraum bleiben und daher der Prozentsatz der im Restaurant- und Beherbergungsgeschäft tätigen Personen hoch ist, einen großen Einfluss auf die Infektionsrate hat. Wenn viele Menschen in die Präfektur ein- und ausreisen, um zu reisen oder zur Schule zu pendeln, steigt auch die Anzahl der Infizierten. Kurz gesagt, eine "Bewegungseinschränkung" verhindert wirksam eine Infektion.

⑺ Holen Sie sich einen Abschnitt

#Holen Sie sich einen Abschnitt
model.intercept_

Der Schnitt (Schnittpunkt mit der Y-Achse) wurde mit der Funktion "intercept_" berechnet, die die multiple Regressionsgleichung enthüllte. 002_0203_005.PNG

⑻ Überprüfen Sie die Genauigkeit des Modells

#Holen Sie sich den Entscheidungsfaktor
model.score(X, Y)

Schließlich wird die "Score" -Funktion verwendet, um den Bestimmungskoeffizienten $ R ^ 2 $ zu berechnen, um die "Anpassungsgüte" der multiplen Regressionsgleichung zu bestätigen. Mit anderen Worten, inwieweit kann diese multiple Regressionsgleichung den tatsächlichen Kausalzusammenhang erklären? 002_0203_006.PNG Um ehrlich zu sein, dachte ich, dass ich wollte, dass es 0,8 überschreitet, aber ich denke, es ist notwendig, die Zusammensetzung der erklärenden Variablen zu berücksichtigen (weil ich es schnell gemacht habe).

Recommended Posts

2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]
2. Multivariate Analyse in Python 1-1. Einfache Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 7-3. Entscheidungsbaum [Rückgabebaum]
2. Multivariate Analyse in Python 1-2. Einfache Regressionsanalyse (Algorithmus)
2. Multivariate Analyse in Python 6-1. Ridge-Regression / Lasso-Regression (Scikit-Learn) [multiple Regression vs. Ridge-Regression]
2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)
2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
2. Multivariate Analyse in Python 8-2. K Nachbarschaftsmethode [Gewichtungsmethode] [Rückgabemodell]
2. Multivariate Analyse in Python 3-2. Hauptkomponentenanalyse (Algorithmus)
2. Multivariate Analyse in Python 7-1. Entscheidungsbaum (Scikit-Learn)
2. Multivariate Analyse in Python 3-1. Hauptkomponentenanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 8-1. K Nachbarschaftsmethode (Scikit-Learn)
2. Multivariate Analyse in Python 8-3. K Nachbarschaftsmethode [Schnittstellenüberprüfung]
2. Multivariate Analyse in Python 7-2. Entscheidungsbaum [Unterschied in den Teilungskriterien]
Regressionsanalyse mit Python
Mehrfacher Regressionsausdruck in Python
Einfache Regressionsanalyse mit Python
Erste einfache Regressionsanalyse in Python
Assoziationsanalyse in Python
Multiple Regressionsanalyse mit Keras
Axialsymmetrische Spannungsanalyse mit Python
Änderungen der Coronavirus-Infektionsrate
Vermeiden Sie mehrere Schleifen in Python
Online lineare Regression in Python
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (1)
Extrahieren Sie mehrere Listenduplikate in Python
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
[Python] Mit Tkinter mehrere Fenster anzeigen
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Statistischer Test (Mehrfachtest) in Python: scikit_posthocs
Planare Skelettanalyse in Python (2) Hotfix
Einfache Implementierung einer Regressionsanalyse mit Keras
Löschen Sie mehrere Elemente in der Python-Liste
Logistische Regressionsanalyse Selbst erstellt mit Python