Como usar o método delta para erros padrão de efeitos marginais?

20

Estou interessado em entender melhor o método delta para aproximar os erros padrão dos efeitos marginais médios de um modelo de regressão que inclui um termo de interação. Analisei questões relacionadas no mas nenhuma forneceu exatamente o que estou procurando.

Considere os seguintes dados de exemplo como um exemplo motivador:

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

Estou interessado nos efeitos marginais médios (AMEs) de x1e x2. Para calcular isso, basta fazer o seguinte:

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

Mas como uso o método delta para calcular os erros padrão desses AMEs?

Eu posso calcular o SE para essa interação específica manualmente:

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

Mas eu não entendo como usar o método delta.

Idealmente, estou procurando alguma orientação sobre como pensar (e codificar) o método delta para AMEs de qualquer modelo de regressão arbitrário. Por exemplo, esta pergunta fornece uma fórmula para o SE para um efeito de interação específico e este documento de Matt Golder fornece fórmulas para uma variedade de modelos interativos, mas eu quero entender melhor o procedimento geral para calcular SEs de AMEs em vez da fórmula para SE de qualquer AME em particular.

Thomas
fonte
2
+1 Ótima pergunta (também me incomoda há muito tempo)! Há um post no fórum Stata: Erros Delta método padrão para a média marginal ... . No SE, há um exemplo usando uma abordagem de autoinicialização: função mfxboot para efeitos marginais para regressões probit? .
Bernd Weiss

Respostas:

16

O método delta simplesmente diz que, se você pode representar uma variável auxiliar, pode representar como uma função de variáveis ​​aleatórias distribuídas normalmente, essa variável auxiliar é aproximadamente normalmente distribuída com uma variação correspondente a quanto o auxiliar varia em relação às variáveis ​​normais (EDIT: como apontado por Alecos Papadopoulos, o método delta pode ser afirmado de maneira mais geral, de modo que não exija normalidade assintótica). A maneira mais fácil de pensar nisso é como uma expansão de Taylor, onde o primeiro termo de uma função é a média e a variação vem dos termos de segunda ordem. Especificamente, se é uma função do parâmetro β e b é, um estimador normalmente distribuído consistente para que o parâmetro: g (gβb Dado que β é uma constante eb é um estimador consistente de β , podemos dizer:

g(b)g(β)+g(β)(b-β)
βbβ Neste caso, b é o seu OLS estimar, e g é a AME. Você pode escrever esse AME específico como: g ( b 1 , b 2 ) = b 1 + b 2  média ( x 2 ) se você adotou o gradiente dessa função (lembre-se, uma função doscoeficientesnão de x
n(g(b)-g(β))DN(0 0,g(β)Σbg(β))
bg
g(b1,b2)=b1+b2 significar(x2)
), seria: [ 1 ,x2 e a matriz de variância-covariância de b pode ser: [ s 11 s 12 s 12 s 22 ] Se você inserir isso na fórmula de variância e fazer uma álgebra de matriz, terá a mesma expressão que deseja.
[1,significar(x2)]
b
[s11s12s12s22]

gRnumDeriv

ADENDO: Nesse caso específico, o Rcódigo seria:

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

jayk
fonte
1
Obrigado por esta resposta muito detalhada. Acho que o que mais me impressionou foram os gradientes em relação aos coeficientes, e não às variáveis ​​originais. Eu realmente aprecio sua ajuda!
Thomas
E apenas uma pergunta esclarecedora. Você usa mean(x2)ao calcular o SE. Isso não seria apenas para o efeito marginal na média? Minha intuição seria que, para as AMEs, eu precisaria SE para cada observação e, em seguida, calcular a média entre elas de alguma forma.
Thomas
1
É equivalente a AMEs lineares, quando você calcula a média das observações e acaba com o efeito marginal na média. Caso contrário, você realmente teria que definir gcomo a média dos efeitos marginais de cada indivíduo e, provavelmente, usar o gradiente numérico, não tenho certeza de que tomar o SE para cada um seria o mesmo.
Jayk #
1
Ou seja, AME e ME na média são equivalentes aos EM lineares. Acho que o SE não será equivalente, porque a forma de variância é quadrática, então a média não será exibida. Não tenho uma boa intuição do motivo pelo qual o SE não pode ser somado às observações, mas tenho certeza de que é verdade.
Jayk #
2
Observe que o teorema do delta não requer normalidade.
Alecos Papadopoulos