问题标签 [marginal-effects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1498 浏览

probability - 使用 logit 和虚拟变量手动计算边际效应(不使用包或 Stata 或 R)

我有以下困境:

我明白边际效应是什么,它的计算,sigmoid函数的推导以及如何解释它(作为通过“一点点”增加你感兴趣的变量来改变概率,这个一点点是1对于离散变量或通过std(x)/1000对于连续 )。现在,我觉得棘手的部分是手动证实边际效应的结果,并重新计算 x=0 和 x=1 的概率(例如),然后得到一个等于边际效应的概率差我来得更早,我特别受虚拟变量的困扰,因为如果我增加一个,我必须减少另一个,所以我不太确定如何解决它并解释它。(这个问题也适用于高度相关的变量)

为了更清楚,假设我有以下数据集:

Var_0 = 截距是多少。

Var_1, var_2 = 一个热编码变量(2/3 虚拟变量),一个被丢弃以避免共线性。

Var 3+ = 正态连续变量

系数

罗吉特

概率

边际效应=p*(1-p) * B_j

现在假设我对 var_1(其中一个假人)的边际效应感兴趣,我会简单地做: p*(1-p) * 0.7570

这将导致一个长度为n (# of obs)的数组具有不同的边际效应(这很好,因为我知道这些效应是非常数和非线性的)。假设这个数组来自[0.0008 to 0.0495]

现在的问题是,你如何验证这个结果?0当虚拟对象从 values变为时,我如何衡量边际效应1

你可能会争辩说我可以做两件事MEMAME方法:

  1. MEM:保留所有值的平均值,然后重新计算 var_1 = 0 和 var_1 = 1(MEM 方法)

    (你不能真正做到这一点,因为你会假设你可以有一些观察结果,其中 var_1 和 var_2 将同时等于 1,这是不正确的,因为假人的平均值就像多少的比例“ 1s" 用于该列)

  2. AME:保持观察状态,但将 var_1 的所有值更改为 0(使 var_2 的所有值 = 1),然后执行相反的操作(var_1 = 1,var_2 =0,你必须这样做,因为它不能属于同时到两个类别),然后取结果的平均值(AME方法)(Side comment:One thing I am not sure if it is the average between the difference in marginal effects when var_1 = 0 and then 1, or if it is an average between the probabilities when var_1 =0 and then 1, I used both, but probability I think it makes more sense to me)

现在,如果我尝试第二种方法,我得到的结果与我最初得到的结果非常不同(它们是介于 之间的值[0.0008 to 0.0495]),它给了我介于 之间的值[0.0022 to 0.1207],这是一个巨大的差异。

总结一下:

  1. 如何进行数学确证以获得我最初得到的相同值([0.0008 to 0.0495]

  2. 我如何首先解释这些原始值?因为如果我采取0.0495,我基本上是在说,如果我将 var_1 增加 1 个单位(从 0 到 1),我的事件发生概率将增加 4.95%,问题是它不认为增加 1 个单位默认情况下,我需要减少另一个虚拟变量 (var_2),因此我将同时对变量进行双重更改或类似双重边际效应。

0 投票
0 回答
56 浏览

r - 使用 ggpredict 将协变量设置为边际效应的平均值

我有一些数据(df):

我运行一个模型:

模型系数为:

我想获得边际效应,根据我的理解,这是在某些水平上保持其他变量不变的预测概率,在这种情况下,对于我的二进制预测器“inter”,它是 0 对 1。如果这不正确,请告诉我。根据 [ https://rdrr.io/cran/ggeffects/man/ggpredict.html],“所有未在术语中指定的剩余协变量保持不变(参见'详细信息')”。time 和 int 的平均值分别为 58.29 和 29.07,因此得到预测概率的公式为:

保持其他变量不变的预测概率对于级别 1 为 0.79,而级别 0 为 0.33,这正是这些语句产生的结果:

但是,当我用“int [mean]”在均值处指定“int”时,会产生不同的结果:

它说 0 级的预测概率为 0.19,而 1 级的预测概率为 0.64。为什么?自动计算均值的协变量,所有四个命令不应该产生相同的结果吗?对“int”使用其他函数,例如 min 和 max,ggpredict(m, terms = c("inter", "time [mean]", "int [min]"))会根据公式产生可预测的结果。

0 投票
1 回答
72 浏览

r - 根据 zeroinfl() 模型对象的预测概率计算边际效应

我之前创建的这个图显示了基于两个变量 PIB(在 x 轴上缩放)和 W 的预测概率,分别表示为第 75 个和第 25 个百分位数。预测的置信区间与两条线一起显示。

索赔发生的概率

由于我认为 W 和 PIB 对索赔开始有交互影响,我想看看 W 对 PIB 的边际效应是否有任何意义。根据我在这里的阅读( https://www.sociologicalscience.com/download/vol-6/february/SocSci_v6_81to117.pdf),仅预测概率的置信区间不能证实这种影响是微不足道的。

我知道您可以通过从另一个中减去一个预测概率来轻松计算边际效应。然而,我不明白如何获得边际效应的置信区间——显然需要确定我的两组概率何时何地确实彼此显着不同。

我用于计算 zeroinfl() 模型对象的预测概率和这些预测概率的置信区间的函数来自在线发布(https://stat.ethz.ch/pipermail/r-help/2008-December /182806.html )。如果需要,我很乐意提供更多代码,但由于这不是关于错误的问题,我不确定它是否需要。

0 投票
0 回答
300 浏览

r - 将 ggpredict() 和 ggplot2() 与缩放的连续变量一起使用并尝试对它们进行缩放

我正在尝试使用二项式 logit 链接函数混合模型的

我的问题是我最初使用缩放的连续变量运行模型,然后在ggpredict()函数中使用它。

但是,当我尝试绘制边际效应时,边际效应的 x 轴使用缩放变量,我想用原始连续未缩放数据绘制它。从而使其更具可解释性。

我不确定如何做到这一点。我附上了一个最小可重复的例子。

任何帮助将非常感激。

0 投票
0 回答
387 浏览

random - 计算广义加法模型中的边际效应

我使用 GAM 来解决空间自相关问题,并考虑仅用于位置的平滑函数。我想知道如何计算平滑项的边际效应

0 投票
1 回答
622 浏览

r - 在检查因子水平和缺失数据后,`ggeffect` 或 `Effect` 无法估计模型中的边际效应

使用haven从包含标签的数据集中导入的数据,我无法使用ggeffect()from the packageggeffectsEffect()from the package获得边际效应effects

使用这些函数时,会提示错误,尽管已经检查了模型预测变量中的水平数和缺失案例。这篇文章解释了如何调试这些最后的情况,避免空因子水平或缺失的情况,这将阻碍获得边际效应。

虽然,在没有这些问题的情况下,我仍然会收到错误消息ggeffect()Can't compute marginal effects, 'effects::Effect()' returned an error.;或 in effects::Effect():Error in eval(parse(text = x, keep.source = FALSE)[[1L]])因为没有找到一些预测对象。

我还可以检查我的数据以计算边际效应吗?

0 投票
1 回答
176 浏览

r - 是否有任何 R 函数可以可视化 IV 回归的交互作用?

我正在寻找与ivregplm对应的交互效果可视化功能。我的模型是具有固定效果的 2sls,但似乎没有可用于计算 R 中的交互效果的包。

如果有人能解决我的问题,我会很高兴。

0 投票
0 回答
90 浏览

statistics - 比较逻辑模型中两个子样本的边际值

我有一个带有交互项的 logit 模型。我想在两个子样本中测试这个交互系数(根据另一个变量的某个值进行划分)。由于逻辑模型,系数的解释需要边际分析(Ai 和 Norton,2003),我在为每个子样本运行模型后进行了边际分析。我不知道如何显示这两个子样本的边际值的统计差异。我将使用“出生体重数据”来进一步阐明我的意思。

结果

结果

现在,我使用用户编写的命令 --combomarginsplot-- 来组合两个边缘图:

该图将是:

有人可能会说,很容易说第二个子样本(即 ui==1)的边际值不为零。因此,我们可以得出结论,ui==0 时的边际值大于 ui==1 时的边际值。

如果两个子样本的边际值在统计上显着怎么办?如何测试他们的统计差异?

谢谢,纳维德

0 投票
1 回答
197 浏览

r - 在 R 中使用 cplot() 绘制边际效应时出错

我想用 cplot() 绘制我的 logit 模型 (mod7) 的边际效应,但我不知道如何解决这个错误

这里的代码:

有什么建议么 ?

0 投票
0 回答
40 浏览

r - 边际效应 mlogit 的计算,错误“参数 mus 具有相同的长度”

在我使用 进行多项逻辑回归后,我尝试计算边际效应mlogit

但是在定义z.

(参数必须具有相同的长度)。而我就是无法解决。有人有想法吗?

编辑: