首页 > 解决方案 > 如何用一个热编码变量拟合统计模型

问题描述

我的数据框最初看起来像这样:

 item_id              title     user_id   gender   .....
0        1   Toy Story (1995)   308        M
1        4  Get Shorty (1995)   308        M
2        5     Copycat (1995)   308        M

比我运行混合效果回归,效果很好:

import statsmodels.api as sm
import statsmodels.formula.api as smf

md = smf.mixedlm("rating ~ C(gender) + C(genre) + C(gender)*C(genre)", data, groups=data["user_id"])
mdf=md.fit()
print(mdf.summary())

但是,之后我对性别变量进行了一次热编码,数据框变成了这样:

 item_id              title     user_id   gender_M     gender_F   .....
0        1   Toy Story (1995)   308        1              0
1        4  Get Shorty (1995)   308        1              0
2        5     Copycat (1995)   308        1              0

像这样运行模型是否正确(用gender_M和gender_F改变性别)?是一样的吗?或者,还有更好的方法?

md = smf.mixedlm("rating ~ gender_M + gender_F + C(genre) + C(gender)*C(genre)", data, groups=data["user_id"])
mdf=md.fit()
print(mdf.summary())

标签: pythonpandasone-hot-encoding

解决方案


推荐阅读