如何 运行 Python 中的 GLM 伽马回归与类似 R 的公式
How to run a GLM gamma regression in Python with R like formulas
我是 运行 Python 中的 GLM 回归,使用以下代码使用 statsmodels。我特别想实现一个 log link 函数。我可以使用 Statsmodels 编写类似 R 的公式。
以下代码成功运行但抛出弃用警告。任何人都可以建议如何摆脱这个警告。感谢您的帮助。
代码:
mod = smf.glm(formula='y ~ C(x1) + C(x2) + C(x3) + x4 + x5', data=data,family=sm.families.Gamma(link=sm.families.links.log))
reg = mod.fit()
print(reg.summary())
警告:
弃用警告:不推荐使用 link class 作为参数调用 Family(..)。
请改用 link class 的实例。
我正在处理同样的问题。我注意到,如果我删除 () 内的所有内容,结果是完全一样的,没有错误。模型摘要具有相同的值并且 AIC 值相同。
带有警告的代码:
glm_poisson_log = sm.GLM(endog, exog, family = sm.families.Poisson(sm.families.links.log))
results = glm_poisson_log.fit()
没有警告的代码:
glm_poisson_log = sm.GLM(endog, exog, family = sm.families.Poisson **()**)
results = glm_poisson_log.fit()
尝试删除链接信息。
解决方法如下:
sm.families.family.Gamma.links
link_g = sm.genmod.families.links.log
link_g
fit = sm.GLM.from_formula(formula, data=df, family=sm.families.Gamma(link_g())).fit()
我认为以上任何一个答案都不正确。正确的方法,按照警告的指示,是使用括号内link函数的对应实例:
mod = smf.glm(formula='y ~ C(x1) + C(x2) + C(x3) + x4 + x5', data=data,family=sm.families.Gamma(link=sm.families.links.log()))
reg = mod.fit()
print(reg.summary())
我是 运行 Python 中的 GLM 回归,使用以下代码使用 statsmodels。我特别想实现一个 log link 函数。我可以使用 Statsmodels 编写类似 R 的公式。
以下代码成功运行但抛出弃用警告。任何人都可以建议如何摆脱这个警告。感谢您的帮助。
代码:
mod = smf.glm(formula='y ~ C(x1) + C(x2) + C(x3) + x4 + x5', data=data,family=sm.families.Gamma(link=sm.families.links.log))
reg = mod.fit()
print(reg.summary())
警告: 弃用警告:不推荐使用 link class 作为参数调用 Family(..)。 请改用 link class 的实例。
我正在处理同样的问题。我注意到,如果我删除 () 内的所有内容,结果是完全一样的,没有错误。模型摘要具有相同的值并且 AIC 值相同。
带有警告的代码:
glm_poisson_log = sm.GLM(endog, exog, family = sm.families.Poisson(sm.families.links.log))
results = glm_poisson_log.fit()
没有警告的代码:
glm_poisson_log = sm.GLM(endog, exog, family = sm.families.Poisson **()**)
results = glm_poisson_log.fit()
尝试删除链接信息。
解决方法如下:
sm.families.family.Gamma.links
link_g = sm.genmod.families.links.log
link_g
fit = sm.GLM.from_formula(formula, data=df, family=sm.families.Gamma(link_g())).fit()
我认为以上任何一个答案都不正确。正确的方法,按照警告的指示,是使用括号内link函数的对应实例:
mod = smf.glm(formula='y ~ C(x1) + C(x2) + C(x3) + x4 + x5', data=data,family=sm.families.Gamma(link=sm.families.links.log()))
reg = mod.fit()
print(reg.summary())