def build_model_pre(formula, metadata, family, custom_code_lengths): assert type(formula) == Formula assert type(metadata) == Metadata assert type(family) == Family assert set(allfactors(formula)).issubset(set(col.name for col in metadata.columns)) check_family_matches_response(formula, metadata, family) p = PopulationPre(coef_names(formula.terms, metadata, custom_code_lengths)) gs = [] for group in formula.groups: assert all(type(metadata.column(col)) == Categorical for col in group.columns), 'grouping columns must be a factor' coefs = coef_names(group.terms, metadata, custom_code_lengths) g = GroupPre(group.columns, metadata.levels(group.columns), coefs, group.corr and len(coefs) > 1) gs.append(g) response = ResponsePre(family, nonlocparams(family)) return ModelDescPre(p, gs, response)
def expand_columns(formula, cols): lookup = make_column_lookup(cols) return [ lookup.get(factor, RealValued(factor)) for factor in allfactors(formula) ]
def dummy_design(formula, metadata, N): assert type(formula) == Formula assert type(metadata) == dict assert set(allfactors(formula)).issubset(metadata.keys()) return makedata(formula, dummy_df(metadata, N))