python - statsmodel.formula.api python 中的线性回归

标签 python python-3.x regression statsmodels

我正在使用statsmodels.formula.api来执行线性回归。我使用了三个自变量进行预测。在某些情况下,我得到负值,但所有输出都应该是正值。

有什么办法告诉模型输出不能为负数吗?

import statsmodels.formula.api as smf

output1 = smf.ols(formula= 'y ~A+B+C', data= data).fit()
output = output.predict(my_data)

最佳答案

建模正或非负因变量(或响应或输出)变量的一种标准方法是假设指数均值函数。

给定协变量的响应的预期值为 E(y | x) = exp(x b)。

对此进行建模的一种方法是使用泊松回归,即 statsmodels Poisson 或带有 family Poisson 的 GLM。鉴于泊松对于连续变量来说不是正确的似然,我们需要使用 cov_type='HC0' 调整错误指定的参数估计的协方差。也就是说,我们正在使用准最大似然法。

output1 = smf.poisson(formula= 'y ~A+B+C', data= data).fit(cov_type='HC0')

另一种方法是记录响应变量,该变量隐式假设对数正态模型。

http://blog.stata.com/2011/08/22/use-poisson-rather-than-regress-tell-a-friend/ https://stats.stackexchange.com/questions/8505/poisson-regression-vs-log-count-least-squares-regression

请注意,statsmodels 并不强制要求泊松、二项式、Logit 等中的响应变量为整数,因此我们可以使用这些模型对连续数据进行准最大似然估计。

关于python - statsmodel.formula.api python 中的线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544386/

相关文章:

statistics - 使用机器学习进行预测

python - 在 pyInstaller 生成的 Python EXE 中确定应用程序路径

Python - 比较两个集合列表

python - 删除二维数组中无序重复项的最省时方法是什么?

python Django : Minimal Django + Cassandra local application

python-3.x - PyCharm 2019.1 CE : No option to create/edit Jupyter Notebook (*. ipynb)文件?

machine-learning - 分类与回归?

python - numpy/scipy 从加权边缘列表构建邻接矩阵

python - 在python中寻找更好的数据结构

图例中的回归线应该更细