Python 如何使用statsmodels和sklearn在回归中添加控制变量?

Python 如何使用statsmodels和sklearn在回归中添加控制变量?,python,scikit-learn,linear-regression,statsmodels,Python,Scikit Learn,Linear Regression,Statsmodels,我试图使用statsmodels和sklearn进行多元线性回归,同时控制社会经济地位(年龄、性别、种族)等协变量。 我已经在SPSS中完成了这项工作,这相当简单,因为我可以只单击我想要控制的变量,但我必须切换到python,并且不知道是否有任何函数允许我这样做? 非常感谢 如果我正确理解了你的问题,你是想知道如何编写多元回归 您将要执行以下操作: import statsmodels.formula.api as smf results = smf.ols('y ~ x1 + age', da

我试图使用statsmodels和sklearn进行多元线性回归,同时控制社会经济地位(年龄、性别、种族)等协变量。 我已经在SPSS中完成了这项工作,这相当简单,因为我可以只单击我想要控制的变量,但我必须切换到python,并且不知道是否有任何函数允许我这样做?
非常感谢

如果我正确理解了你的问题,你是想知道如何编写多元回归

您将要执行以下操作:

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())