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

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

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Две группы, как анализировать
dr.MIG
сообщение 19.04.2014 - 23:34
Сообщение #1





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



Добрый день, уважаемые коллеги. Подскажите пожалуйста, каким образом можно обработать результаты проведенного исследования.
Цель исследования заключалась в том, чтобы доказать, что в определенной больнице кодироание диагнозов по МКБ осуществляется некорректно.
Для этого была выбрана группа интересующих нас диагнозов за последние два года, таким образом получилось что-то подобное:
КодМКБ1 - 150 человек
КодМКБ2 - 3 человека
КодМКБ3 - 250 человек
и т.д.
Далее в течение трех месяцев детально обследовались люди, которые лежали в тот момент в стационаре, им ставился корректный диагноз, соответственно получился еще один ряд значений:
КодМКБ1 - 0 человек
КодМКБ2 - 20 человек
и т.д.
Можно ли сделать вывод на основании подобных данных о корректности кодировки диагноза за последние два года и если да, то каким образом провести анализ.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 20.04.2014 - 16:29
Сообщение #2





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



Цитата(dr.MIG @ 19.04.2014 - 23:34) *
Добрый день, уважаемые коллеги. Подскажите пожалуйста, каким образом можно обработать результаты проведенного исследования.
Цель исследования заключалась в том, чтобы доказать, что в определенной больнице кодироание диагнозов по МКБ осуществляется некорректно.
Для этого была выбрана группа интересующих нас диагнозов за последние два года, таким образом получилось что-то подобное:
КодМКБ1 - 150 человек
КодМКБ2 - 3 человека
КодМКБ3 - 250 человек
и т.д.
Далее в течение трех месяцев детально обследовались люди, которые лежали в тот момент в стационаре, им ставился корректный диагноз, соответственно получился еще один ряд значений:
КодМКБ1 - 0 человек
КодМКБ2 - 20 человек
и т.д.
Можно ли сделать вывод на основании подобных данных о корректности кодировки диагноза за последние два года и если да, то каким образом провести анализ.


Группу по данным прошедших двух лет используете для генерации кучи случайных выборок размером в тестовую группу "углубленной постановки диагноза". Для всех диагнозов которые ставились в больнице за последние два года получаете доверительные границы, например посчитав куда попадают перцентили 2.5 и 98.5 для соответствующего диагноза.

Конечно если углубленной диагностике принципиально подвергался ограниченный по диагнозу набор больных, то аналогично должен быть ограничен и набор исторических данных. Хотя здесь надо хорошо подумать, лучше что бы никакой цензуры по диагнозам не велось (иначе можно семплер правдоподобный не родить).


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 23.04.2014 - 20:18
Сообщение #3





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



(У вас - зависимые выборки, т.к. один и тот же человек присутствует одновремнно в двух диагностиках. Критерии типа хи-квадрат здесь не уместны, зависимые частоты сравниваются критериями на симметрию. Суть примерно такова. Создаётся таблица, где по строкам располагаются диагнозы истинные, а в колонках - те же названия для диагнозов, но выставленных в клинике. Она заполняется абсолютными частотами (в штуках) конкретных случаев диагностики (не сгруппированных как у вас). Если клиника выставляет диагнозы со 100%-ной точностью, то все значения окажутся на диагонали такой таблицы. Если есть ошибки диагностики, то чем их больше, тем меньше будет значений на диагонали таблицы (истинный и выставленный диагнозы совпадают), и тем больше их станет над и под диагональю (истинный и выставленный диагнозы не совпадают). Такая таблица позволит наглядно отобразить какие диагнозы выставляются неправильно и с чем путаются. Обсчитать статистическую значимость различий в диагностике целиком по такой таблице можно с помощью критерия Бокера (Bowker's test of symmetry). Однако не будет ответа по отдельным диагнозам.
Далее можно разделить задачу на несколько - по числу конкретных диагнозов. Принцип организации таблиц - тот же, но только строк и столбцов -2: КодМКБ1 и Прочие коды - одна таблица, КодМКБ2 и Прочие коды - вторая таблица и т.д. Такие таблицы обычно анализируют критерием Мак-Немара (McNemar's test); материалов в сети много, обсуждался и на этом фуруме.
Т.о. для статистического анализа выших данных нужны правильно заполненные таблицы. Если сведёте данные как надо - поищем программу. А по приведённым вами суммарным данным можно посчитать только % несоответствий по каждому диагнозу, нельзя даже сказать что с чем и как часто путается.)

>p2004r. Идея рандомизационного теста понятна, но идея очень голая, её бы одеть в какой-нибудь код:)

Задача понята мной неверно, пост не стираю, но беру в скобки.

Сообщение отредактировал nokh - 25.04.2014 - 00:22
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 23.04.2014 - 20:59
Сообщение #4





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



Цитата(p2004r @ 20.04.2014 - 17:29) *
... перцентили 2.5 и 98.5 для соответствующего диагноза.


Косметическая поправка - 97.5
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.04.2014 - 22:00
Сообщение #5





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



Цитата(nokh @ 23.04.2014 - 20:18) *
>p2004r. Идея рандомизационного теста понятна, но идея очень голая, её бы одеть в какой-нибудь код:)


Пусть за два года получили 10 диагнозов A , 50 B, 150 C.

Код
>

> data <- factor(c(rep("A", 10),  ## исходные данные за два года
                   rep("B", 50),
                   rep("C", 150)))  
> apply(replicate(10000, ## число перевыборок из исходной совокупности
                  table(sample(data,  ##  исходная совокупность за два года
                               30))), ##  размер контрольной выборки
        1,  ## считать по строкам
        quantile, probs = c(2.5, 50, 98.5)/100)  ## считать на указанные перцентили

      
        A  B  C
  2.5%  0  3 17
  50%   1  7 21
  98.5% 4 12 26


чёртова табуляция frown.gif

По сути дела quantile() считают по строчкам вот такого результата перевыборок:

Код
> replicate(10, table(sample(data, 30)))
  
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
  A    2    1    2    2    3    1    0    1    0     3
  B   11    6    2   10    7    7    9    7    6     8
  C   17   23   26   18   20   22   21   22   24    19


PS опять 98.5 написал frown.gif пора спать smile.gif

PPS надо приучить себя к практике писать 100-5/2

PPPS у sample() пропустил ключ replace = TRUE

Сообщение отредактировал p2004r - 24.04.2014 - 10:21


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.04.2014 - 22:23
Сообщение #6





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



Цитата(nokh @ 23.04.2014 - 20:18) *
У вас - зависимые выборки, т.к. один и тот же человек присутствует одновремнно в двух диагностиках. Критерии типа хи-квадрат здесь не уместны, зависимые частоты



Они не смогут такие данные получить, никто не будет "прилюдно" ставить окончательный диагноз. А ретроспективу тут даже патологоанатом не обеспечит smile.gif. Ну и основная идея, как я понял, что бы по несвязанным выборкам (по разным людям) сказать по чему именно идет гипердиагностика, по чему гиподиагностика, и сделать это обоснованно.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
dr.MIG
сообщение 24.04.2014 - 21:27
Сообщение #7





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



Цитата(p2004r @ 23.04.2014 - 23:23) *
Ну и основная идея, как я понял, что бы по несвязанным выборкам (по разным людям) сказать по чему именно идет гипердиагностика, по чему гиподиагностика, и сделать это обоснованно.

Да, идея как раз такая, попробую осмыслить все сказанное.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 24.04.2014 - 22:14
Сообщение #8





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



Цитата(p2004r @ 24.04.2014 - 01:23) *
Они не смогут такие данные получить, никто не будет "прилюдно" ставить окончательный диагноз. А ретроспективу тут даже патологоанатом не обеспечит smile.gif. Ну и основная идея, как я понял, что бы по несвязанным выборкам (по разным людям) сказать по чему именно идет гипердиагностика, по чему гиподиагностика, и сделать это обоснованно.

(Не согласен. Пока не будет построена большая таблица именно так, как я расписал выше - никаких выводов о том что с чем путается и насколько они сделать не смогут. И я думал о рандомизации применительно именно к такой таблице. Она имела бы преимущество перед тестами Бокера, Максвела и т.п., т.к. не опиралась бы на известные распределения. Ну а, собственно, грамотный статистический анализ никаком образом не подразумевает прилюдного оглашения его результатов. Должны быть сделаны обоснованные выводы и приняты обоснованные управленческие решения. Можно по-тихому cool.gif .)

Задача понята мной неверно, пост не стираю, но беру в скобки.

Сообщение отредактировал nokh - 25.04.2014 - 00:22
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 24.04.2014 - 23:56
Сообщение #9





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



Цитата(nokh @ 24.04.2014 - 22:14) *
Не согласен. Пока не будет построена большая таблица именно так, как я расписал выше - никаких выводов о том что с чем путается и насколько они сделать не смогут. И я думал о рандомизации применительно именно к такой таблице. Она имела бы преимущество перед тестами Бокера, Максвела и т.п., т.к. не опиралась бы на известные распределения. Ну а, собственно, грамотный статистический анализ никаком образом не подразумевает прилюдного оглашения его результатов. Должны быть сделаны обоснованные выводы и приняты обоснованные управленческие решения. Можно по-тихому cool.gif .


это выливается в дублирование всей диагностики в больнице + (такое нельзя спрятать) полный паралич выставления окончательных диагнозов (думаю всё будет выноситься консилиумами после 12 последовательных консультаций с дообследованиями smile.gif )

ну и смотрите какая моральная дилемма --- выставляют диагноз и мы знаем что он "не правильный".... его скрыть невозможно, иначе это эксперименты над людьми.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 25.04.2014 - 00:14
Сообщение #10





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



Что-то я затупил! Прошу прощения! shuffle.gif Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 2 года. Предыдущие посты отменяются. Всё оказывается куда проще. Можно обычным хи-квадратом сравнить. Или рандомизацией. Ещё желательно для разностей частот по каждому диагнозу рассчитать 95%-ные доверительные интервалы. Завтра ссылку на онлайновый калькулятор для этого поищу!

Сообщение отредактировал nokh - 25.04.2014 - 00:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 25.04.2014 - 10:47
Сообщение #11





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



Цитата(nokh @ 25.04.2014 - 00:14) *
Что-то я затупил! Прошу прощения! shuffle.gif Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 2 года. Предыдущие посты отменяются. Всё оказывается куда проще. Можно обычным хи-квадратом сравнить. Или рандомизацией. Ещё желательно для разностей частот по каждому диагнозу рассчитать 95%-ные доверительные интервалы. Завтра ссылку на онлайновый калькулятор для этого поищу!


ну тогда, я бы лучше еще дополнительно "разности" и "суммы" построил бутстрепом

при выпадении чего то из доверительного интервала сразу станет ясно с чем проблемы.

Код
data.boot <- replicate(10000, ## число перевыборок из исходной совокупности
                       table(sample(data,  ##  исходная совокупность за два года
                                    30,    ##  размер контрольной выборки
                                    replace = TRUE )))


res.delta <- apply(sapply(1:ncol(data.boot),
                          function(i) combn(data.boot[,i],
                                            2,
                                            FUN = function(n) n[1]-n[2])),
                   1,
                   quantile, probs = c(5/2, 50, 100-5/2)/100)  ## считать на указанные перцентили

colnames(res.delta) <- combn(c("A","B","C"),2, function(n) paste0(n[1],n[2]))

res.sum <- apply(sapply(1:ncol(data.boot),
                        function(i) combn(data.boot[,i],
                                          2,
                                          FUN = function(n) n[1]+n[2])),
                 1,
                 quantile, probs = c(5/2, 50, 100-5/2)/100)  ## считать на указанные перцентили

colnames(res.sum) <- combn(c("A","B","C"),2, function(n) paste0(n[1],n[2]))

> res.delta
       AB  AC  BC
2.5%  -11 -26 -23
50%    -6 -20 -14
97.5%  -1 -14  -5

> res.sum
      AB AC BC
2.5%   4 18 26
50%    8 23 29
97.5% 14 27 30


Сообщение отредактировал p2004r - 25.04.2014 - 11:01


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 25.04.2014 - 11:35
Сообщение #12





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



Цитата(nokh @ 25.04.2014 - 00:14) *
Что-то я затупил! Прошу прощения! shuffle.gif Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 2 года. Предыдущие посты отменяются. Всё оказывается куда проще. Можно обычным хи-квадратом сравнить. Или рандомизацией. Ещё желательно для разностей частот по каждому диагнозу рассчитать 95%-ные доверительные интервалы. Завтра ссылку на онлайновый калькулятор для этого поищу!


Или можно сразу смотреть на результат эксперимента вот в таком пространстве помещая туда "результат проверки-инспекции" с помощью predict()

Пространство отражает факт что три показателя являются фиксированной суммой. и число степеней свободы в данном случае 2. Если случай смеси 3х компонент можно легко отразить на стандартном графике смеси, то если "диагнозов" больше трех (ну и "контрольные выборки" разного размера), то удобнее смотреть в PCA (мы увидим "гиперпирамиду" перевыборок и точки "контрольных выборок").

Код
biplot(prcomp(t(data.boot),
              center=F,
              scale.=F),
       xlabs=rep(".", 10000),
       choices=c(3,2))

biplot(prcomp(t(data.boot),
              center=F,
              scale.=F),
       xlabs=rep(".", 10000),
       choices=c(1,2))


PS надо наконец освоить генерацию мультипликационных гифов, а то так по фиксированным снимкам боюсь большинство не поймет "полета мысли" smile.gif

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 25.04.2014 - 14:14
Сообщение #13





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



Вот "дополнительные слои" в пирамиду smile.gif Оценка для размеров контрольной выборки в 10 и 60 случаев

Код
data.boot.10 <- replicate(10000, ## число перевыборок из исходной совокупности
                          table(sample(data,  ##  исходная совокупность за два года
                                       10,    ##  размер контрольной выборки
                                       replace = TRUE )))

data.boot.60 <- replicate(10000, ## число перевыборок из исходной совокупности
                          table(sample(data,  ##  исходная совокупность за два года
                                       60,    ##  размер контрольной выборки
                                       replace = TRUE )))


biplot(prcomp(t(cbind(data.boot, data.boot.10, data.boot.60)),
              center=F,
              scale.=F),
       xlabs=c(rep(".", 10000),rep("o", 10000),rep("0", 10000) ),
       choices=c(3,2))

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 27.04.2014 - 20:24
Сообщение #14





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



Подход, предлагаемый р2004r, буду осмысливать по мере появления времени. Более традиционный подход таков:
Например, было за 2 года:
КодМКБ1 - 150
КодМКБ2 - 3
КодМКБ3 - 250
Всего: 150+3+250=403
Верифицированы:
КодМКБ1 - 0
КодМКБ2 - 20
КодМКБ3 - 100
Всего: 0+20+100=120

Рассчитаем различия в диагностике КодМКБ1.

1) Расчёт средней частоты диагноза в группах. Калькулятор для расчёта точного 95%-ного интервала для частот методом Клоппера - Пирсона: http://statpages.org/confint.html
В группе 1: x=150, N=403. Средняя частота диагноза = 37,22% (95% ДИ: 32,49 - 42,14)
В группе 2: x=0, N=120. Средняя частота диагноза = 0,00% (95% ДИ: 0,00 - 0,03)

2)Расчёт разности частот.
В группе 1: есть - 150, нет - 403-150=253
В группе 2: есть -0, нет -120-0=120.

http://department.obg.cuhk.edu.hk/research...t_2x2_table.asp . Вбиваем таблицу:
150 0
253 120

Results:
Chi.Sq=60.8204; df=1; p=0.0000
Prop 1=0.3722; Prop 2=0.0000;
Diff=0.3722; SE(p1-p2)=0.0241 ;
95%CL=0.3250-0.4194;

Разность: 37,22% (955 ДИ: 32,50-41,94). Т.к. ДИ не содержит нуля - различия в частотах статистически значимы. Об этом же говорит и критерий хи-квадрат.

>p2004r. Буду признателен за ссылки на материал по ресэмплингу для композиционых данных и "гиперпирамиды".

Сообщение отредактировал nokh - 28.04.2014 - 19:39
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 28.04.2014 - 23:22
Сообщение #15





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



Цитата(nokh @ 27.04.2014 - 20:24) *
>p2004r. Буду признателен за ссылки на материал по ресэмплингу для композиционых данных и "гиперпирамиды".


Особых ссылок нет, все элементы "классика ML" против которой возражений как бы и нет. smile.gif

Предполагается что каждое наблюдение измеренное по нескольким характеристикам это точка в пространстве образованном осями этих характеристик. (Номинальные и ранговые шкалы сводятся к наборам шкалам "0-1".) Это пространство может быть приведено в некий "канонический вид", в котором шкалы-оси взаимно независимы (иначе говоря ортогональны). Некий минимальный набор этих ортогональных осей описывает "простую структуру" --- аля "state-space" представление оригинальной системы. Мы фактически идентифицировали (вернее получили линейную аппроксимацию) системы которая ведет себя "также как наша", но описание которой существенно проще.

1) Мои личные рассуждения и взгляд на сущность наблюдения за системой следующие.

Теория этого дела, это хорошо освещенное в литературе svd разложения матрицы Хенкеля (или аналогичных ей матриц). Традиционно матрицы Хенкеля всех входов и выходов наблюдаемой системы склеивают cbind() и делают svd разложение, на выходе state-space описание идентифицируемой системы из которого в принципе можно получить параметры идентифицируемой системы. Как легко видно из описанного, простое традиционное наблюдение за системой в случайные моменты времени фактически дает нам "перемешанную по строкам" такую составную по наблюдаемым "входам-выходам" матрицу Хенкеля "с окном вырожденной единичной длинны". Ну для svd разложения совершенно всё равно в каком порядке поданы строки и столбцы smile.gif На выходе мы получаем аппроксимацию изучаемой системы и остается только отбросить незначащие компоненты. (При необходимости можно произвести обратную проекцию, правда будут получены уще смещенные оценки, но их довольно легко нормировать).

Ссылки можно почитать (кроме википедии про матрицу Хенкеля и state space представление систем) это

https://faculty.washington.edu/mfazel/Hankelrm23.pdf
ftp://ftp.esat.kuleuven.be/sista/ida/reports/87-29.pdf

Последний присоединяю просто smile.gif


2) Ну и размерность системы в этом пространстве естественно полностью определяется степенями свободы. Если наблюдаем сумму, то естественно получаем "пирамиду". Если наблюдаем сумму "фиксированного размера" --- наблюдаем "треугольный срез" этой "пирамиды". Геометрия smile.gif.
Прикрепленные файлы
Прикрепленный файл  moonen89offline_C18.pdf ( 81,41 килобайт ) Кол-во скачиваний: 276
 


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

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему