Example #1
0
print 'is AR({0}) model stable: {1}'.format(my_res_ar['maxlag'], is_stable(my_res_ar['roots']))

# Cross-checks
print "\
AR({12}).fit.params={0} \n MY_AR({13}) params={1} \n\
AR({12}).fit.llf={2} \n MY_AR({13}) llf={3} \n\
AR({12}).fit.nobs={4} \n MY_AR({13}) nobs={5} \n\
AR({12}).fit.cov_params(scale=ols_scale)={6} \n MY_AR({13}) cov_params={7} \n\
AR({12}).fit.bse={8} \n MY_AR({13}) bse={9} \n\
AR({12}).fit.tvalues={10} \n MY_AR({13}) tvalue={11} \n\
AR({12}).fit.k_ar={12} \n MY_AR({13}) maxlag={13} \n\
".format(
    sm_res_ar.params, my_res_ar['params'],
    sm_res_ar.llf, np.array(my_res_ar['llf']),
    sm_res_ar.nobs, my_res_ar['nobs'],
    sm_res_ar.cov_params(scale=my_res_ar['ols_scale']), my_res_ar['cov_params'],
    sm_res_ar.bse, my_res_ar['bse'],
    sm_res_ar.tvalues, my_res_ar['tvalue'],
    sm_res_ar.k_ar, my_res_ar['maxlag']
)

tau = 1. / 252.  # ok for daily frequency data

# AR(1)
my_C = my_res_ar['params'][0]
my_B = my_res_ar['params'][1]
my_theta = - np.log(my_B) / tau
my_mu_e = my_C / (1. - my_B)
my_sigma_ou = np.sqrt((2 * my_theta / (1 - np.exp(-2 * my_theta * tau))) * my_res_ar['sigma'])
my_sigma_e = my_sigma_ou / np.sqrt(2 * my_theta)
my_halflife = np.log(2) / my_theta