def test_compare_arma(): #this is a preliminary test to compare arma_kf, arma_cond_ls and arma_cond_mle #the results returned by the fit methods are incomplete #for now without random.seed #np.random.seed(9876565) x = fa.ArmaFft([1, -0.5], [1., 0.4], 40).generate_sample(size=200, burnin=1000) # this used kalman filter through descriptive # d = ARMA(x) # d.fit((1,1), trend='nc') # dres = d.res modkf = ARMA(x) ##rkf = mkf.fit((1,1)) ##rkf.params reskf = modkf.fit((1,1), trend='nc', disp=-1) dres = reskf modc = Arma(x) resls = modc.fit(order=(1,1)) rescm = modc.fit_mle(order=(1,1), start_params=[0.4,0.4, 1.], disp=0) #decimal 1 corresponds to threshold of 5% difference #still different sign corrcted #assert_almost_equal(np.abs(resls[0] / d.params), np.ones(d.params.shape), decimal=1) assert_almost_equal(resls[0] / dres.params, np.ones(dres.params.shape), decimal=1) #rescm also contains variance estimate as last element of params #assert_almost_equal(np.abs(rescm.params[:-1] / d.params), np.ones(d.params.shape), decimal=1) assert_almost_equal(rescm.params[:-1] / dres.params, np.ones(dres.params.shape), decimal=1)
def setupClass(cls): endog = y_arma[:, 11] cls.res1 = ARMA(endog).fit(order=(0, 2), trend="c", method="css", disp=-1) cls.res2 = results_arma.Y_arma02c("css")
def setupClass(cls): endog = y_arma[:,2] cls.res1 = ARMA(endog).fit(order=(4,1), trend='nc', disp=-1) (cls.res1.forecast_res, cls.res1.forecast_err, confint) = cls.res1.forecast(10) cls.res2 = results_arma.Y_arma41() cls.decimal_maroots = DECIMAL_3
def setupClass(cls): endog = y_arma[:, 7] cls.res1 = ARMA(endog).fit(order=(1, 4), trend="c", disp=-1) cls.res2 = results_arma.Y_arma14c() if fast_kalman: cls.decimal_t = 0 cls.decimal_cov_params -= 1
def setupClass(cls): endog = y_arma[:,4] cls.res1 = ARMA(endog).fit(order=(5,0), method="css", trend='nc', disp=-1) cls.res2 = results_arma.Y_arma50("css") cls.decimal_t = 0 cls.decimal_llf = DECIMAL_1 # looks like rounding error?
def setupClass(cls): endog = y_arma[:,9] cls.res1 = ARMA(endog).fit(order=(2,2), trend="c", method="css", disp=-1) cls.res2 = results_arma.Y_arma22c("css") cls.decimal_t = 0 cls.decimal_pvalues = DECIMAL_1
def setupClass(cls): endog = y_arma[:,1] cls.res1 = ARMA(endog).fit(order=(1,4), method="css", trend='nc', disp=-1) cls.res2 = results_arma.Y_arma14("css") cls.decimal_fittedvalues = DECIMAL_3 cls.decimal_resid = DECIMAL_3 cls.decimal_t = DECIMAL_1
def setupClass(cls): endog = y_arma[:, 0] cls.res1 = ARMA(endog).fit(order=(1, 1), method="css", trend='nc', disp=-1) cls.res2 = results_arma.Y_arma11("css") cls.decimal_t = DECIMAL_1
def setupClass(cls): endog = y_arma[:,10] cls.res1 = ARMA(endog).fit(order=(5,0), trend="c", method="css", disp=-1) cls.res2 = results_arma.Y_arma50c("css") cls.decimal_t = DECIMAL_1 cls.decimal_params = DECIMAL_3 cls.decimal_cov_params = DECIMAL_2
def setupClass(cls): endog = y_arma[:,2] cls.res1 = ARMA(endog).fit(order=(4,1), method="css", trend='nc', disp=-1) cls.res2 = results_arma.Y_arma41("css") cls.decimal_t = DECIMAL_1 cls.decimal_pvalues = 0 cls.decimal_cov_params = DECIMAL_3 cls.decimal_maroots = DECIMAL_1
def setupClass(cls): endog = y_arma[:,8] cls.res1 = ARMA(endog).fit(order=(4,1), trend="c", method="css", disp=-1) cls.res2 = results_arma.Y_arma41c("css") cls.decimal_t = DECIMAL_1 cls.decimal_cov_params = DECIMAL_1 cls.decimal_maroots = DECIMAL_3 cls.decimal_bse = DECIMAL_1
def setupClass(cls): endog = y_arma[:, 8] cls.res1 = ARMA(endog).fit(order=(4, 1), trend="c", disp=-1) cls.res2 = results_arma.Y_arma41c() cls.decimal_cov_params = DECIMAL_3 cls.decimal_fittedvalues = DECIMAL_3 cls.decimal_resid = DECIMAL_3 if fast_kalman: cls.decimal_cov_params -= 2 cls.decimal_bse -= 1
def setupClass(cls): endog = y_arma[:, 11] cls.res1 = ARMA(endog).fit(order=(0, 2), trend="c", disp=-1) cls.res2 = results_arma.Y_arma02c() if fast_kalman: cls.decimal_t -= 1
def setupClass(cls): endog = y_arma[:, 10] cls.res1 = ARMA(endog).fit(order=(5, 0), trend="c", disp=-1) cls.res2 = results_arma.Y_arma50c()
def setupClass(cls): endog = y_arma[:,0] cls.res1 = ARMA(endog).fit(order=(1,1), trend='nc', disp=-1) (cls.res1.forecast_res, cls.res1.forecast_err, confint) = cls.res1.forecast(10) cls.res2 = results_arma.Y_arma11()
def setupClass(cls): endog = y_arma[:, 6] cls.res1 = ARMA(endog).fit(order=(1, 1), trend="c", disp=-1) cls.res2 = results_arma.Y_arma11c()
def setupClass(cls): endog = y_arma[:, 3] cls.res1 = ARMA(endog).fit(order=(2, 2), trend='nc', disp=-1) cls.res2 = results_arma.Y_arma22() if fast_kalman: cls.decimal_t -= 1
plt.figure() plt.plot(modc.error_estimate) #plt.show() from scikits.statsmodels.miscmodels.tmodel import TArma modct = TArma(x) reslst = modc.fit(order=(1,1)) print reslst[0] rescmt = modct.fit_mle(order=(1,1), start_params=[-0.4,0.4, 10, 1.],maxiter=500, maxfun=500) print rescmt.params from scikits.statsmodels.tsa.arima_model import ARMA mkf = ARMA(x) ##rkf = mkf.fit((1,1)) ##rkf.params rkf = mkf.fit((1,1), trend='nc') print rkf.params from scikits.statsmodels.tsa.arima_process import arma_generate_sample np.random.seed(12345) y_arma22 = arma_generate_sample([1.,-.85,.35, -0.1],[1,.25,-.7], nsample=1000) ##arma22 = ARMA(y_arma22) ##res22 = arma22.fit(trend = 'nc', order=(2,2)) ##print 'kf ',res22.params ##res22css = arma22.fit(method='css',trend = 'nc', order=(2,2)) ##print 'css', res22css.params mod22 = Arma(y_arma22) resls22 = mod22.fit(order=(2,2))
def setupClass(cls): endog = y_arma[:,10] cls.res1 = ARMA(endog).fit(order=(5,0), trend="c", disp=-1) (cls.res1.forecast_res, cls.res1.forecast_err, confint) = cls.res1.forecast(10) cls.res2 = results_arma.Y_arma50c()
def test_reset_trend(): endog = y_arma[:, 0] mod = ARMA(endog) res1 = mod.fit(order=(1, 1), trend="c", disp=-1) res2 = mod.fit(order=(1, 1), trend="nc", disp=-1) assert_equal(len(res1.params), len(res2.params) + 1)
def setupClass(cls): endog = y_arma[:, 2] cls.res1 = ARMA(endog).fit(order=(4, 1), trend='nc', disp=-1) cls.res2 = results_arma.Y_arma41() cls.decimal_maroots = DECIMAL_3
def test_reset_trend(): endog = y_arma[:,0] mod = ARMA(endog) res1 = mod.fit(order=(1,1), trend="c", disp=-1) res2 = mod.fit(order=(1,1), trend="nc", disp=-1) assert_equal(len(res1.params), len(res2.params)+1)
plt.figure() plt.plot(modc.error_estimate) # plt.show() from scikits.statsmodels.miscmodels.tmodel import TArma modct = TArma(x) reslst = modc.fit(order=(1, 1)) print reslst[0] rescmt = modct.fit_mle(order=(1, 1), start_params=[-0.4, 0.4, 10, 1.0], maxiter=500, maxfun=500) print rescmt.params from scikits.statsmodels.tsa.arima_model import ARMA mkf = ARMA(x) ##rkf = mkf.fit((1,1)) ##rkf.params rkf = mkf.fit((1, 1), trend="nc") print rkf.params from scikits.statsmodels.tsa.arima_process import arma_generate_sample np.random.seed(12345) y_arma22 = arma_generate_sample([1.0, -0.85, 0.35, -0.1], [1, 0.25, -0.7], nsample=1000) ##arma22 = ARMA(y_arma22) ##res22 = arma22.fit(trend = 'nc', order=(2,2)) ##print 'kf ',res22.params ##res22css = arma22.fit(method='css',trend = 'nc', order=(2,2)) ##print 'css', res22css.params mod22 = Arma(y_arma22)