我想为两个均值之比得出置信区间的限制。
假设和
是独立的,平均比。我试图解决:
但在许多情况下(无根)无法求解该方程式。难道我做错了什么?有没有更好的方法?谢谢X 1〜Ñ (θ 1,σ 2)X 2〜Ñ (θ 2,σ 2)Γ = θ 1 / θ 2镨(- Ž (α / 2 ))≤ X 1 - Γ X 2 / σ √
我想为两个均值之比得出置信区间的限制。
假设和
是独立的,平均比。我试图解决:
但在许多情况下(无根)无法求解该方程式。难道我做错了什么?有没有更好的方法?谢谢X 1〜Ñ (θ 1,σ 2)X 2〜Ñ (θ 2,σ 2)Γ = θ 1 / θ 2镨(- Ž (α / 2 ))≤ X 1 - Γ X 2 / σ √
Answers:
Fieller的方法可以满足您的要求-计算两个均值的商的置信区间,这两个均假设是从高斯分布中采样的。
R具有mratios
带功能的包装t.test.ratio
。
Gemechis Dilba Djira,Mario Hasler,Daniel Gerhard和Frank Schaarschmidt(2011)。比率:一般线性模型中系数比率的推论。R软件包1.3.15版。 http://CRAN.R-project.org/package=mratios
另外,如果您不想使用不计算Fieller的置信区间mratios
(通常是因为您不希望使用简单的lm拟合,而是希望使用glmer或glmer.nb拟合),则可以使用以下FiellerRatioCI
函数,对模型的输出进行建模, aname分子参数的名称,bname分子参数的名称。您也可以直接使用FiellerRatioCI_basic函数,给出a,b以及a和b之间的协方差矩阵。
请注意,此处的alpha为0.05,并在代码中“硬编码”为1.96s。您可以将其替换为您喜欢的任何学生级别。
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)]))
}
示例(基于标准的glm基本示例):
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