【发布时间】:2020-01-10 08:08:36
【问题描述】:
我正在尝试使用 statsmodels 和 sklearn 执行多元线性回归,同时控制社会经济地位(年龄、性别、种族)等协变量。 我已经在SPSS中完成了,这很容易,因为我可以点击我想要控制的变量,但是我必须切换到python,并且不知道是否有任何函数可以让我这样做? 非常感谢!
【问题讨论】:
标签: python scikit-learn linear-regression statsmodels
我正在尝试使用 statsmodels 和 sklearn 执行多元线性回归,同时控制社会经济地位(年龄、性别、种族)等协变量。 我已经在SPSS中完成了,这很容易,因为我可以点击我想要控制的变量,但是我必须切换到python,并且不知道是否有任何函数可以让我这样做? 非常感谢!
【问题讨论】:
标签: python scikit-learn linear-regression statsmodels
如果我对您的问题的理解正确,那么您是在尝试弄清楚如何编写多元回归代码?
你想做的事:
import statsmodels.formula.api as smf
results = smf.ols('y ~ x1 + age', data=df).fit()
print(results.summary())
这会将 y 回归到您的 x1 和年龄。
如果您想包含性别或种族等内容,则需要引入虚拟变量。 Statsmodels 可以通过在虚拟变量周围编写 C() 来快速做到这一点。这使变量成为类别变量(请记住,数据中的第一个种族或性别将是省略的变量)。
results_2 = smf.ols('y ~ x1 + age + C(ethnicity) + C(gender)', data=df).fit()
print(results_2.summary())
希望对您有所帮助。
【讨论】: