r - 了解泊松回归中链接函数的计算位置

标签 r glm poisson

来自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/

相关文章:

r - 是否有一种 RAM 有效的方法来计算补集的中位数?

python - 如何比这更快地在 Python 中对非齐次泊松过程进行​​采样?

R将文本字段转换为函数

r - 绘制与回归线的偏差

r - 使用 gamma 系列测试 glm 时出错

r - 如何在 R 中的 cloglog 回归中添加随机和/或固定效应

python - 如何将 Poisson CDF 编写为 Python Polars 表达式

python - PyMC3 在 Possion 模型创建期间生成错误

R计算图中子图/组件的数量

revoScaleR::rxGlm() R 中的问题 - GLM 残差