Как «поля» рассчитывают предельные эффекты в линейных моделях? - PullRequest
1 голос
/ 21 января 2020

У меня есть линейная модель (lm объект) и я использую margins для расчета предельных эффектов регрессоров. Насколько я понимаю, это эквивалентно частичному эффекту, если регрессор присутствует только один раз в модели. Это правда для "детей".

library("car")
library("plm")
data("LaborSupply", package = "plm")

# Regression
lm1 <- lm(lnwg ~ kids + age + I(age^2), data = LaborSupply)

# kids is once in the model
summary(lm1)           # partial effect of kids  -2.182e-02
summary(margins(lm1))  # equals marginal effect  -0.0218

Вывод:

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.218e+00  1.228e-01   9.921  < 2e-16 ***
kids        -2.182e-02  5.398e-03  -4.043 5.36e-05 ***
age          6.704e-02  6.392e-03  10.488  < 2e-16 ***
I(age^2)    -7.465e-04  7.936e-05  -9.406  < 2e-16 ***

 factor     AME     SE       z      p   lower   upper
    age  0.0089 0.0007 12.0683 0.0000  0.0075  0.0104
   kids -0.0218 0.0054 -4.0426 0.0001 -0.0324 -0.0112

Но почему предельный эффект возраста не эквивалентен:

6.704e-02 + 2*-7.465e-04 = 0.065547

Я имею в виду, не должно ли оно быть равным частной производной в моей модельной формуле?

1 Ответ

1 голос
/ 21 января 2020

Вы правы в том, что оно должно быть частной производной термина, но имейте в виду, что если вы дифференцируете свою формулу по возрасту, вы получите:

beta1 + 2*(beta2)*age

Где бета1 - коэффициент для age и beta2 - коэффициент для возраста ^ 2, полученный из модели.

Это означает, что предельный эффект возраста будет зависеть от возраста. С пакетом наценок они вернут вам среднее значение маржинального эффекта для всех значений возраста, что эквивалентно:

lm1 <- lm(lnwg ~ kids + age + I(age^2), data = LaborSupply)
mean(coefficients(lm1)[3] + 2*LaborSupply$age*coefficients(lm1)[4])
[1] 0.008938904

Чтобы увидеть это более четко, выполните:

lm2 <- lm(lnwg ~ age + I(age^2), data = LaborSupply)
margins(lm2)
Average marginal effects
lm(formula = lnwg ~ age + I(age^2), data = LaborSupply)

      age
 0.009625

Коэффициенты разные (потому что мы не включили детей), но вы увидите сообщение, возвращенное выше в выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...