[PYTHON] Geschätztes Probit-Modell nach binärem Antwortmodell

Was ist das Binary Response-Modell?

Ein Zweck der metrischen Ökonomie besteht darin, die Auswirkungen einer Variablen richtig zu identifizieren. Binärantwortmodelle, einschließlich des Probit-Modells, sind ein gültiger Ansatz für Binärdaten mit einem Wert von 0,1.

Es wird gesagt, dass die gewöhnliche lineare Regressionsanalyse in den folgenden Punkten überlegen ist.

Dieses Modell ist in den obigen Punkten sicherlich überlegen, verursacht jedoch ernsthafte Probleme bei der Identifizierung der Auswirkungen der geschätzten Parameter wie bei der linearen Regressionsanalyse. Dies liegt daran, dass wir eine nichtlineare Funktion verwenden, um dieses Modell zu schätzen. Die mathematische Theorie wird unten vorgestellt.

Identifizierung von Effekten in der linearen Regressionsanalyse

Betrachten Sie das folgende einfache Regressionsanalysemodell.

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

Nach der Definition des Randeffekts ist $ \ frac {\ partielles Y} {\ partielles X_1} = \ beta_1 $. Bei der linearen Regressionsanalyse haben die geschätzten Parameter selbst daher einen geringfügigen Effekt.

Probit-Modell

Das Probit-Modell geht von folgenden Annahmen aus:

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

Wenn die Wahrscheinlichkeitsfunktion basierend auf diesem Ergebnis berechnet wird, $ L(\beta) = \Pi^n_{i=1} (P(y_i=1|X))^{y_i}(P(y_i=0|X))^{1-y_i} $ Es ist schwierig, dies von Hand zu lösen. Bitten Sie den Computer, die Optimierungsberechnung durchzuführen. Im Folgenden wird die Formel kompliziert, sodass die kumulative Verteilungsfunktion der Standardnormalverteilung $ \ Theta (X \ beta) $ und die Wahrscheinlichkeitsdichtefunktion $ \ Theta (X \ beta) $ ist. Das Modell, das wir geschätzt haben, ist $ P(Y=1|X)=1 - \Theta(X\hat{\beta})$

Es wird sein. Eine einzelne Unterscheidung dieses X ergibt:

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

Dies ist der marginale Effekt des Probit-Modells. Es gibt jedoch immer noch ein Problem, auch wenn wir dies bisher tun. Das heißt, der marginale Effekt hängt von X ab und ist nicht eindeutig bestimmt. Um dieses Problem zu lösen, berechnen wir normalerweise wie folgt. $\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}) $

Nur dann können wir die Auswirkungen des Probit-Modells identifizieren.

Berechnung mit 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()) Die Details des Befehls von https://www.statsmodels.org/stable/generated/statsmodels.discrete.discrete_model.ProbitResults.get_margeff.html Es ist in.

Recommended Posts

Geschätztes Probit-Modell nach binärem Antwortmodell
Beamformer-Antwort von Python
Pokemon-Klassifizierung nach Themenmodell
Markov-Schaltmodell von Python