Source code for regtools.models

import statsmodels.api as sm

from regtools.linmodels.bindings.modelstr import _is_fama_macbeth_str


[docs]def get_model_class_by_string(model_string): if _is_logit_str(model_string): return sm.Logit elif _is_probit_str(model_string): return sm.Probit elif _is_ols_str(model_string): return sm.OLS else: raise ValueError(f'model string does not signify ols, probit, logit, or fama macbeth. got {model_string}')
[docs]def get_model_name_by_string(model_string: str) -> str: if _is_logit_str(model_string): return 'Logit' elif _is_probit_str(model_string): return 'Probit' elif _is_ols_str(model_string): return 'OLS' elif _is_fama_macbeth_str(model_string): return 'Fama-Macbeth' else: raise ValueError(f'model string does not signify ols, probit, logit, or fama macbeth. got {model_string}')
def _is_probit_str(model_string): return model_string.lower().strip() in ('probit','p','prob','prbt') def _is_logit_str(model_string): return model_string.lower().strip() in ('logit','l','log','lgt') def _is_ols_str(model_string): return model_string.lower().strip() in ('ols','o','reg','least squares', 'ordinary least squares') # Note: add model str functions here as they are created. This will feed into _is_linearmodels_str model_str_funcs = [ _is_ols_str, _is_logit_str, _is_probit_str ] def _is_regular_reg_str(model_string: str) -> bool: return any([is_model_str_func(model_string) for is_model_str_func in model_str_funcs])