2011-08-03 52 views
1

_R_碼我知道如何適應廣義線性模型(GLMS)和廣義線性混合模型(GLMMs參數)與glm和在glmer從lme4包r 。作爲統計學的學生,我有興趣學習如何適合GLMGLMM下面的分步公式基地R代碼。如果您在這方面指出任何資源和/或參考,我將非常感激。提前致謝。步驟一步基於公式GLM和GLMM

編輯

我想做GLMGLMM一步使用公式,我們使用矩陣法做LM一步。可以使用這種方法的書或教程是否有任何R?謝謝

+0

您的意思是說您想要學習如何編寫代碼以適合GLM(M)? –

+3

我認爲答案部分是「McCullagh and Nelder」。閱讀,告訴你所有的算法。雖然首先從簡單的線性高斯東西開始。 – Spacedman

+0

@Spacedman的確。當然R的來源。 –

回答

2

這可有助於
**泊松迴歸:GLM **
* 推薦閱讀:介紹廣義線性模型,是Annette J.多布森,第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 
+0

+1:謝謝@overwhelmed您的不錯答案。你的回答可能是一個好的開始。再次感謝。 – MYaseen208

+0

有沒有辦法改變這個代碼的二項式實現,而不是泊松? –