我知道如何将广义线性模型( GLMs )和广义线性混合模型( GLMMs )与来自lme4的glm
和glmer
进行拟合 R 中的包。作为统计学的学生,我有兴趣学习如何使 GLM 和 GLMM 符合逐步的公式基础 R 代码。如果你在这方面指出任何资源和/或参考,我将非常感谢。提前谢谢。
修改
我希望使用公式逐步执行 GLM 和 GLMM ,因为我们使用矩阵方法 LM 。是否有任何使用此方法的 R 书籍或教程?谢谢
答案 0 :(得分:2)
答案 1 :(得分:2)
这可能会有所帮助
**泊松回归:GLM **
* 推荐阅读:广义线性模型简介,Annette J. Dobson,第2版,第4章,第4.3和4.4节*
library(MASS)
poisreg = function(n, b1, y, x1, tolerence) { # n is the number of iteration
x0 = rep(1, length(x1))
x = cbind(x0, x1)
y = as.matrix(y)
w = matrix(0, nrow = (length(y)), ncol = (length(y)))
b0 = b1
result = b0
for (i in 1:n) {
mu = exp(x %*% b0)
diag(w) = mu
eta = x %*% b0
z = eta + (y - mu) * (1/mu) # dot product of (y - mu) & (1/mu)
xtwx = t(x) %*% w %*% x
xtwz = t(x) %*% w %*% z
b1 = solve(xtwx, xtwz)
if(sqrt(sum(b0 - b1)^2) > tolerence) (b0 <- b1)
result<- cbind(result,b1) # to get all the iterated values
}
result
}
x1 <- c(-1,-1,0,0,0,0,1,1,1) # x1 is the explanatory variable
y<- c(2,3,6,7,8,9,10,12,15) # y is the dependent variable
b1 = c(1,2) # initial value
poisreg (10, b1, y, x1, .001) # Nicely converge after 10 iterations
glm(y~x1, family=poisson(link="log")) # check your result with the R GLM program