Statsmodels:编写公式的简短方法

问题描述 投票:1回答:2

使用statesmodels的逻辑回归模型:

log_reg = st.logit(formula = 'label ~ pregnant + glucose + bp + insulin + bmi + pedigree + age', data=pima).fit()

是否有任何简短的方法来编写公式的第二部分(怀孕+葡萄糖+ bp +胰岛素+ bmi +血统+年龄)?这里必须明确提到所有列。如果列数超过100列,则难以编写,而且语句也会很长。

python statsmodels patsy
2个回答
0
投票

公式没有特定的快捷方式。

您可以使用python字符串操作来构建公式,例如基于pandas数据帧列名。

或者直接使用数组或数据框。但即便如此,如果您想要人类可读的输出,例如在summary()中,您还需要一个名单。如果您只需要预测,那么没有变量名的数组就很有用。


0
投票

如果df是pd.DataFrame,并且y是目标变量,则此函数返回您要查找的公式的字符串。

def formula_from_cols(df, y):
    return y + ' ~ ' + ' + '.join([col for col in df.columns if not col==y])
© www.soinside.com 2019 - 2024. All rights reserved.