Две группы, как анализировать |
Здравствуйте, гость ( Вход | Регистрация )
Две группы, как анализировать |
19.04.2014 - 23:34
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 15 Регистрация: 4.09.2013 Пользователь №: 25228 |
Добрый день, уважаемые коллеги. Подскажите пожалуйста, каким образом можно обработать результаты проведенного исследования.
Цель исследования заключалась в том, чтобы доказать, что в определенной больнице кодироание диагнозов по МКБ осуществляется некорректно. Для этого была выбрана группа интересующих нас диагнозов за последние два года, таким образом получилось что-то подобное: КодМКБ1 - 150 человек КодМКБ2 - 3 человека КодМКБ3 - 250 человек и т.д. Далее в течение трех месяцев детально обследовались люди, которые лежали в тот момент в стационаре, им ставился корректный диагноз, соответственно получился еще один ряд значений: КодМКБ1 - 0 человек КодМКБ2 - 20 человек и т.д. Можно ли сделать вывод на основании подобных данных о корректности кодировки диагноза за последние два года и если да, то каким образом провести анализ. |
|
20.04.2014 - 16:29
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Добрый день, уважаемые коллеги. Подскажите пожалуйста, каким образом можно обработать результаты проведенного исследования. Цель исследования заключалась в том, чтобы доказать, что в определенной больнице кодироание диагнозов по МКБ осуществляется некорректно. Для этого была выбрана группа интересующих нас диагнозов за последние два года, таким образом получилось что-то подобное: КодМКБ1 - 150 человек КодМКБ2 - 3 человека КодМКБ3 - 250 человек и т.д. Далее в течение трех месяцев детально обследовались люди, которые лежали в тот момент в стационаре, им ставился корректный диагноз, соответственно получился еще один ряд значений: КодМКБ1 - 0 человек КодМКБ2 - 20 человек и т.д. Можно ли сделать вывод на основании подобных данных о корректности кодировки диагноза за последние два года и если да, то каким образом провести анализ. Группу по данным прошедших двух лет используете для генерации кучи случайных выборок размером в тестовую группу "углубленной постановки диагноза". Для всех диагнозов которые ставились в больнице за последние два года получаете доверительные границы, например посчитав куда попадают перцентили 2.5 и 98.5 для соответствующего диагноза. Конечно если углубленной диагностике принципиально подвергался ограниченный по диагнозу набор больных, то аналогично должен быть ограничен и набор исторических данных. Хотя здесь надо хорошо подумать, лучше что бы никакой цензуры по диагнозам не велось (иначе можно семплер правдоподобный не родить). |
|
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 |
|
23.04.2014 - 20:59
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 |
|
|
23.04.2014 - 22:00
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
>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 чёртова табуляция По сути дела 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 написал пора спать PPS надо приучить себя к практике писать 100-5/2 PPPS у sample() пропустил ключ replace = TRUE Сообщение отредактировал p2004r - 24.04.2014 - 10:21 |
|
23.04.2014 - 22:23
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
У вас - зависимые выборки, т.к. один и тот же человек присутствует одновремнно в двух диагностиках. Критерии типа хи-квадрат здесь не уместны, зависимые частоты Они не смогут такие данные получить, никто не будет "прилюдно" ставить окончательный диагноз. А ретроспективу тут даже патологоанатом не обеспечит . Ну и основная идея, как я понял, что бы по несвязанным выборкам (по разным людям) сказать по чему именно идет гипердиагностика, по чему гиподиагностика, и сделать это обоснованно. |
|
24.04.2014 - 21:27
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 15 Регистрация: 4.09.2013 Пользователь №: 25228 |
|
|
24.04.2014 - 22:14
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 1202 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 |
Они не смогут такие данные получить, никто не будет "прилюдно" ставить окончательный диагноз. А ретроспективу тут даже патологоанатом не обеспечит . Ну и основная идея, как я понял, что бы по несвязанным выборкам (по разным людям) сказать по чему именно идет гипердиагностика, по чему гиподиагностика, и сделать это обоснованно. (Не согласен. Пока не будет построена большая таблица именно так, как я расписал выше - никаких выводов о том что с чем путается и насколько они сделать не смогут. И я думал о рандомизации применительно именно к такой таблице. Она имела бы преимущество перед тестами Бокера, Максвела и т.п., т.к. не опиралась бы на известные распределения. Ну а, собственно, грамотный статистический анализ никаком образом не подразумевает прилюдного оглашения его результатов. Должны быть сделаны обоснованные выводы и приняты обоснованные управленческие решения. Можно по-тихому .) Задача понята мной неверно, пост не стираю, но беру в скобки. Сообщение отредактировал nokh - 25.04.2014 - 00:22 |
|
24.04.2014 - 23:56
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Не согласен. Пока не будет построена большая таблица именно так, как я расписал выше - никаких выводов о том что с чем путается и насколько они сделать не смогут. И я думал о рандомизации применительно именно к такой таблице. Она имела бы преимущество перед тестами Бокера, Максвела и т.п., т.к. не опиралась бы на известные распределения. Ну а, собственно, грамотный статистический анализ никаком образом не подразумевает прилюдного оглашения его результатов. Должны быть сделаны обоснованные выводы и приняты обоснованные управленческие решения. Можно по-тихому . это выливается в дублирование всей диагностики в больнице + (такое нельзя спрятать) полный паралич выставления окончательных диагнозов (думаю всё будет выноситься консилиумами после 12 последовательных консультаций с дообследованиями ) ну и смотрите какая моральная дилемма --- выставляют диагноз и мы знаем что он "не правильный".... его скрыть невозможно, иначе это эксперименты над людьми. |
|
25.04.2014 - 00:14
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 1202 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 |
Что-то я затупил! Прошу прощения! Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 2 года. Предыдущие посты отменяются. Всё оказывается куда проще. Можно обычным хи-квадратом сравнить. Или рандомизацией. Ещё желательно для разностей частот по каждому диагнозу рассчитать 95%-ные доверительные интервалы. Завтра ссылку на онлайновый калькулятор для этого поищу!
Сообщение отредактировал nokh - 25.04.2014 - 00:19 |
|
25.04.2014 - 10:47
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Что-то я затупил! Прошу прощения! Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 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 |
|
25.04.2014 - 11:35
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Что-то я затупил! Прошу прощения! Видимо невнимательно прочитал. Люди действительно разные: те что лежат сейчас и те, что лежали за последние 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 надо наконец освоить генерацию мультипликационных гифов, а то так по фиксированным снимкам боюсь большинство не поймет "полета мысли" |
|
25.04.2014 - 14:14
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Вот "дополнительные слои" в пирамиду Оценка для размеров контрольной выборки в 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)) |
|
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 |
|
28.04.2014 - 23:22
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
>p2004r. Буду признателен за ссылки на материал по ресэмплингу для композиционых данных и "гиперпирамиды". Особых ссылок нет, все элементы "классика ML" против которой возражений как бы и нет. Предполагается что каждое наблюдение измеренное по нескольким характеристикам это точка в пространстве образованном осями этих характеристик. (Номинальные и ранговые шкалы сводятся к наборам шкалам "0-1".) Это пространство может быть приведено в некий "канонический вид", в котором шкалы-оси взаимно независимы (иначе говоря ортогональны). Некий минимальный набор этих ортогональных осей описывает "простую структуру" --- аля "state-space" представление оригинальной системы. Мы фактически идентифицировали (вернее получили линейную аппроксимацию) системы которая ведет себя "также как наша", но описание которой существенно проще. 1) Мои личные рассуждения и взгляд на сущность наблюдения за системой следующие. Теория этого дела, это хорошо освещенное в литературе svd разложения матрицы Хенкеля (или аналогичных ей матриц). Традиционно матрицы Хенкеля всех входов и выходов наблюдаемой системы склеивают cbind() и делают svd разложение, на выходе state-space описание идентифицируемой системы из которого в принципе можно получить параметры идентифицируемой системы. Как легко видно из описанного, простое традиционное наблюдение за системой в случайные моменты времени фактически дает нам "перемешанную по строкам" такую составную по наблюдаемым "входам-выходам" матрицу Хенкеля "с окном вырожденной единичной длинны". Ну для svd разложения совершенно всё равно в каком порядке поданы строки и столбцы На выходе мы получаем аппроксимацию изучаемой системы и остается только отбросить незначащие компоненты. (При необходимости можно произвести обратную проекцию, правда будут получены уще смещенные оценки, но их довольно легко нормировать). Ссылки можно почитать (кроме википедии про матрицу Хенкеля и state space представление систем) это https://faculty.washington.edu/mfazel/Hankelrm23.pdf ftp://ftp.esat.kuleuven.be/sista/ida/reports/87-29.pdf Последний присоединяю просто 2) Ну и размерность системы в этом пространстве естественно полностью определяется степенями свободы. Если наблюдаем сумму, то естественно получаем "пирамиду". Если наблюдаем сумму "фиксированного размера" --- наблюдаем "треугольный срез" этой "пирамиды". Геометрия .
Прикрепленные файлы
|
|