首页 > 解决方案 > 如何在 python 中的 GLM 中添加交互项

问题描述

我可以使用以下语法运行 GLM;

y_train = dt_glm['Eligible Revenue']
x_train = dt_glm[['Upfront Contra','Distribution Inventory Eurofit Net USD','Upfront Contra','6U','BNB']]
model_glm = sm.GLM(y_train , x_train, family=sm.families.Gamma())
print(model_glm.fit().summary())

但我也想添加我无法添加的交互项。

我尝试了以下方式,但它抛出了语法错误

x_train = dt_glm[['Upfront Contra'*'Distribution Inventory Eurofit Net USD','Upfront Contra','6U','BNB']]

标签: pythonglminteraction

解决方案


您可以在 glm api 中使用“:”。下面是一个使用帮助页面COUTAX中的数据集的示例,其中和之间的交互项UNEMPF指定为 COUTAX:UNEMPF

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

data = sm.datasets.scotland.load(as_pandas=True)
df = data.data

gamma_model = smf.glm(formula='YES ~ COUTAX + UNEMPF + COUTAX:UNEMPF + MOR',
data=df, family=sm.families.Gamma())

gamma_model.fit()

推荐阅读