Introduction au modèle linéaire généralisé (GLM) par Python

Qu'est-ce qu'un modèle linéaire généralisé?

Un modèle linéaire généralisé est un terme général pour les modèles statistiques tels que la régression linéaire, la régression de Poisson et la régression logistique qui expliquent la variable de réponse (y) par la variable explicative (x). Plus précisément, il s'agit d'un modèle statistique déterminé par une distribution de probabilité, des prédicteurs linéaires et des fonctions de lien.

Distribution de probabilité

La distribution de probabilité que suit la variable de réponse. La «distribution binaire» et la «distribution de Poisson» sont souvent utilisées pour traiter des données discrètes telles que les données de comptage. La «distribution normale» et la «distribution gamma» sont souvent utilisées pour traiter des données continues qui représentent des quantités continues telles que les cours des actions.

Prédicteur linéaire

Une expression de modèle représentée par une combinaison linéaire de variables explicatives. Vous pouvez spécifier les variables explicatives à utiliser et les termes d'interaction (termes représentés par le produit des variables explicatives) à utiliser.

z = β_0 + β_{1}x_{1} + β_{2}x_{2}

Fonction de lien

Une fonction qui transforme une expression pour qu'elle corresponde à un prédicteur linéaire. Grâce à la fonction de lien, la probabilité que la valeur ne puisse prendre que 0 à 1 peut également correspondre au prédicteur linéaire. La fonction de lien à utiliser est déterminée dans une certaine mesure en fonction de la distribution, donc si vous voulez en savoir plus, veuillez vous référer au livre lié dans la référence sous l'article.

log(y) = β_0 + β_{1}x_{1} + β_{2}x_{2}

Implémentation en Python

Le modèle linéaire généralisé peut être facilement exécuté en utilisant la «fonction glm» de R. cependant,

Je pense qu'il y a beaucoup de gens qui disent ça, donc je vais l'essayer avec Python. Quand je l'ai cherché, j'ai trouvé un module appelé statsmodels comme la fonction glm de R`.

Installation du module

$ pip install statsmodels
$ pip install patsy #Après avoir importé des modèles de statistiques, on m'a dit que c'était nécessaire, alors installez-le
$ pip install pandas #Installé pour le traitement des données

Acquisition et modélisation de données

import statsmodels.api as sm
import pandas as pd

#Lisez les données dans l'URL de référence ci-dessous
data3a = pd.read_csv("http://hosho.ees.hokudai.ac.jp/~kubo/stat/iwanamibook/fig/poisson/data3a.csv")
#Créer un prédicteur linéaire avec variable x et terme constant
data3a.x_c = sm.add_constant(data3a.x)

#Créer un modèle linéaire généralisé de distribution de Poisson pour la distribution et la fonction de lien logarithmique pour la fonction de lien
#Pour la distribution de Poisson, la fonction de lien logarithmique est spécifiée par défaut
model = sm.GLM(data3a.y, data3a.x_c, family=sm.families.Poisson())
result = model.fit()

#résultat
result.summary()

statsmodels Benri!

en conclusion

C'était un modèle linéaire généralisé qui étendait un modèle statistique tel qu'un modèle linéaire, mais il est encore difficile d'incorporer des événements réels dans un modèle aussi simple. Le livre ci-dessous explique également des techniques telles que le modèle mixte linéaire généralisé, qui est une évolution du modèle linéaire généralisé, veuillez donc vous y référer.

référence

http://hosho.ees.hokudai.ac.jp/~kubo/ce/IwanamiBook.html

http://statsmodels.sourceforge.net/devel/glm.html

Recommended Posts

Introduction au modèle linéaire généralisé (GLM) par Python
Introduction à la modélisation statistique pour le modèle linéaire généralisé d'analyse de données (GLM)
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
[Introduction à Python] Utilisons foreach avec Python
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Introduction aux tests d'hypothèses statistiques avec des modèles de statistiques
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
Markov Chain Artificial Brainless avec Python + Janome (1) Introduction à Janome
Chaîne de Markov artificielle sans cervelle avec Python + Janome (2) Introduction à la chaîne de Markov
Introduction à l'intelligence artificielle avec Python 2 «Pratique de l'algorithme génétique»
Introduction à Tornado (1): Framework Web Python démarré avec Tornado
Introduction au langage Python
Introduction à OpenCV (python) - (2)
Introduction au vol en formation avec Tello edu (Python)
Introduction à Python avec Atom (en route)
Introduction aux modèles de retour automatique vectoriel (VAR) avec des modèles de statistiques
[Introduction à l'application Udemy Python3 +] 9. Tout d'abord, imprimez avec print
[Introduction à Python] Comment itérer avec la fonction range?
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Introduction aux mathématiques à partir du mémo d'étude Python Vol.1
Note de lecture: Introduction à l'analyse de données avec Python
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
Introduction aux modèles de correction d'erreur vectorielle (VECM) avec des modèles de statistiques
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Connectez-vous à BigQuery avec Python
Introduction à Python Django (2) Win
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Introduction à RDB avec sqlalchemy Ⅰ
Introduction à la communication série [Python]
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
[Python] Régression linéaire avec scicit-learn
Une introduction à la programmation Python
Introduction à Python pour, pendant
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
Introduction à elle faite avec Python ~ Projet d'automatisation Tinder ~ Épisode 5
Introduction à Python pour les utilisateurs de VBA - Appeler Python depuis Excel avec xlwings -
[Raspi4; Introduction au son] Enregistrement stable de l'entrée sonore avec python ♪
[Introduction à Python] Comment obtenir des données avec la fonction listdir
[Introduction à Udemy Python3 + Application] 51. Soyez prudent avec les arguments par défaut
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Lien pour commencer avec python
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python3 Jour 1] Programmation et Python
Ravi de vous rencontrer avec python
[Introduction à Python] <numpy ndarray> [modifier le 22/02/2020]
Introduction aux équations d'estimation généralisées par des modèles de statistiques
Essayez d'exploiter Facebook avec Python
Introduction à Python Hands On Partie 1
Sortie vers un fichier csv avec Python
[Introduction à Python] Comment analyser JSON