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
[('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