Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Очередная просьба помочь расчитать объем выборки.
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
Bladorteen
Дорогие форумчане, как-то не сложилось с математикой и статистикой изначально, поэтому прошу вашей помощи.
Суть такова, имеется лапароскопическая холецистэктомия по поводу острого холецистита. Часть хирургов устраивают профилактический дренаж, часть нет. Хотим организовать рандомизированное исследование и необходимо знать сколько пациентов необходимо для исследования. Методология такова: по окончанию лапароскопической части кидается монета и решает ставить дренаж или нет. Разница в двух группах оценивается по нескольким критериям: болевые ощущения по VAS, койко-дни, компликации, смертность расчитывать не логично т.к. пациенты будут 1-3 ASA класса, а за долголетнюю практику был только 1 летальный исход. Так вот прошу вашей помощи и объясните на пальцах, как считать и какие формулы применять. Априори берем, что в 30% случаев в дренированной группе болевые ощущения будут более ярко выражены. Мощность исследования 80%-90%.
p2004r
Цитата(Bladorteen @ 13.02.2012 - 20:42) *
Априори берем, что в 30% случаев в дренированной группе болевые ощущения будут более ярко выражены.


наверное трудность в этой фразе smile.gif

не могли бы Вы пояснить эти "30%" в терминах --- группа дренированных - x человек из них боль испытывает y человек; ну и группа без дренажа z человек, боль испытывает k человек.

Bladorteen
С этим и мы столкнулись, субъективно группа без дренажа испытывает меньше болевых ощущений. А так, как никакой информации по острым холециститам нет, то приходится отталкиваться от собственных наблюдений. То, что я имел ввиду - это в не дренажируемой группе болевые ощущение будут в 30% случаев менее интенсивны или их вообще не будет, в дренажируемой же соответственно на 30% больше. Пример: группа без дрена - интенсивность боли у 10х III бала, группа с дреном - у 7х интенсивность боли III бала, у 3х IV балла.
p2004r
Цитата(Bladorteen @ 14.02.2012 - 06:29) *
С этим и мы столкнулись, субъективно группа без дренажа испытывает меньше болевых ощущений. А так, как никакой информации по острым холециститам нет, то приходится отталкиваться от собственных наблюдений. То, что я имел ввиду - это в не дренажируемой группе болевые ощущение будут в 30% случаев менее интенсивны или их вообще не будет, в дренажируемой же соответственно на 30% больше. Пример: группа без дрена - интенсивность боли у 10х III бала, группа с дреном - у 7х интенсивность боли III бала, у 3х IV балла.


доказать наличие эффекта в группе где случаи разделились в пропорции 3/7

Код
> pwr.p.test(h=3/7,p=0.9,sig.level=0.05,alternative="two.sided")

     proportion power calculation for binomial distribution (arcsine transformation)

              h = 0.4285714
              n = 57.20704
      sig.level = 0.05
          power = 0.9
    alternative = two.sided

> pwr.p.test(h=3/7,p=0.8,sig.level=0.05,alternative="two.sided")

     proportion power calculation for binomial distribution (arcsine transformation)

              h = 0.4285714
              n = 42.73269
      sig.level = 0.05
          power = 0.8
    alternative = two.sided


для доказательства разницы между группами случаев нужно существенно меньше
Bladorteen
Спасибо большое, а не могли бы пояснить с помощью какой программы вы это реализовали.
И какие формулы надо использовать если считать "на листочке"?
p2004r
Цитата(Bladorteen @ 15.02.2012 - 00:40) *
Спасибо большое, а не могли бы пояснить с помощью какой программы вы это реализовали.
И какие формулы надо использовать если считать "на листочке"?


Это среда анализа R http://cran.r-project.org/

пакет pwr

написан по книге

Cohen, J. (1988). Statistical power analysis for the behavioral
sciences (2nd ed.). Hillsdale,NJ: Lawrence Erlbaum.

конкретно pwr.p.test это

These calculations use arcsine transformation of the proportion
(see Cohen (1988))

Exactly one of the parameters 'h','n','power' and 'sig.level' must
be passed as NULL, and that parameter is determined from the
others. Notice that the last one has non-NULL default so NULL must
be explicitly passed if you want to compute it.

Считает оно вот так

Код
> pwr.p.test
function (h = NULL, n = NULL, sig.level = 0.05, power = NULL,
    alternative = c("two.sided", "less", "greater"))
{
    if (sum(sapply(list(h, n, power, sig.level), is.null)) !=
        1)
        stop("exactly one of h, n, power, and sig.level must be NULL")
    if (!is.null(n) && n < 1)
        stop("number of observations in each group must be at least 1")
    if (!is.null(sig.level) && !is.numeric(sig.level) || any(0 >
        sig.level | sig.level > 1))
        stop(sQuote("sig.level"), " must be numeric in [0, 1]")
    if (!is.null(power) && !is.numeric(power) || any(0 > power |
        power > 1))
        stop(sQuote("power"), " must be numeric in [0, 1]")
    alternative <- match.arg(alternative)
    tside <- switch(alternative, less = 1, two.sided = 2, greater = 3)
    if (tside == 2 && !is.null(h))
        h <- abs(h)
    if (tside == 2) {
        p.body <- quote({
            pnorm(qnorm(sig.level/2, lower = FALSE) - h * sqrt(n),
                lower = FALSE) + pnorm(qnorm(sig.level/2, lower = TRUE) -
                h * sqrt(n), lower = TRUE)
        })
    }
    if (tside == 3) {
        p.body <- quote({
            pnorm(qnorm(sig.level, lower = FALSE) - h * sqrt(n),
                lower = FALSE)
        })
    }
    if (tside == 1) {
        p.body <- quote({
            pnorm(qnorm(sig.level, lower = TRUE) - h * sqrt(n),
                lower = TRUE)
        })
    }
    if (is.null(power))
        power <-8345231(p.body)
    else if (is.null(h)) {
        if (tside == 2) {
            h <- uniroot(function(h)8345231(p.body) - power, c(1e-10,
                10))$root
        }
        if (tside == 1) {
            h <- uniroot(function(h)8345231(p.body) - power, c(-10,
                5))$root
        }
        if (tside == 3) {
            h <- uniroot(function(h)8345231(p.body) - power, c(-5,
                10))$root
        }
    }
    else if (is.null(n))
        n <- uniroot(function(n)8345231(p.body) - power, c(2 +
            1e-10, 1e+05))$root
    else if (is.null(sig.level))
        sig.level <- uniroot(function(sig.level)8345231(p.body) -
            power, c(1e-10, 1 - 1e-10))$root
    else stop("internal error")
    METHOD <- "proportion power calculation for binomial distribution (arcsine transformation)"
    structure(list(h = h, n = n, sig.level = sig.level, power = power,
        alternative = alternative, method = METHOD), class = "power.htest")
}
<environment: namespace:pwr>


Вот статья не плохая
http://radiology.rsna.org/content/227/2/309.full
nokh
http://statpages.org/proppowr.html
Bladorteen
Цитата(nokh @ 20.02.2012 - 00:20) *

Спасибо. Уже по этой ссылке разобрался: http://www.rad.jhmi.edu/jeng/javarad/samplesize/#references

Если кому формула нужна.
RomanPetrov
удалил пост как полный бред. читайте http://www.ievbras.ru/ecostat/Kiril/Article/A32/Stare.pdf и будет счастье. все стало понятным
RomanPetrov
бутсреп.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.