2. Analyse multivariée expliquée dans Python 5-3. Analyse de régression logistique (modèles statistiques)

Chances

P efficace Aucun effet 1-P Cotes P/(1-P)
Chimique A 0.2 0.8 0.250
Chimique B 0.05 0.95 0.053

Rapport de cotes

** Le rapport de cotes ** est le rapport de deux cotes **. Le rapport de cotes entre le médicament A et le médicament B est de 0,250 $ / 0,053 = 4,75 $, ce qui correspond à la cote de A divisée par la cote de B.

Relation entre le rapport de cotes et le coefficient de régression dans la régression logistique

Pour considérer **, supposons un modèle qui prédit la réussite / l'échec du test (1 en cas de réussite, 0 en cas d'échec) à partir du nombre d'heures d'étude. ** **

⑴ Bibliothèque d'importation

#Bibliothèque utilisée pour le calcul numérique
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats

#Bibliothèque pour dessiner des graphiques
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns

#Bibliothèque d'estimation de modèles statistiques
import statsmodels.formula.api as smf
import statsmodels.api as sm

#Spécification du nombre de chiffres d'affichage
%precision 3

⑵ Lecture et confirmation des données

#Obtenez des données
url = 'https://raw.githubusercontent.com/yumi-ito/sample_data/master/6-3-1-logistic-regression.csv'

#Lire les données
df = pd.read_csv(url)

# #Sortir les 5 premières lignes de données
df.head() 

2_5_3_01.PNG

#Sortie des statistiques de base des données
df.describe().apply(lambda s: s.apply(lambda x: format(x, 'g')))

2_5_3_02.PNG

#Dessinez un graphique à barres
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) Estimation du modèle et confirmation des résultats

#Estimer le modèle
mod_glm = smf.glm(formula = "result ~ hours",
                  data = df,
                  family = sm.families.Binomial()).fit()
#Produire un résumé des résultats de l'estimation
mod_glm.summary()

2_5_3_05.PNG

#Dessinez une courbe de régression
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

#Colonne de nombre de différence égal avec le nom de la colonne heures(0~9)Créer un DataFrame pour
predicted_value = pd.DataFrame({"hours": np.arange(0, 10, 1)})

#Calculez le taux de réussite prévu
pred = mod_glm.predict(predicted_value)

2_5_3_07.PNG

⑷ Trouvez le rapport de cotes logarithmique et comparez-le avec le coefficient

#Obtenez un taux de réussite de 1 heure et 2 heures
pred_1 = pred[1]
pred_2 = pred[2]

#Calculez les cotes pour chacun
odds_1 = pred_1 / (1 - pred_1)
odds_2 = pred_2 / (1 - pred_2)

#Calculer le rapport de cotes du journal
print("Rapport de cotes:", round(sp.log(odds_2 / odds_1), 3))

#Calculer les coefficients du modèle
value = mod_glm.params["hours"]
print("Coefficients du modèle:", round(value, 3))

2_5_3_08.PNG

#Prendre exp du coefficient de régression
exp = sp.exp(mod_glm.params["hours"])
print("Coefficient exp:", round(exp, 3))

#Calculer le rapport de cotes
odds = odds_2 / odds_1
print("Rapport de cotes:", round(odds, 3))

2_5_3_09.PNG

Recommended Posts

2. Analyse multivariée expliquée dans Python 5-3. Analyse de régression logistique (modèles statistiques)
2. Analyse multivariée définie dans Python 1-1. Analyse de régression simple (scikit-learn)
2. Analyse multivariée décrite dans Python 2-1. Analyse de régression multiple (scikit-learn)
2. Analyse multivariée détaillée dans Python 2-3. Analyse de régression multiple [taux d’infection au COVID-19]
2. Analyse multivariée décrite dans Python 6-1. Régression de crête / Régression de lasso (scikit-learn) [régression multiple vs régression de crête]
2. Analyse multivariée expliquée dans Python 8-2. Méthode de voisinage k [méthode de pondération] [modèle de retour]
2. Analyse multivariée décrite dans Python 3-2. Analyse en composantes principales (algorithme)
2. Analyse multivariée décrite dans Python 7-1. Arbre de décision (scikit-learn)
2. Analyse multivariée expliquée dans Python 3-1. Analyse en composantes principales (scikit-learn)
2. Analyse multivariée décrite dans Python 6-3. Régression Ridge / Régression Lasso (scikit-learn) [Fonctionnement de la régularisation]
2. Analyse multivariée expliquée dans Python 8-1. Méthode de voisinage k (scikit-learn)
2. Analyse multivariée énoncée dans Python 8-3. Méthode de voisinage K [vérification d'intersection]
2. Analyse multivariée expliquée dans Python 7-2. Arbre de décision [différence de critères de division]
Analyse de régression avec Python
Analyse de régression simple avec Python
Première analyse de régression simple en Python
Analyse de régression logistique Self-made avec python
J'ai essayé d'implémenter la régression logistique de Cousera en Python
Distribution logistique en Python
Analyse d'association en Python
Expression de régression multiple en Python
Qu'est-ce que l'analyse de régression logistique?
Analyse des contraintes symétriques axiales avec Python
Traitement du langage naturel japonais utilisant Python3 (4) Analyse des émotions par régression logistique
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
[Test statistique 2e année / quasi 1e année] Formation à l'analyse régressive avec Python (2)
[Test statistique 2e année / quasi 1e année] Formation à l'analyse régressive avec Python (1)
Analyse des ondes cérébrales avec Python: tutoriel Python MNE
Analyse du squelette planaire dans Python (2) Hotfix
Implémentation simple de l'analyse de régression avec Keras
Qu'est-ce que l'analyse de régression logistique à plusieurs termes?
PRML Chapitre 4 Implémentation Python de la régression logistique bayésienne
Régression linéaire en Python (statmodels, scikit-learn, PyMC3)
Régression linéaire en ligne en Python (estimation robuste)
[Python] Enregistrement des résultats d'apprentissage (modèles) dans l'apprentissage automatique
Analyse résiduelle en Python (Supplément: règles Cochrane)