def test_random(self): a = (1, 2) sigma = .1 rho = 0 r = rarlognormal(a, sigma, rho, size=1000) assert_array_almost_equal(np.median(r, axis=0), [1, 2], 1) rho = .8 sigma = .1 r = rarlognormal(1, sigma, rho, size=1000) corr = utils.autocorr(np.log(r)) assert_almost_equal(corr, rho, 1) assert_almost_equal(r.std(), sigma / sqrt(1 - rho**2), 1)
def test_random(self): a = (1,2) sigma = .1 rho = 0 r = rarlognormal(a, sigma, rho, size=1000) assert_array_almost_equal(np.median(r, axis=0), [1,2],1) rho =.8 sigma = .1 r = rarlognormal(1, sigma, rho, size=1000) corr = utils.autocorr(np.log(r)) assert_almost_equal(corr, rho, 1) assert_almost_equal(r.std(), sigma/sqrt(1-rho**2),1)
def iat(x, maxlag=None): """Calculate the integrated autocorrelation time (IAT), given the trace from a Stochastic.""" if not maxlag: # Calculate maximum lag to which autocorrelation is calculated maxlag = _find_max_lag(x) acr = [autocorr(x, lag) for lag in range(1, maxlag+1)] # Calculate gamma values gammas = [(acr[2*i]+acr[2*i+1]) for i in range(maxlag//2)] cut = _cut_time(gammas) if cut+1 == len(gammas): print_("Not enough lag to calculate IAT") return np.sum(2*gammas[:cut+1]) - 1.0
def iat(x, maxlag=None): """Calculate the integrated autocorrelation time (IAT), given the trace from a Stochastic.""" if not maxlag: # Calculate maximum lag to which autocorrelation is calculated maxlag = _find_max_lag(x) acr = [autocorr(x, lag) for lag in range(1, maxlag + 1)] # Calculate gamma values gammas = [(acr[2 * i] + acr[2 * i + 1]) for i in range(maxlag // 2)] cut = _cut_time(gammas) if cut + 1 == len(gammas): print_("Not enough lag to calculate IAT") return np.sum(2 * gammas[:cut + 1]) - 1.0