def test_derived_term_search(diabetes_data): model = Model(diabetes_data) model.add(random='age_grp|BP', categorical=['age_grp']) terms = model._match_derived_terms('age_grp|BP') names = set([t.name for t in terms]) assert names == {'1|BP', 'age_grp[T.1]|BP', 'age_grp[T.2]|BP'} term = model._match_derived_terms('1|BP')[0] assert term.name == '1|BP' # All of these should find nothing assert model._match_derived_terms('1|ZZZ') is None assert model._match_derived_terms('ZZZ|BP') is None assert model._match_derived_terms('BP') is None assert model._match_derived_terms('BP') is None
def test_derived_term_search(diabetes_data): model = Model(diabetes_data) model.add("BMI ~ 1", random="age_grp|BP", categorical=["age_grp"]) model.build(backend="pymc") terms = model._match_derived_terms("age_grp|BP") names = set([t.name for t in terms]) assert names == {"1|BP", "age_grp[T.1]|BP", "age_grp[T.2]|BP"} term = model._match_derived_terms("1|BP")[0] assert term.name == "1|BP" # All of these should find nothing assert model._match_derived_terms("1|ZZZ") is None assert model._match_derived_terms("ZZZ|BP") is None assert model._match_derived_terms("BP") is None assert model._match_derived_terms("BP") is None
def test_derived_term_search(diabetes_data): model = Model(diabetes_data) model.fit("BMI ~ 1 + (age_grp|BP)", categorical=["age_grp"], run=False) terms = model._match_derived_terms("age_grp|BP") names = set([t.name for t in terms]) # Since intercept is present, it uses treatment encoding lvls = sorted(list(diabetes_data["age_grp"].unique()))[1:] assert names == set(["1|BP"] + [f"age_grp[{lvl}]|BP" for lvl in lvls]) term = model._match_derived_terms("1|BP")[0] assert term.name == "1|BP" # All of these should find nothing assert model._match_derived_terms("1|ZZZ") is None assert model._match_derived_terms("ZZZ|BP") is None assert model._match_derived_terms("BP") is None assert model._match_derived_terms("BP") is None