Чем становится отсутствующий по умолчанию аргумент `offset` в` glm () `? - PullRequest
0 голосов
/ 23 мая 2019

Я хочу создать общую функцию, которая передает данные, family и offset в функцию glm2 в пакете glm2 . Я стремлюсь делать подсчет или регрессию в зависимости от типа данных, которые у меня есть. Хотя f() кажется тривиальным, я хочу использовать смещение внутри f() и glm2().

f <- function(y,
              X,
              family = c("gaussian", "binomial", "poisson"),
              offset = NULL) {
  #Change the default if necessary.
  offset <- if (is.null(offset)) {
    rep(1, length(y))
  }

  #Lots of code
  #...
  eta <- 43
  l <- offset  * exp(eta)

  #But I also want to use glm2 ...

  fit <- glm2::glm2(y ~ . ,
              data = data.frame(y = y, X = X),
              family = family,
              offset = offset)

  #More code ...

  return(fit)
}


df <- data.frame(y = rpois(24, 9), X = rnorm(24, 50, 8), pop = rlnorm(24, 6.8, 0.6))

f(y = df$y, X = df$X, family = "poisson")

f(y = df$y, X = df$X, family = "poisson", offset = df$pop)

#But is the glm2 estimates correct?

Если смещение отсутствует (по умолчанию) в функциях glm2() или glm(), кто-нибудь знает, во что оно преобразуется? Я установил свое смещение в f, чтобы оно было в нормальном масштабе, вектор 1. glm2() принимает население в нормальном или логарифмическом масштабе? Итак, должно ли выражение glm2 выше быть:

 fit <- glm2( y ~ . , data = data.frame(y = y, X = X),
family = family, offset = offset)

или

fit <- glm2( y ~ . , data = data.frame(y = y, X = X),
family = family, offset = log(offset))

Как правило, используется ли в регрессии Пуассона значение логарифмического смещения или не логарифмическое смещение? В конце концов, оба статистически верны. Файлы справки glm2(), glm() и model.offset() не указывают форму offset и значение по умолчанию, если оно пропущено.

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