Ngoài ra, nếu bạn muốn tính khoảng tin cậy của Fieller không sử dụng mratios
(thường là vì bạn không muốn phù hợp với lm đơn giản nhưng ví dụ như phù hợp với glmer hoặc glmer.nb), bạn có thể sử dụng FiellerRatioCI
chức năng sau , với mô hình đầu ra của mô hình, Aname tên của tham số tử số, đặt tên cho tham số denomiator. Bạn cũng có thể sử dụng trực tiếp hàm FiellerRatioCI_basic, a, b và ma trận hiệp phương sai giữa a và b.
Lưu ý, alpha ở đây là 0,05 và "mã hóa cứng" thành 1,96 trong mã. Bạn có thể thay thế chúng bằng bất kỳ cấp độ Sinh viên nào bạn thích.
FiellerRatioCI <- function (x, ...) { # generic Biomass Equilibrium Level
UseMethod("FiellerRatioCI", x)
}
FiellerRatioCI_basic <- function(a,b,V,alpha=0.05){
theta <- a/b
v11 <- V[1,1]
v12 <- V[1,2]
v22 <- V[2,2]
z <- qnorm(1-alpha/2)
g <- z*v22/b^2
C <- sqrt(v11 - 2*theta*v12 + theta^2 * v22 - g*(v11-v12^2/v22))
minS <- (1/(1-g))*(theta- g*v12/v22 - z/b * C)
maxS <- (1/(1-g))*(theta- g*v12/v22 + z/b * C)
return(c(ratio=theta,min=minS,max=maxS))
}
FiellerRatioCI.glmerMod <- function(model,aname,bname){
V <- vcov(model)
a<-as.numeric(unique(coef(model)$culture[aname]))
b<-as.numeric(unique(coef(model)$culture[bname]))
return(FiellerRatioCI_basic(a,b,V[c(aname,bname),c(aname,bname)]))
}
FiellerRatioCI.glm <- function(model,aname,bname){
V <- vcov(model)
a <- coef(model)[aname]
b <- coef(model)[bname]
return(FiellerRatioCI_basic(a,b,V[c(aname,bname),c(aname,bname)]))
}
Ví dụ (dựa trên ví dụ cơ bản glm tiêu chuẩn):
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
FiellerRatioCI(glm.D93,"outcome2","outcome3")
ratio.outcome2 min max
1.550427 -2.226870 17.880574