Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

> Доверительный интервал долей
плав
сообщение 20.10.2008 - 13:03
Сообщение #1





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Поскольку в другой теме было много споров о разных ДИ для долей и огрномный список цитат, решил - для иллюстрации - провести вычислительный эксперимент.
Итак. Были смоделированы популяции в которой содержится х объектов одного класса и 1-х объектов другого класса (х менялась от 1 до 10%). Из этой популяции брались случайные выборки размером 40 объектов. Оценивалось количество объектов одного и другого класса в выборке и рассчитывались доверительные интервалы по Клопперу-Пирсону, Агрести-Коулу и по распределению Пуассона (значения менее 0 заменялись на нулевые).
Таких выборок бралось 10 000 и затем рассчитывался вероятность покрытия популяционного значения доверительным интервалом и средняя ширина доверительного интервала. Что в результате (это небольшой размер выборки и малая вероятнсть:
Ширина 95%ДИ Покрытие
pi__ КП__ АК__ Пу__ КП__ АК__ Пу__
1% 0,104 0,118 0,110 0,993 0,993 0,993
2% 0,119 0,130 0,126 0,992 0,951 0,992
3% 0,132 0,141 0,141 0,994 0,970 0,994
4% 0,146 0,152 0,156 0,979 0,979 0,979
5% 0,157 0,162 0,169 0,986 0,952 0,986
6% 0,168 0,170 0,181 0,991 0,970 0,991
7% 0,177 0,178 0,192 0,981 0,981 0,981
8% 0,186 0,185 0,203 0,988 0,965 0,988
9% 0,195 0,192 0,214 0,953 0,974 0,970
10% 0,203 0,198 0,223 0,972 0,962 0,972
При малых значениях популяционной вероятности (менее 8%) интервал Клоппера-Пирсона является более узким, при больших - боле узкий интервал Агрести-Коула.
Покрытие прыгает, почти всюду больше номинального уровня 95%, однако среднее покрытие для КП - 98,3%, для Агрести - 97,0% и для Пуассона - 98,5%. Агрести-Коула немного ближе к номинальному уровню.
Однако если смотреть на данные реально, принципиальных различий между этими тремя методами нет. В большинстве случаев они дают одинаковые результаты и, как и показано в других работах, КП немного более консервативен, а АК немного более широкий при малых значениях популяционной вероятности.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
nokh
сообщение 23.11.2011 - 20:47
Сообщение #2





Группа: Пользователи
Сообщений: 1219
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Благодарю за готовый код! Теперь когда понадобится - буду использовать. Именно BCa - не критично, просто из модного бутстрепа он более моден laugh.gif . Появится время - сравню ДИ по бутстрепу с ДИ по регресии.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.11.2011 - 22:42
Сообщение #3





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(nokh @ 23.11.2011 - 20:47) *
Благодарю за готовый код! Теперь когда понадобится - буду использовать. Именно BCa - не критично, просто из модного бутстрепа он более моден laugh.gif . Появится время - сравню ДИ по бутстрепу с ДИ по регресии.


оно оказывается вот как выглядит

Код
> bmem.ci.bc
function (par.boot, par0, cl = 0.95)
{
    se.boot <- apply(par.boot, 2, sd, na.rm = TRUE)
    estimate <- par0
    p <- ncol(par.boot)
    ci <- NULL
    for (i in 1:p) {
        ci <- rbind(ci, bmem.ci.bc1(par.boot[, i], par0[i], cl))
    }
    cbind(estimate, se.boot, ci)
}
<environment: namespace:bmem>

> bmem.ci.bc1
function (x, b, cl = 0.95)
{
    n <- length(x)
    z0 <- qnorm(sum(x < b, na.rm = TRUE)/n)
    alpha <- (1 - cl)/2
    alpha <- c(alpha, 1 - alpha)
    alpha <- sort(alpha)
    alpha1 <- alpha
    alpha <- pnorm(2 * z0 + qnorm(alpha))
    dig <- max(2L, getOption("digits"))
    np <- length(alpha)
    qs <- quantile(x, alpha, na.rm = TRUE)
    names(qs) <- paste(if (np < 100)
        formatC(100 * alpha1, format = "fg", width = 1, digits = dig)
    else format(100 * alpha1, trim = TRUE, digits = dig), "%",
        sep = "")
    qs
}
<environment: namespace:bmem>


они имели в виду под результатом бутстрепа что то не из boot smile.gif

вот такое выходит после загрузки library(bmem)

Код
>  bmem.ci.norm(as.data.frame(result),mean(c(rep(2,10),rep(5,3)*2,rep(10,2)*4)),cl=.95)
       estimate  se.boot     2.5%    97.5%
result 8.666667 1.315171 6.088979 11.24435

>  bmem.ci.bc(as.data.frame(result),mean(c(rep(2,10),rep(5,3)*2,rep(10,2)*4)),cl=.95)
       estimate  se.boot 2.5%    97.5%
result 8.666667 1.315171  6.2 11.33333


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме
- плав   Доверительный интервал долей   20.10.2008 - 13:03
- - плав   Теперь сделал при большем размере выборки - 150 о...   20.10.2008 - 21:13
- - nokh   Исследуются частоты клеток с ядерными и цитоплазма...   24.06.2009 - 05:30
|- - плав   Цитата(nokh @ 24.06.2009 - 06:30) Ис...   3.07.2009 - 17:26
|- - nokh   Цитата(плав @ 3.07.2009 - 20:26) Я ч...   3.07.2009 - 21:07
|- - плав   Цитата(nokh @ 3.07.2009 - 22:07) Име...   3.07.2009 - 23:17
|- - p2004r   Цитата(nokh @ 3.07.2009 - 21:07) Нап...   23.11.2011 - 19:24
|- - nokh   Цитата(p2004r @ 23.11.2011 - 21:24) ...   23.11.2011 - 19:54
|- - p2004r   Цитата(nokh @ 23.11.2011 - 19:54) Да...   23.11.2011 - 20:18
|- - p2004r   Цитата(nokh @ 23.11.2011 - 19:54) Кс...   23.11.2011 - 20:38
- - nokh   Благодарю, попробую.   4.07.2009 - 08:16
- - la.vi.na.   Здравствуйте хочу вернуться к этой теме. У меня по...   23.11.2011 - 15:12
|- - nokh   Цитата(la.vi.na. @ 23.11.2011 - 17:1...   23.11.2011 - 17:59
|- - la.vi.na.   nokh спасибище за развернутый ответ! [quote n...   24.11.2011 - 06:02
|- - nokh   Цитата(la.vi.na. @ 24.11.2011 - 08:0...   3.12.2011 - 16:16
- - nokh   Благодарю за готовый код! Теперь когда понадоб...   23.11.2011 - 20:47
- - p2004r   Цитата(nokh @ 23.11.2011 - 20:47) Бл...   23.11.2011 - 22:42


Добавить ответ в эту темуОткрыть тему