def test_iid_unequal_equiv(): rs = RandomState(0) x = rs.standard_normal(500) rs1 = RandomState(0) bs1 = IIDBootstrap(x, random_state=rs1) rs2 = RandomState(0) bs2 = IndependentSamplesBootstrap(x, random_state=rs2) v1 = bs1.var(np.mean) v2 = bs2.var(np.mean) assert_allclose(v1, v2)
def test_iid_unequal_equiv(): rs = RandomState(0) x = rs.randn(500) rs1 = RandomState(0) bs1 = IIDBootstrap(x, random_state=rs1) rs2 = RandomState(0) bs2 = IndependentSamplesBootstrap(x, random_state=rs2) v1 = bs1.var(np.mean) v2 = bs2.var(np.mean) assert_allclose(v1, v2)
def test_iid_unequal_equiv(): rs = RandomState(0) x = rs.standard_normal(500) rs1 = RandomState(0) bs1 = IIDBootstrap(x, random_state=rs1) rs2 = RandomState(0) bs2 = IndependentSamplesBootstrap(x, random_state=rs2) v1 = bs1.var(np.mean) v2 = bs2.var(np.mean) assert_allclose(v1, v2) assert isinstance(bs2.index, tuple) assert isinstance(bs2.index[0], list) assert isinstance(bs2.index[0][0], np.ndarray) assert bs2.index[0][0].shape == x.shape
def test_cov(bs_setup): bs = IIDBootstrap(bs_setup.x) num_bootstrap = 10 cov = bs.cov(func=bs_setup.func, reps=num_bootstrap, recenter=False) bs.reset() results = np.zeros((num_bootstrap, 2)) count = 0 for data, _ in bs.bootstrap(num_bootstrap): results[count] = data[0].mean(axis=0) count += 1 errors = results - bs_setup.x.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) bs.reset() cov = bs.cov(func=bs_setup.func, recenter=True, reps=num_bootstrap) errors = results - results.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) bs = IIDBootstrap(bs_setup.x_df) cov = bs.cov(func=bs_setup.func, reps=num_bootstrap, recenter=False) bs.reset() var = bs.var(func=bs_setup.func, reps=num_bootstrap, recenter=False) bs.reset() results = np.zeros((num_bootstrap, 2)) count = 0 for data, _ in bs.bootstrap(num_bootstrap): results[count] = data[0].mean(axis=0) count += 1 errors = results - bs_setup.x.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) assert_allclose(var, np.diag(direct_cov)) bs.reset() cov = bs.cov(func=bs_setup.func, recenter=True, reps=num_bootstrap) errors = results - results.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov)
def test_cov(self): bs = IIDBootstrap(self.x) num_bootstrap = 10 cov = bs.cov(func=self.func, reps=num_bootstrap, recenter=False) bs.reset() results = np.zeros((num_bootstrap, 2)) count = 0 for data, _ in bs.bootstrap(num_bootstrap): results[count] = data[0].mean(axis=0) count += 1 errors = results - self.x.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) bs.reset() cov = bs.cov(func=self.func, recenter=True, reps=num_bootstrap) errors = results - results.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) bs = IIDBootstrap(self.x_df) cov = bs.cov(func=self.func, reps=num_bootstrap, recenter=False) bs.reset() var = bs.var(func=self.func, reps=num_bootstrap, recenter=False) bs.reset() results = np.zeros((num_bootstrap, 2)) count = 0 for data, _ in bs.bootstrap(num_bootstrap): results[count] = data[0].mean(axis=0) count += 1 errors = results - self.x.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov) assert_allclose(var, np.diag(direct_cov)) bs.reset() cov = bs.cov(func=self.func, recenter=True, reps=num_bootstrap) errors = results - results.mean(axis=0) direct_cov = errors.T.dot(errors) / num_bootstrap assert_allclose(cov, direct_cov)