Почему моя оценка glm logit очень предвзята? - PullRequest
0 голосов
/ 20 февраля 2019

Я занимаюсь симуляцией.Сначала я использовал logit, чтобы получить вероятность обработки для каждого наблюдения, а затем использовал rbniom (), чтобы сгенерировать двоичную переменную обработки.

С учетом наблюдаемой переменной лечения я использовал glm с логит-ссылкой для оценки параметра гамма.Это должно быть 1, но многократные попытки (даже с увеличенным числом выборок), это все еще приблизительно 0.3.Откуда исходит смещение?

Код прилагается

set.seed(99)
n = 10000
for (rv in c('X1','X2', 'Z1', 'Z2','e','u')){
  assign(rv, rnorm(n =n, mean = 0, sd =5))
  # check values
  # get(rv), eval(as.name/symbol(rv))
}
X = cbind(X1,X2)
Z = cbind(Z1,Z2)
gamma = c(1,1)
# treatment probability for each observation
p_treatment = 1/(1+exp(-(X%*%gamma+e)))
# track treated or not
treated = mapply(FUN = rbinom, prob = p_treatment, size = 1, n = 1)
beta = c(1,1)
y = 1 + X%*%beta+treated+u
fit_lgt = glm(treated ~ X, family = binomial(link = 'logit'))
summary(fit_lgt)

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

В логистической модели отсутствует термин e.Таким образом, p_treatment должен быть рассчитан как:

p_treatment = 1/(1+exp(-(X%*%gamma)))

Это дает вам правильные оценки:

            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.01441    0.04304   0.335    0.738    
XX1          1.03875    0.02643  39.297   <2e-16 ***
XX2          1.00852    0.02589  38.951   <2e-16 ***
0 голосов
/ 20 февраля 2019

Это не вопросы программирования, а вопрос о понимании вашей модели.Мне не особенно нравится, как вы закодировали симуляцию, но я не буду к этому обращаться.

В обобщенной линейной модели вы не добавляете случайный шум перед применением ссылки.Строка, которая отбрасывает вещи:

p_treatment = 1/(1+exp(-(X%*%gamma+e)))

Вы не должны добавлять дополнительную ошибку, поэтому вы должны изменить это на:

p_treatment = 1/(1+exp(-(X%*%gamma)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...