Wenn Sie das Fieller-Konfidenzintervall berechnen möchten, ohne es zu verwenden mratios
(normalerweise, weil Sie keine einfache lm-Anpassung, sondern beispielsweise eine glmer- oder glmer.nb-Anpassung wünschen), können Sie die folgende FiellerRatioCI
Funktion verwenden, um die Ausgabe des Modells zu modellieren: benennen Sie den Namen des Zählerparameters, bname den Namen des Nennerparameters. Sie können auch direkt die FiellerRatioCI_basic-Funktion giving, a, b und die Kovarianzmatrix zwischen a und b verwenden.
Beachten Sie, dass das Alpha hier 0,05 ist und im Code in den 1,96s "fest codiert" ist. Sie können sie durch die von Ihnen bevorzugten Sprachniveaus ersetzen.
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)]))
}
Beispiel (basierend auf dem Standard-GLM-Basisbeispiel):
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