来自Poisson Regression by hand提供了这个“手动”泊松系数函数:
LogLike <- function(y,x, par) {
beta <- par
# the deterministic part of the model:
lambda <- exp(beta%*%t(x))
# and here comes the negative log-likelihood of the whole dataset, given the
# model:
LL <- -sum(dpois(y, lambda, log = TRUE))
return(LL)
}
PoisMod<-function(formula, data){
# # definiere Regressionsformel
form <- formula(formula)
#
# # dataFrame wird erzeugt
model <- model.frame(formula, data = data)
#
# # Designmatrix erzeugt
x <- model.matrix(formula,data = data)
#
# # Response Variable erzeugt
y <- model.response(model)
par <- rep(0,ncol(x))
erg <- list(optim(par=par,fn=LogLike,x=x,y=y)$par)
return(erg)
}
PoisMod(breaks~wool+tension, as.data.frame(daten))
glm(breaks~wool+tension, family = "poisson", data = as.data.frame(daten))
谁能准确地告诉我链接函数是在哪里计算的吗?如果使用身份链接函数,此代码会是什么样子?我通过 YouTube 视频等有了基本的了解,但没有人解释实际的计算。
如果使用偏移量和权重,这段代码会是什么样子?
最佳答案
GLM 指定为:
或等同于
对于泊松模型,规范链接为 ,所以
您可以在代码中看到,lambda = exp(beta %*% t(x))
如果您想估计具有恒等链接的模型,您可以使用lambda = beta %*% t(x)
因为在这种情况下
通过权重解决评论中的后续问题,通常用于对每个观察的可能性贡献进行加权。因此,假设您有一个传递给函数 LogLike()
的变量 wt
,您可以通过将似然贡献乘以权重来修改它:
LL <- -sum(dpois(y, lambda, log = TRUE)*wt)
偏移量只是一个系数强制为 1 的变量(参见 this post 进行讨论)。假设您有一个名为 offset
的变量,您希望将其包含在模型中。同样,您可以将该参数传递给 LogLike()
并且您需要通过以下方式修改该函数:
lambda <- exp(beta%*%t(x) + offset)
按照我链接的 CrossValidated 帖子中的示例,offset = log(time)
。哪种偏移量是正确的更多的是一个理论问题或实质问题。
关于r - 了解泊松回归中链接函数的计算位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70916490/