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)
Beispiel #2
0
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