def exampletest(): from scikits.statsmodels.sandbox import tsa arrep = tsa.arma_impulse_response(res_armarep.ma, res_armarep.ar, nobs=21)[1:] marep = tsa.arma_impulse_response(res_armarep.ar, res_armarep.ma, nobs=21)[1:] assert_array_almost_equal(res_armarep.marep.ravel(), marep, 14) #difference in sign convention to matlab for AR term assert_array_almost_equal(-res_armarep.arrep.ravel(), arrep, 14)
def msear_err(arma, ar_des): ar, ma = np.r_[1, arma[:p-1]], np.r_[1, arma[p-1:]] ar_approx = tsa.arma_impulse_response(ma, ar, n) ## print ar,ma ## print ar_des.shape, ar_approx.shape ## print ar_des ## print ar_approx return (ar_des - ar_approx) #((ar - ar_approx)**2).sum()
def test_arma_impulse_response(): arrep = tsa.arma_impulse_response(armarep.ma, armarep.ar, nobs=21)[1:] marep = tsa.arma_impulse_response(armarep.ar, armarep.ma, nobs=21)[1:] assert_array_almost_equal(armarep.marep.ravel(), marep, 14) #difference in sign convention to matlab for AR term assert_array_almost_equal(-armarep.arrep.ravel(), arrep, 14)
def test_fi(): #test identity of ma and ar representation of fi lag polynomial n = 100 mafromar = tsa.arma_impulse_response(lpol_fiar(0.4, n=n), [1], n) assert_array_almost_equal(mafromar, lpol_fima(0.4, n=n), 13)
-0.00410998, -0.00383598, -0.00359188, -0.00337324, -0.00317647, -0.00299859, -0.00283712, -0.00269001, -0.00255551, -0.00243214, -0.00231864]) >>> # verified for points [[5,10,20,25]] at 4 decimals with Bhardwaj, Swanson, Journal of Eonometrics 2006 ''' print lpol_fiar(0.4, n=20) print lpol_fima(-0.4, n=20) print np.sum((lpol_fima(-0.4, n=n)[1:] + riinv[1:])**2) #different signs print np.sum((lpol_fiar(0.4, n=n)[1:] - riinv[1:])**2) #corrected signs test_fi() ar_true = [1, -0.4] ma_true = [1, 0.5] ar_desired = tsa.arma_impulse_response(ma_true, ar_true) ar_app, ma_app, res = ar2arma(ar_desired, 2,1, n=100, mse='ar', start = [0.1]) print ar_app, ma_app ar_app, ma_app, res = ar2arma(ar_desired, 2,2, n=100, mse='ar', start = [-0.1, 0.1]) print ar_app, ma_app ar_app, ma_app, res = ar2arma(ar_desired, 2,3, n=100, mse='ar')#, start = [-0.1, 0.1]) print ar_app, ma_app slow = 0 if slow: ar_desired = lpol_fiar(0.4, n=100) ar_app, ma_app, res = ar2arma(ar_desired, (3,1), n=100, mse='ar')#, start = [-0.1, 0.1]) print ar_app, ma_app ar_app, ma_app, res = ar2arma(ar_desired, (10,10), n=100, mse='ar')#, start = [-0.1, 0.1]) print ar_app, ma_app