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.
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.
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}
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}
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`.
$ 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
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!
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.
http://hosho.ees.hokudai.ac.jp/~kubo/ce/IwanamiBook.html
http://statsmodels.sourceforge.net/devel/glm.html
Recommended Posts