def test_ci(self): res_wls = self.res_wls prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf = pred_res.summary_frame() col_names = [ 'mean', 'mean_se', 'mean_ci_lower', 'mean_ci_upper', 'obs_ci_lower', 'obs_ci_upper' ] assert_equal(sf.columns.tolist(), col_names) pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf2 = pred_res2.summary_frame() assert_equal(sf2.columns.tolist(), col_names)
def test_ci(self): res_wls = self.res_wls prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf = pred_res.summary_frame() col_names = [ 'mean', 'mean_se', 'mean_ci_lower', 'mean_ci_upper', 'obs_ci_lower', 'obs_ci_upper' ] assert_equal(sf.columns.tolist(), col_names) pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf2 = pred_res2.summary_frame() assert_equal(sf2.columns.tolist(), col_names) # check that list works, issue 4437 x = res_wls.model.exog.mean(0) pred_res3 = res_wls.get_prediction(x) ci3 = pred_res3.conf_int(obs=True) pred_res3b = res_wls.get_prediction(x.tolist()) ci3b = pred_res3b.conf_int(obs=True) assert_allclose(pred_res3b.se_obs, pred_res3.se_obs, rtol=1e-13) assert_allclose(ci3b, ci3, rtol=1e-13) res_df = pred_res3b.summary_frame() assert_equal(res_df.index.values, [0]) x = res_wls.model.exog[-2:] pred_res3 = res_wls.get_prediction(x) ci3 = pred_res3.conf_int(obs=True) pred_res3b = res_wls.get_prediction(x.tolist()) ci3b = pred_res3b.conf_int(obs=True) assert_allclose(pred_res3b.se_obs, pred_res3.se_obs, rtol=1e-13) assert_allclose(ci3b, ci3, rtol=1e-13) res_df = pred_res3b.summary_frame() assert_equal(res_df.index.values, [0, 1])
def test_ci(self): res_wls = self.res_wls prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf = pred_res.summary_frame() col_names = ['mean', 'mean_se', 'mean_ci_lower', 'mean_ci_upper', 'obs_ci_lower', 'obs_ci_upper'] assert_equal(sf.columns.tolist(), col_names) pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf2 = pred_res2.summary_frame() assert_equal(sf2.columns.tolist(), col_names) # check that list works, issue 4437 x = res_wls.model.exog.mean(0) pred_res3 = res_wls.get_prediction(x) ci3 = pred_res3.conf_int(obs=True) pred_res3b = res_wls.get_prediction(x.tolist()) ci3b = pred_res3b.conf_int(obs=True) assert_allclose(pred_res3b.se_obs, pred_res3.se_obs, rtol=1e-13) assert_allclose(ci3b, ci3, rtol=1e-13) res_df = pred_res3b.summary_frame() assert_equal(res_df.index.values, [0]) x = res_wls.model.exog[-2:] pred_res3 = res_wls.get_prediction(x) ci3 = pred_res3.conf_int(obs=True) pred_res3b = res_wls.get_prediction(x.tolist()) ci3b = pred_res3b.conf_int(obs=True) assert_allclose(pred_res3b.se_obs, pred_res3.se_obs, rtol=1e-13) assert_allclose(ci3b, ci3, rtol=1e-13) res_df = pred_res3b.summary_frame() assert_equal(res_df.index.values, [0, 1])
def test_ci(self): res_wls = self.res_wls prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf = pred_res.summary_frame() col_names = ['mean', 'mean_se', 'mean_ci_lower', 'mean_ci_upper', 'obs_ci_lower', 'obs_ci_upper'] assert_equal(sf.columns.tolist(), col_names) pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) sf2 = pred_res2.summary_frame() assert_equal(sf2.columns.tolist(), col_names)
beta = [5., 0.5, -0.01] sig = 0.5 w = np.ones(nsample) w[nsample * 6 / 10:] = 3 y_true = np.dot(X, beta) e = np.random.normal(size=nsample) y = y_true + sig * w * e X = X[:, [0, 1]] # ### WLS knowing the true variance ratio of heteroscedasticity mod_wls = WLS(y, X, weights=1. / w) res_wls = mod_wls.fit() prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) from numpy.testing import assert_allclose assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) print pred_res.summary_frame().head() pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) from numpy.testing import assert_allclose assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13)
w[nsample * 6/10:] = 3 y_true = np.dot(X, beta) e = np.random.normal(size=nsample) y = y_true + sig * w * e X = X[:,[0,1]] # ### WLS knowing the true variance ratio of heteroscedasticity mod_wls = WLS(y, X, weights=1./w) res_wls = mod_wls.fit() prstd, iv_l, iv_u = wls_prediction_std(res_wls) pred_res = get_prediction(res_wls) ci = pred_res.conf_int(obs=True) from numpy.testing import assert_allclose assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) print(pred_res.summary_frame().head()) pred_res2 = res_wls.get_prediction() ci2 = pred_res2.conf_int(obs=True) from numpy.testing import assert_allclose assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13)