2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)

Chancen

Effektiv P. Keine Wirkung 1-P Gewinnchancen P./(1-P)
Chemikalie A. 0.2 0.8 0.250
Chemikalie B. 0.05 0.95 0.053

Wahrscheinlichkeit

Beziehung zwischen Odds Ratio und Regressionskoeffizient bei der logistischen Regression

Um ** zu berücksichtigen, nehmen wir ein Modell an, das das Bestehen / Nichtbestehen des Tests (1, wenn bestanden, 0, wenn nicht bestanden) aus der Anzahl der Lernstunden vorhersagt. ** **.

⑴ Bibliothek importieren

#Bibliothek zur numerischen Berechnung
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats

#Bibliothek zum Zeichnen von Grafiken
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns

#Bibliothek zur Schätzung statistischer Modelle
import statsmodels.formula.api as smf
import statsmodels.api as sm

#Angabe der Anzahl der Anzeigestellen
%precision 3

⑵ Daten lesen und bestätigen

#Daten bekommen
url = 'https://raw.githubusercontent.com/yumi-ito/sample_data/master/6-3-1-logistic-regression.csv'

#Daten lesen
df = pd.read_csv(url)

# #Geben Sie die ersten 5 Datenzeilen aus
df.head() 

2_5_3_01.PNG

#Grundlegende Datenstatistik ausgeben
df.describe().apply(lambda s: s.apply(lambda x: format(x, 'g')))

2_5_3_02.PNG

#Zeichnen Sie ein Balkendiagramm
sns.set()
sns.barplot(x = "hours", y = "result", data = df, palette='summer_r')

2_5_3_03.PNG

pass_rate = df.groupby("hours").mean()

2_5_3_04.PNG

(3) Modellschätzung und Bestätigung der Ergebnisse

#Schätzen Sie das Modell
mod_glm = smf.glm(formula = "result ~ hours",
                  data = df,
                  family = sm.families.Binomial()).fit()
#Geben Sie eine Zusammenfassung der Schätzergebnisse aus
mod_glm.summary()

2_5_3_05.PNG

#Zeichnen Sie eine Regressionskurve
sns.lmplot(x = "hours", y = "result",
           data = df,
           logistic = True,
           scatter_kws = {"color": "green"},
           line_kws = {"color": "black"},
           x_jitter = 0.1, y_jitter = 0.02)

2_5_3_06.PNG

#Spalte mit gleicher Differenznummer mit Spaltennamen Stunden(0~9)Erstellen Sie einen DataFrame für
predicted_value = pd.DataFrame({"hours": np.arange(0, 10, 1)})

#Berechnen Sie die vorhergesagte Erfolgsquote
pred = mod_glm.predict(predicted_value)

2_5_3_07.PNG

⑷ Finden Sie das logarithmische Quotenverhältnis und vergleichen Sie es mit dem Koeffizienten

#Erhalten Sie 1 Stunde und 2 Stunden Passrate
pred_1 = pred[1]
pred_2 = pred[2]

#Berechnen Sie die Gewinnchancen für jeden
odds_1 = pred_1 / (1 - pred_1)
odds_2 = pred_2 / (1 - pred_2)

#Berechnen Sie das Log Odds Ratio
print("Log Odds Ratio:", round(sp.log(odds_2 / odds_1), 3))

#Modellkoeffizienten berechnen
value = mod_glm.params["hours"]
print("Modellkoeffizienten:", round(value, 3))

2_5_3_08.PNG

#Nehmen Sie exp des Regressionskoeffizienten
exp = sp.exp(mod_glm.params["hours"])
print("Koeffizient exp:", round(exp, 3))

#Quotenverhältnis berechnen
odds = odds_2 / odds_1
print("Wahrscheinlichkeit:", round(odds, 3))

2_5_3_09.PNG

Recommended Posts

2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)
2. Multivariate Analyse in Python 1-1. Einfache Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]
2. Multivariate Analyse in Python 6-1. Ridge-Regression / Lasso-Regression (Scikit-Learn) [multiple Regression vs. Ridge-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 6-3. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Funktionsweise der Regularisierung]
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
Einfache Regressionsanalyse mit Python
Erste einfache Regressionsanalyse in Python
Logistische Regressionsanalyse Selbst erstellt mit Python
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
Logistische Verteilung in Python
Assoziationsanalyse in Python
Mehrfacher Regressionsausdruck in Python
Was ist eine logistische Regressionsanalyse?
Axialsymmetrische Spannungsanalyse mit Python
Japanische Verarbeitung natürlicher Sprache mit Python3 (4) Emotionsanalyse durch logistische Regression
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (2)
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (1)
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
Planare Skelettanalyse in Python (2) Hotfix
Einfache Implementierung einer Regressionsanalyse mit Keras
Was ist eine mehrjährige logistische Regressionsanalyse?
PRML Kapitel 4 Bayesianische logistische Regression Python-Implementierung
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Online lineare Regression in Python (Robuste Schätzung)
[Python] Speichern von Lernergebnissen (Modellen) beim maschinellen Lernen
Restanalyse in Python (Ergänzung: Cochrane-Regeln)