边际效应标准误差如何使用增量法?


20

我有兴趣更好地理解delta方法,以近似包括交互项的回归模型的平均边际效应的标准误差。我已经研究了下的相关问题,但没有一个提供了我想要的东西。

考虑以下示例数据作为激励示例:

set.seed(1)
x1 <- rnorm(100)
x2 <- rbinom(100,1,.5)
y <- x1 + x2 + x1*x2 + rnorm(100)
m <- lm(y ~ x1*x2)

我感兴趣的平均边际效应(AMES)x1x2。为了计算这些,我只需执行以下操作:

cf <- summary(m)$coef
me_x1 <- cf['x1',1] + cf['x1:x2',1]*x2 # MEs of x1 given x2
me_x2 <- cf['x2',1] + cf['x1:x2',1]*x1 # MEs of x2 given x1
mean(me_x1) # AME of x1
mean(me_x2) # AME of x2

但是,如何使用增量方法计算这些AME的标准误差?

我可以手动计算此特定交互的SE:

v <- vcov(m)
sqrt(v['x1','x1'] + (mean(x2)^2)*v['x1:x2','x1:x2'] + 2*mean(x2)*v['x1','x1:x2'])

但是我不明白如何使用增量方法。

理想情况下,我正在寻找有关如何考虑(和编码)任意回归模型AME的增量方法的一些指导。例如,此问题为特定的交互作用提供了SE的公式,而Matt Golder的本文档为各种交互模型提供了公式,但是我想更好地理解计算AME的SE的一般过程,而不是用于计算SE的公式。任何特定AME的SE。


2
+1好问题(也困扰我很久了)!有对塔塔论坛一个帖子:三角洲方法标准误差的平均边际...。在SE上,有一个使用引导方法的示例:mfxboot函数对概率回归的边际影响?
伯恩德·魏斯2014年

Answers:


16

增量法只是说,如果可以表示辅助变量,则可以表示为正态分布随机变量的函数,该辅助变量近似正态分布,其方差对应于辅助变量相对于正态变量的变化量(编辑:正如Alecos Papadopoulos所指出的那样,可以将delta方法更笼统地描述为不需要渐进正态性。最简单的方法是泰勒展开式,其中函数的第一项是平均值,而方差来自第二项。具体来说,如果是参数的函数,并且是该参数的一致的,正态分布的估计量: β b b β + β 'b - β βGβb

GbGβ+Gβb-β
由于是常数,并且是的一致估计量,因此我们可以说: 在这种情况下,是您的OLS估计,而是AME。你可以写这个特定的AME为: ,如果你把这个函数的梯度(记住,函数的系数不是),这将是: ββ bβ
ñGb-Gβdñ0GβΣbGβ
bG
Gb1个b2=b1个+b2 意思X2
X2
[1个意思X2]
并且的方差-协方差矩阵可能是: 将其插入方差公式和一些矩阵代数为您提供了所需的相同表达式。b
[s11s12s12s22]

通常,如果要执行此操作,则可以将所有要输入的显式编码为所有系数的函数,然后使用取函数 的数值梯度(否则必须使用计算机代数)您的参数,以您估计的参数为准。然后,您只需获取方差-协方差矩阵和此数值梯度,然后将其插入公式中即可!增量法。GRnumDeriv

附录:在这种特定情况下,R代码为:

v <- vcov(m)

# Define function of coefficients. Note all coefficients are included so it 
# will match dimensions of regression coefficients, this could be done more 
# elegantly in principle
g <- function(b){
    return(b[2] + b[4] * mean(x2))
}

require(numDeriv) # Load numerical derivative package

grad_g <-  jacobian(g, m$coef) # Jacobian gives dimensions, otherwise same as
                               # gradient 

sqrt(grad_g%*% v %*% t(grad_g)) # Should be exactly the same 

请注意,对于此问题,始终最好使用精确梯度而不是数值梯度,因为精确梯度的计算误差较小。是线性的事实消除了这个问题,并且对于更复杂的函数,确切的梯度可能并不总是可用。G


1
感谢您提供非常详细的答案。我认为让我特别感兴趣的是相对于系数而不是原始变量的梯度。非常感谢您的帮助!
托马斯

还有一个澄清的问题。mean(x2)在计算SE时使用。那不是仅仅为了边际效应吗?我的直觉是,对于AME,我将不得不对每个观察结果进行SE,然后以某种方式对它们进行平均。
Thomas

1
这等效于线性AME,当您对观察值取平均值时,最终会得到平均值的边际效应。否则,您实际上必须定义g为每个人的边际效应的平均值,并可能使用数值梯度,我不确定每个人的SE会完全相同。
2014年

1
也就是说,AME和ME平均等于线性ME。我认为SE不会等效,因为方差的形式是二次的,所以均值不会突然出现。我不能很好地理解为什么不能仅仅将SE与观察结果相加,但是我很确定这是真的。
2014年

2
注意,Delta定理不需要正态性。
Alecos Papadopoulos 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.