【发布时间】:2023-02-15 06:10:10
【问题描述】:
在 OLS 回归之后,statsmodels 似乎不支持类似 stata 的边距。
linear_model.RegressionResults 或 linear_model.RegressionResults.model 没有 get_margeff() 方法。这是正确的还是我遗漏了什么?
只是想在我开始为 OLS 编写类似 stata 的边距方法之前确定一下。
提前致谢
【问题讨论】:
-
不,statsmodels 没有用于 OLS 的边距(部分用于 GLM-gaussian)。但是像 OLS 这样的线性模型中的边距只是参数。
-
虽然这对于像 x1 或 x2 这样的线性项是正确的,但对于像二次项或交互项这样的非线性项却不是这样。这些项的微分 dy/dx 取决于独立变量的值。这些值可以 1) 均值、2) 自变量的值列表或 3) 所有值进行评估。在最后一种情况下,报告了平均边际效应。这些操作在 OLS 和 Logit 中由 Stata margins 命令支持,在 R 中由 marginaleffects 包支持。因此,鉴于您的回答,我将不得不写下它们。
-
即使是当前的 statsmodels margeff 也无法处理多列项。问题是从公式中获取正确的信息。
-
开发版本(和即将发布的版本)有一个新的
get_prediction方法和相关的基础设施,以及用于非线性函数的增量方法,适用于这样的用例。但是,对用户提供的功能的支持尚未公开,功能目前仅供内部使用。 -
(我只是稍微看了看)。在线性模型中,即使像交互作用或多项式这样的多列效应在参数上也是线性的,因此我们可以使用 t_test 方法进行推理。但是,statsmodels 不支持从公式中为此创建 exog。统计模型问题github.com/statsmodels/statsmodels/issues/5387
标签: statsmodels