目的と背景
目的: マクロ経済サイクルとクレジット カードのデフォルト率の先行指標を確立すること。
データ: 1990 年から 2008 年までの米国の月次マクロ経済データ: 合計 228 の観測値、pce: 個人
消費支出、debt: 個人消費ローンの残高、Charge-off Rate: デフォルト率。
解決策と手順
- 負債と対数 (pce) の散布図を作成します。この 2 つの間に強い線形関係があります。
- 線形回帰モデルを確立し、残差を取得します。(経済説明)
- 次のように、デフォルト率と残差のシーケンス プロットと、遅延残差の散布図を描画します。
- デフォルト率対ヒステリシス残差を線形線形モデルとしてさらにモデル化するか、
デフォルト率対債務およびヒステリシス付きの log(pce) を直接モデル化することができます。
pandas を pd としてインポート
パス = 'data/macro_econ_data.xls'
データ = pd.read_excel(path)
負債 = データ['リボルビング クレジット'].values[:,np.newaxis]
pce = データ['名目 PCE'].values[:,np.newaxis]
rate = データ['チャージオフ レート'].values[ :,np.newaxis]
y = 負債
x = np.log(pce)
plt.plot(x,y,'o')
n,p = x.shape
c = np.ones((n,1))
X = np.hstack((c ,x))
ベータ = la.inv(XTdot(X)).dot(XT).dot(y)
res = y - X.dot(beta)
res2 = (res - res.mean(軸=0)) / res.std(軸=0)
rate2 = (rate - rate.mean(軸=0)) / rate.std(軸=0)
plt.figure()
plt.plot(res2)
plt.plot(rate2)
plt.legend(['residual','charge-off rate'])
plt.savefig(r'fig\drate-res-ts')
corr_list = [np.corrcoef(res2[:-k].T,rate2[k:].T)[0,1]
for k in np.arange(1,15)]
lag = np.array(corr_list).argmax()
plt.plot(res2[:-lag],rate2[lag:],'o')
plt.xlabel('遅れた残差')
plt.ylabel('charge-off rate')
plt.savefig(r'fig\drate-res')