def test_doubleml_exception_confint(): dml_plr_confint = DoubleMLPLR(dml_data, ml_g, ml_m) msg = 'joint must be True or False. Got 1.' with pytest.raises(TypeError, match=msg): dml_plr_confint.confint(joint=1) msg = "The confidence level must be of float type. 5% of type <class 'str'> was passed." with pytest.raises(TypeError, match=msg): dml_plr_confint.confint(level='5%') msg = r'The confidence level must be in \(0,1\). 0.0 was passed.' with pytest.raises(ValueError, match=msg): dml_plr_confint.confint(level=0.) msg = r'Apply fit\(\) before confint\(\).' with pytest.raises(ValueError, match=msg): dml_plr_confint.confint() msg = r'Apply fit\(\) & bootstrap\(\) before confint\(joint=True\).' with pytest.raises(ValueError, match=msg): dml_plr_confint.confint(joint=True) dml_plr_confint.fit() # error message should still appear till bootstrap was applied as well with pytest.raises(ValueError, match=msg): dml_plr_confint.confint(joint=True) dml_plr_confint.bootstrap() df_ci = dml_plr_confint.confint(joint=True) assert isinstance(df_ci, pd.DataFrame)
def test_doubleml_exception_p_adjust(): dml_plr_p_adjust = DoubleMLPLR(dml_data, ml_g, ml_m) msg = r'Apply fit\(\) before p_adjust\(\).' with pytest.raises(ValueError, match=msg): dml_plr_p_adjust.p_adjust() dml_plr_p_adjust.fit() msg = r'Apply fit\(\) & bootstrap\(\) before p_adjust' with pytest.raises(ValueError, match=msg): dml_plr_p_adjust.p_adjust(method='romano-wolf') dml_plr_p_adjust.bootstrap() p_val = dml_plr_p_adjust.p_adjust(method='romano-wolf') assert isinstance(p_val, pd.DataFrame) msg = "The p_adjust method must be of str type. 0.05 of type <class 'float'> was passed." with pytest.raises(TypeError, match=msg): dml_plr_p_adjust.p_adjust(method=0.05)
def test_doubleml_exception_bootstrap(): dml_plr_boot = DoubleMLPLR(dml_data, ml_g, ml_m) msg = r'Apply fit\(\) before bootstrap\(\).' with pytest.raises(ValueError, match=msg): dml_plr_boot.bootstrap() dml_plr_boot.fit() msg = 'Method must be "Bayes", "normal" or "wild". Got Gaussian.' with pytest.raises(ValueError, match=msg): dml_plr_boot.bootstrap(method='Gaussian') msg = "The number of bootstrap replications must be of int type. 500 of type <class 'str'> was passed." with pytest.raises(TypeError, match=msg): dml_plr_boot.bootstrap(n_rep_boot='500') msg = 'The number of bootstrap replications must be positive. 0 was passed.' with pytest.raises(ValueError, match=msg): dml_plr_boot.bootstrap(n_rep_boot=0)
n_treat = 1 n_rep = 2 n_folds = 3 n_obs = 100 n_rep_boot = 314 plr_dml1 = DoubleMLPLR(dml_data_plr, Lasso(), Lasso(), dml_procedure='dml1', n_rep=n_rep, n_folds=n_folds) plr_dml1.fit() plr_dml1.bootstrap(n_rep_boot=n_rep_boot) pliv_dml1 = DoubleMLPLIV(dml_data_pliv, Lasso(), Lasso(), Lasso(), dml_procedure='dml1', n_rep=n_rep, n_folds=n_folds) pliv_dml1.fit() pliv_dml1.bootstrap(n_rep_boot=n_rep_boot) irm_dml1 = DoubleMLIRM(dml_data_irm, Lasso(), LogisticRegression(), dml_procedure='dml1',