示例#1
0
# VAR fit (no constant term)
results = VAR(mdata).fit(ic='bic', verbose=True, trend='nc')
results.plot()
print(results.summary())
# Selected lag order
print('Selected Order:', results.k_ar)

# AIC & BIC of different lags
for p in range(8):
    res = VAR(mdata).fit(p, trend='nc')
    print(res.k_ar, '&', round(res.aic, 6), '&', round(res.bic, 6), '\\\\')

# Stability
print(results.is_stable(True))

# Residual normality
print(results.test_normality().summary())

# Granger causality
names = ['r', 'IndProd', 'Unemp']
for n in names:
    print('Granger for', n)
    # Factor `n` caused by its complement
    print(results.test_causality(n, list(set(names) - set(n))).summary())

# Impulse Response Analysis
irf = results.irf(10)
irf.plot(orth=False)

plt.show()
示例#2
0
# =============================================================================
# Granger causality test
# =============================================================================
grangercausalitytests(df1.loc[:, ['atap', 'asvi']], 5)
grangercausalitytests(df1.loc[:, ['asvi', 'atap']], 5)

# =============================================================================
# Impulse response - daily
# =============================================================================
df1_tmp = df1.loc[:, ['asvi', 'atap', 'ret']]

results = VAR(df1_tmp).fit(5)
# results.plot()
# results.plot_acorr()

irf = results.irf(10)
fig = irf.plot(orth=True)
out_dir = '/Users/leihao/Documents/ATAP/'
fig.savefig(out_dir + 'daily13_impulse_final_norm_nooutlier.png', dpi=400)

# =============================================================================
# Merge: 10 year T-Note
# =============================================================================
tmp1 = pd.merge(df_tap.tap,
                df_gsvi_bond.Bonds,
                how='inner',
                left_index=True,
                right_index=True)
df1 = pd.merge(tmp1,
               df10_daily.ret,
               how='inner',