Как вычислить доверительный интервал отношения двух нормальных средних

26

Я хочу вывести пределы для доверительного интервала для отношения двух средних. Предположим, что и независимы, среднее отношение . Я пытался решить: но это уравнение не может быть решено во многих случаях (без корней). Я делаю что-то неправильно? Есть ли лучший подход? БлагодарностьX 1N ( θ 1 , σ 2 ) X 2N ( θ 2 , σ 2 ) Γ = θ 1 / θ 2 Pr ( - z ( α / 2 ) ) X 1 - Γ X 2 / σ 100(1-α)%
Икс1~N(θ1,σ2)Икс2~N(θ2,σ2)Γзнак равноθ1/θ2

Pr(-Z(α/2))Икс1-ΓИкс2/σ1+γ2Z(α/2))знак равно1-α
francogrex
источник
1
Проблема состоит в том, что отношение двух чисел из двух нормальных распределений следует распределению Коши, и, таким образом, дисперсия не определена.
6
@mbq - распределение Коши не представляет проблем для доверительных интервалов, так как CDF является обратной функцией тангенса. Для работы КИ нет необходимости определять отклонения. И отношение двух нормальных RV с нулевым средним равно Коши, но не обязательно два нормальных RV с ненулевым средним.
вероятностная
@probabilityislogic Конечно, я должен перестать думать в воскресенье утром.

Ответы:

31

Метод Филлера делает то, что вы хотите - вычислить доверительный интервал для отношения двух средних, оба из которых предполагаются выборочными из гауссовых распределений.

Харви Мотульский
источник
Это очень хорошие ссылки, мне также нравится, что вы действительно сделали калькулятор для него (+1). Однако, как и ожидалось, в своем калькуляторе вы четко заявляете, что, когда доверительный интервал знаменателя включает ноль, невозможно вычислить КИ для частного. Я думаю, что то же самое происходит, когда я пытаюсь решить квадратное уравнение. предположим, что дисперсия равна 1, mu1 = 0 и mu2 = 1, N = 10000. Это неразрешимо.
francogrex
2
спасибо за онлайн калькулятор Харви, я типичный биолог с недостаточным опытом в области статистики, и ваш калькулятор был именно тем, что мне было нужно.
Тимтико
Потрясающий калькулятор - именно то, что я искал. Спасибо
Александр
@ harvey-motulsky ссылка на приложение больше не работает. Мне было интересно, входит ли материал из этого приложения в третье издание «Интуитивной биостатистики»?
Габриэль Южный
@GabrielSouthern Спасибо, что указали на гниль ссылки. Исправлена.
Харви Мотульский
10

R имеет пакет mratiosс функцией t.test.ratio.

Гемечис Дилба Джира, Марио Хаслер, Даниэль Герхард и Фрэнк Шааршмидт (2011). mratios: Выводы для отношений коэффициентов в общей линейной модели. Версия пакета R 1.3.15. http://CRAN.R-project.org/package=mratios

Смотрите также http://www.r-project.org/user-2006/Slides/DilbaEtAl.pdf

Алессандро Якопсон
источник
1

Также, если вы хотите вычислить доверительный интервал Филера, не используя mratios(обычно потому, что вам не нужно простое подгонка lm, а, например, подгонка glmer или glmer.nb), вы можете использовать следующую FiellerRatioCIфункцию для моделирования выходных данных модели: aname имя параметра числителя, bname имя параметра знаменателя. Вы также можете напрямую использовать функцию FiellerRatioCI_basic, дающую a, b и ковариационную матрицу между a и b.

Обратите внимание, что здесь альфа равна 0,05 и «жестко закодирована» в 1,96 в коде. Вы можете заменить их на любой уровень студента, который вы предпочитаете.

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
cmbarbu
источник