[PYTHON] Modèle Probit estimé par modèle de réponse binaire

Qu'est-ce que le modèle de réponse binaire?

L'un des objectifs de l'économie métrique est d'identifier correctement les effets d'une variable. Les modèles de réponse binaire, y compris le modèle Probit, sont une approche valide pour les données binaires qui prennent une valeur de 0,1.

On dit que l'analyse de régression linéaire ordinaire est supérieure dans les points suivants.

--La plage de prédiction se situe dans l'intervalle [0,1].

Ce modèle est certes supérieur sur les points ci-dessus, mais il pose de sérieux problèmes lors de l'identification des effets des paramètres estimés comme dans l'analyse de régression linéaire. C'est parce que nous utilisons une fonction non linéaire pour estimer ce modèle. La théorie mathématique est présentée ci-dessous.

Identification des effets dans l'analyse de régression linéaire

Considérez le modèle d'analyse de régression simple suivant.

$\ Y= \beta_0 + \beta_1 X_1 + u $

D'après la définition de l'effet marginal, $ \ frac {\ partial Y} {\ partial X_1} = \ beta_1 $. Ainsi, dans l'analyse de régression linéaire, les paramètres estimés eux-mêmes ont un effet marginal.

Modèle Probit

Le modèle Probit fait les hypothèses suivantes:

$ P(Y_i=0|X)=\int^{X\beta}_{-\infty} dz \frac{1}{\sqrt{2\pi} } exp(\frac{z^2}{2})$

Lorsque la fonction de vraisemblance est calculée sur la base de ce résultat, $ L(\beta) = \Pi^n_{i=1} (P(y_i=1|X))^{y_i}(P(y_i=0|X))^{1-y_i} $ Il est difficile de résoudre ce problème à la main, alors demandez à l'ordinateur d'effectuer le calcul d'optimisation. Dans ce qui suit, la formule devient compliquée, donc la fonction de distribution cumulative de la distribution normale standard est $ \ Theta (X \ beta) $, et la fonction de densité de probabilité est $ \ theta (X \ beta) $. Le modèle que nous avons estimé est $ P(Y=1|X)=1 - \Theta(X\hat{\beta})$

Ce sera. Une seule différenciation de ce X donne:

$\frac{\partial P(Y=1|X)}{\partial X_i}=\hat{\beta_i}\times \theta(X\hat{\beta}) $

C'est l'effet marginal du modèle Probit. Cependant, il reste un problème même si nous le faisons jusqu'à présent. Autrement dit, l'effet marginal dépend de X et n'est pas déterminé de manière unique. Pour résoudre ce problème, nous calculons généralement comme suit. $\frac{\partial P(Y=1|X)}{\partial X_i}=\frac{1}{n}\sum^n_{j=1} \hat{\beta_i}\times \theta(X_j\hat{\beta}) $

Ce n'est qu'alors que nous pouvons identifier les effets du modèle Probit.

Calcul par Python

import statsmodels.api as sm
import pandas as pd
#read data
data=pd.read_csv("___.csv")
target=data.loc[:,"name"]
explain=data.loc[:,["names"]]

#it is necessary to add constant variable
explain=sm.add_constant(explain)

model=sm.Probit(target, explain)
result=model.fit()
#you can get beta but not Partial effect
print(result.summary())

#you can get Partial Effect!!
print(result.get_margeff(at="overall").summary())
#if you change [at="overall"], the way of calculation can be change 

print(result.get_margeff(at="overall").summary()) Les détails de la commande de https://www.statsmodels.org/stable/generated/statsmodels.discrete.discrete_model.ProbitResults.get_margeff.html C'est dedans.

Recommended Posts

Modèle Probit estimé par modèle de réponse binaire
Réponse de Beamformer par python
Classification des Pokémon par modèle de sujet
Modèle de commutation de Markov par Python