Я хочу создать общую функцию, которая передает данные, 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
и значение по умолчанию, если оно пропущено.