Binary 변수를 가지는 회귀분석(로짓 모형)

2020. 11. 2. 23:36계량경제학

반응형

이번 포스팅에서는 Probit 모형과 마찬가지로 Binary(0 or 1 값을 가지는) 종속변수를 예측 및 추정할 때 사용하는 Logit 모형에 대해서 정리해보겠습니다.

Logit 모형은 아래와 같이 표현할 수 있습니다.

 Python statsmodels를 활용하여 Logit 모형을 추정해보겠습니다. 활용한 데이터는 이전 포스팅(Probit 모형)에서 활용한 데이터와 동일합니다.

from statsmodels.discrete.discrete_model import Logit

X = HMDA["pirat"]
X = sm.add_constant(X)
Y = HMDA["deny_binary"]

denylogit = Logit(Y, X).fit()
denylogit.summary()

'''
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -4.0284      0.269    -14.999      0.000      -4.555      -3.502
pirat          5.8845      0.734      8.021      0.000       4.447       7.322
==============================================================================
'''

## 시각화
HMDA["logit"]= denylogit.predict(X)

plt.plot(HMDA["pirat"],HMDA["deny_binary"] ,"o")
plt.xlim(-0.2, 3.2)
plt.ylim(-0.5,1.5)
plt.xlabel("pirat")
plt.ylabel("deny")
sns.lineplot(data=HMDA, x="pirat", y="logit")
plt.show()

## 시각화(Probit vs logit)

plt.plot(HMDA["pirat"],HMDA["deny_binary"] ,"o")
plt.xlim(-0.2, 3.2)
plt.ylim(-0.5,1.5)
plt.xlabel("pirat")
plt.ylabel("deny")
sns.lineplot(data=HMDA, x="pirat", y="probit", label="probit")
sns.lineplot(data=HMDA, x="pirat", y="logit", label="logit")
plt.show()

black변수를 추가하고, 흑인여부가 Mortage 승인 거부 확률에 어떻게 영향을 미치는지 알아보겠습니다.

## logit2
HMDA["black"]=HMDA["afam"].apply(lambda x : 1 if x=="yes" else 0)
X2 = HMDA[["pirat", "black"]]
X2 = sm.add_constant(X2)

denylogit2 = Logit(Y, X2).fit()
denylogit2.summary()

## new_data
black =np.array([0,1])
pirat =np.array([0.3,0.3])
const = np.array([1,1])

X_new = pd.DataFrame([const,pirat, black]).T
X_new.columns = ["const","pirat","black"]

denylogit2.predict(X_new).diff()[1]
##0.149294

결과를 해석해보면 black일 때 Martage 승인 거부 확률이 14.9% 상승함을 알 수 있습니다.

반응형