def _params2cov(self, params, nobs): '''get autocovariance matrix from ARMA regression parameter ar parameters are assumed to have rhs parameterization ''' ar = np.r_[[1], -params[:self.nar]] ma = np.r_[[1], params[-self.nma:]] #print 'ar', ar #print 'ma', ma #print 'nobs', nobs autocov = arma_acovf(ar, ma, nobs=nobs) #print 'arma_acovf(%r, %r, nobs=%d)' % (ar, ma, nobs) #print autocov.shape #something is strange fixed in aram_acovf autocov = autocov[:nobs] sigma = toeplitz(autocov) return sigma
def _params2cov(self, params, nobs): '''get autocovariance matrix from ARMA regression parameter ar parameters are assumed to have rhs parameterization ''' ar = np.r_[[1], -params[:self.nar]] ma = np.r_[[1], params[-self.nma:]] #print 'ar', ar #print 'ma', ma #print 'nobs', nobs autocov = arma_acovf(ar, ma, nobs=nobs) #print 'arma_acovf(%r, %r, nobs=%d)' % (ar, ma, nobs) #print autocov.shape #something is strange fixed in aram_acovf autocov = autocov[:nobs] sigma = toeplitz(autocov) return sigma
ar1 = [1.0, -0.8] ar0 = [1.0, 0.0] ma1 = [1.0, 0.4] ma2 = [1.0, 0.4, 0.6] ma0 = [1.0, 0.0] comparefn = dict([("ma1", acovf_ma1), ("ma2", acovf_ma2), ("arma11", acovf_arma11), ("ar1", acovf_arma11)]) cases = [("ma1", (ar0, ma1)), ("ma2", (ar0, ma2)), ("arma11", (ar1, ma1)), ("ar1", (ar1, ma0))] for c, args in cases: ar, ma = args print print c, ar, ma myacovf = arma_acovf(ar, ma, nobs=10) myacf = arma_acf(ar, ma, nobs=10) if c[:2] == "ma": othacovf = comparefn[c](ma) else: othacovf = comparefn[c](ar, ma) print myacovf[:5] print othacovf[:5] # something broke again, # for high persistence case eg ar=0.99, nobs of IR has to be large # made changes to arma_acovf assert_array_almost_equal(myacovf, othacovf, 10) assert_array_almost_equal(myacf, othacovf / othacovf[0], 10) # from nitime.utils
ma1 = [1., 0.4] ma2 = [1., 0.4, 0.6] ma0 = [1., 0.] comparefn = dict([('ma1', acovf_ma1), ('ma2', acovf_ma2), ('arma11', acovf_arma11), ('ar1', acovf_arma11)]) cases = [('ma1', (ar0, ma1)), ('ma2', (ar0, ma2)), ('arma11', (ar1, ma1)), ('ar1', (ar1, ma0))] for c, args in cases: ar, ma = args print print c, ar, ma myacovf = arma_acovf(ar, ma, nobs=10) myacf = arma_acf(ar, ma, nobs=10) if c[:2] == 'ma': othacovf = comparefn[c](ma) else: othacovf = comparefn[c](ar, ma) print myacovf[:5] print othacovf[:5] #something broke again, #for high persistence case eg ar=0.99, nobs of IR has to be large #made changes to arma_acovf assert_array_almost_equal(myacovf, othacovf, 10) assert_array_almost_equal(myacf, othacovf / othacovf[0], 10) #from nitime.utils