存在分类变量时分别利用SPSS和python做多元线性回归
程序员文章站
2022-04-27 12:21:39
...
1. SPSS
当存在分类变量时,需要首先处理成多个哑变量,例如将年龄分成三个:age<18, age18_60, age>60。
然后在SPSS里纳入除了ref的所有哑变量,例如我们要将18-60作为参考组,就纳入age<18和age>60,不要纳入age18-60。
首先可以选择stepwise进行特征筛选建模。但是勾选逐步后,不能enable Bootstrap。所以可以分两步走,第一步逐步来筛选变量。
然后根据要纳入的变量,再执行一次回归,选择进入并且勾选bootstrap。
2. Python
python中的statsmodels可以
from statsmodels.formula.api import ols
formula = f"DAT_Class~C(Sex)+C(年龄_分类)+C(Antibiotic_usage)+C(Tumor_presence)+C(Trans)+贫血+消化+低血容量+感染+凝血障碍+肺炎+脓毒血症+休克+急性白血病+糖尿病+早产儿+const"
df = sm.add_constant(df)
model = ols(formula, data=df).fit()
model.summary()
利用这个方式也可以对分类变量指定参考组。例如指定年龄的参考组为18-60:
formula = f"DAT_Class~C(Sex)+C(年龄_分类, Treatment(reference='18-60'))+C(Antibiotic_usage)+C(Tumor_presence)+C(Trans)+贫血+消化+低血容量+感染+凝血障碍+肺炎+脓毒血症+休克+急性白血病+糖尿病+早产儿+const"
ref: https://www.sohu.com/a/211917960_489312