Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Каким методом воспользоваться?
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
Leer
Коллеги, у меня случился приступ кретинизма и сомнений.
Прошу помочь в двух вопросах.

1. На руках данные - скорость наступления события N (две переменных, начало = 0, конец = t, цензурированных и пропущенных нет, событие N наступило для всех наблюдений, других эпизодов наблюдений нет, окно наблюдения также не опредлено). Задача - оценить скорость наступления события N для разных групп обследуемых. Заказчик честно утверждает, что это Kaplan-Meier estimation+piecewise constant exponential models. Я столь же честно смотрю на данные и думаю, что все-таки нужно использовать только ANOVA, без бессмсыленных изысков анализа выживаемости. Прав ли я?

2. надо проверить связь двух переменных (или оценить влияние) - одна дихотомическая, вторая ранговая, порядка 10 градаций. Из методов в голову приходит только традиционная ранговая корреляция r-Спирмена. Но меня внезапно стали терзать смутные сомнения, может - есть еще что более подходящее задаче. Чем бы вы воспользовались?

В обоих случаях выборка - несколько тысяч наблюдений.
DrgLena
1. Заказчик абсолютно прав. Нужен анализ скорости наступления события, а это не поезд, который идет с одинаковой скоростью. Но желательно, чтобы заказчик обеспечил и программным обеспечением для такой работы. У меня опыт только STATA (предоставлял заказчик). Очевидно, что функция выживаемости или функция риска различна на различных этапах наблюдения, т.е. нужна модель непропорционального риска. Каплан-Майер дает только визуализацию или возможность сравнить наглядно несколько кривых, например по медиане. Нужна кокс-регрессионная модель, причем как желает заказчик, непропорционального риска.
2. Коэффициент корреляции ? это очень скромно. Все зависит от задачи исследования. Если первая переменная бинарна, то можно посмотреть какие именно значения второй ранговой переменной соответствуют каждому значению бинарной переменной. Это может быть анализ таблицы сопряженности или ранговые критерии оценки различий.
nokh
(1). А я согласен с Leer. И Каплан-Мейер, и Кокс нужны для грамотной обработки цензурированных наблюдений. А раз цензурированных наблюдений нет - нечего и огород городить. В отсутствие цензурированных наблюдений оценка Каплана-Мейера сводится к обычной накопленной частоте эмпирического распределения. Поэтому из обычного анализа распределения времени до наступления события (не хочу называть его скоростью: скорость - это события в единицу времени) можно получить всю необходимую информацию: ту же медиану, квартили, среднее и т.д. Более того если данных так много можно поискать и другие полезные особенности распределений, а не только оценить центральную тенденцию в виде медианы. Поэтому и сравнения можно организовать интереснее: не только по среднему в ANOVA (после преобразования к нормальной шкале) или в Краскеле-Уоллисе, но и по форме распределений: скажем нарезать распределения на кусочки и анализировать как таблицу частот. Думаю скорее всего заказчик "передрал" терминологию требований из работ с цензурированными данными. Единственное разумное объяснение - для возможности сравнения с результатами аналогичных исследований. Т. е если обычно анализируются цензурированные данные и результаты выражаются в каких-то рисках, то для обеспечения возможности сравнения нужно и эти данные обсчитывать аналогично. Хотя, повторюсь, для ответа на вопрос исследования этого не нужно.
(2) rank-biserial correlation. Софта не искал, если найдёте - прошу поделиться ссылкой.
Leer
DrgLena, nokh - благодарю.

2 DrgLena
если вдаваться в подробности, то данные - мультиэпизодная panel data. заказчика интересует только первый эпизод, время поиска работы (от нуля до какого-то значения, когда он, собственно, и нашел работу). Выглядит как данные, организованные для анализа выживаемости и прочих временных штудий. Однако по ближайшем рассмотрении мне показалось, что это все-таки просто интервальные данные времени поиска работы. Поэтому, с учетом отсутствия цензурированных наблюдений, и встал вопрос об уместности оценки Каплана-Мейера/регрессии Кокса. К тому же, визуально оценивать график сложно - 11 кривых, с наложениями и т.д.

А как Вы работаете с таблицами сопряженности большой размерности? Я внятно могу интерпретировать только таблицы 2*2, дальше уже путаюсь и теряюсь.
за ранговые оценки различий - спасибо большое, я как-то выпустил этот блок методов, привык их использовать на ненормально распределенных данных, по преимуществу.
задача здесь простая - оценить, респонденты с каким уровнем образования восстанавливаются в вузах, а для кого - начинают с самого начала.

видимо, сделаю проще в выборе Kaplan-Meier vs ANOVA - обрисую свою позицию и все "за" и "против" заказчику, и попрошу определиться.


2nokh
угу, я примерно такими же соображениями и руководствовался, когда думал о том, что каплан/кокс не нужен. И, думаю, Вы правы в том, что заказчик просто следует тренду обработки - применение piecewise constant models, Kapla-Meier, Cox модны среди немецких социологов (как я понял, заказчик жестко на них ориентируется ).
расскажите, пожалуйста, подробнее, как Вы делаете "анализ по форме распределений: скажем нарезать распределения на кусочки и анализировать как таблицу частот"? я с такой формой анализа не встречался.

кстати, а для чего Вы делаете преобразование к нормальному распределению для ANOVA? Ведь, насколько я помню, дисперсионный анализ больше требователен к гомогенности дисперсий, и не оперирует параметрами распределения. Я обхожусь проверкой на гомогенность (критерий Левена) или на сферичность - при многомерном дисперсионном (критерий Бокса).

бисериальный...спасибо, подумаю.
софта как такового не видел, но знаю, что для SPSS написан макрос - http://rivita.ru/files/KO_Various_proximities_RU.zip
возможно, есть реализация в R, но я с ним пока не работаю
p2004r
Цитата(Leer @ 31.08.2011 - 16:07) *
..............

А как Вы работаете с таблицами сопряженности большой размерности? Я внятно могу интерпретировать только таблицы 2*2, дальше уже путаюсь и теряюсь.

.................


возможно, есть реализация в R, но я с ним пока не работаю


надо начинать smile.gif

mosaicplot(x, ...)

x: a contingency table in array form, with optional category
labels specified in the ?dimnames(x)? attribute. The table
is best created by the ?table()? command.

вот пример картинки (из http://r-statistics.livejournal.com/12710.html )

mydata<-read.csv("http://dl.dropbox.com/u/17112096/mydata.csv")
mosaicplot(table(mydata$ev_answer,mydata$rec_answer,mydata$freq))
Leer
Цитата(p2004r @ 1.09.2011 - 10:35) *
надо начинать smile.gif


меня коллеги уже чуть ли не пинками в сторону R гонят
пока сошлись на странном компромиссе - принюхиваюсь к Stata, которая тоже командная smile.gif
собственно, ralfer, на пост которого Вы ссылаетесь - один из моих коллег-друзей


а про таблицы сопряженности - как сделать-то понятно
вопрос в том, как качественно содержательно интерпретировать таблицы больше, чем 2*2
DrgLena
Интерпретация таблиц вытекает из их содержания, например вы хотете посмотреть как в двух группах распределены значения переменной, выраженной 4-мя значениями. Если категории упорядоченные, полуколичественные,то могут быть использованы соответстующие корреляции, а если значения чисто номинальные, то таблицы дают возможность оценить каких значений больше в какой из двух групп. Табличка разъезжается, но можно заметить, что CALL=3 и CALL=4 чаще встречается в группе LIVE=2. Дальше можно доказывать сравнением долей. Интерпретация - среди умерших больных преобладали больные с клеточным типом опухоли обозначенным 3 и 4 (82,1%), среди проживших как минимум 5 лет этот процент 52,3. С упорядоченными категориями проще, есть тесты соответствующие.

Summary Frequency Table (foto.STA) Table: LIVE(2) x CALL(4)
LIVE CALL - 1 CALL - 2 CALL - 3 CALL - 4 Row - Totals
Count 1 16 26 32 14 88
Row Percent 18,2% 29,5% 36,4% 15,9%
Count 2 4 1 14 9 28
Row Percent 14,3% 3,6% 50,0% 32,1%
Count All Grps 20 27 46 23 116
p2004r
Цитата(Leer @ 1.09.2011 - 09:33) *
меня коллеги уже чуть ли не пинками в сторону R гонят

....

вопрос в том, как качественно содержательно интерпретировать таблицы больше, чем 2*2


[под девизом "лучше один раз увидеть"] вот как выглядит графически таблица из примера.
DoctorStat
Цитата(Leer @ 1.09.2011 - 11:33) *
а про таблицы сопряженности вопрос в том, как качественно содержательно интерпретировать таблицы больше, чем 2*2
Для примера пусть таблица состоит из 2-х строк: мужчины, женщины, и 3-х столбцов: негры, белые, китайцы. Тогда p-value для таблицы сопряженности 2х3 даст вероятность справедливости нулевой гипотезы, что частоты мужчин и женщин в трех расах не отличаются. Или, эквивалентной нулевой гипотезы, что среди мужчин негров, белых и китайцев столько же, сколько и среди женщин.
nokh
Цитата(Leer @ 31.08.2011 - 20:07) *
расскажите, пожалуйста, подробнее, как Вы делаете "анализ по форме распределений: скажем нарезать распределения на кусочки и анализировать как таблицу частот"? я с такой формой анализа не встречался.

Суть такая же как проверка соответствия эмпирического распределения теоретическому с помощью критерия хи-квадрат (есть в разных учебниках). Только здесь имеем 2 или несколько эмпирических распределений. Нарезать можно примерно так: найти минимальное и максимальное значение показателя в массиве данных и разделить отрезок между ними на несколько частей (можно равных, но необязательно). Сколько таких отрезков сделать зависит от формы распределений и объёма выборок: нужно "ухватить" особенности формы распределения. Далее подсчитать количество значений для каждой выборки, попавших в каждый интервал и сформировать из этих чисел таблицу частот, которую проанализировать на однородность критериями хи-квадрат или лучше критерием отношения правдоподобия (синонимы: G-критерий Вулфа, G-квадрат, информационный критерий Кульбака и др.). В случае обнаружения неоднородности уже разбираться за счёт чего (каких ячеек) она проявилась. Странно, что вы, работая с социологическими данными, не имеете опыта анализа больших таблиц сопряжённости: там же без этого - никуда? Здесь-то ещё просто разбираться: r x c - всё на плоскости, а вот с многомерными таблицами частот бывает туго. Диаграммы, предложенные р2004r, хорошо визуализируют неоднородность в таблице частот, но к ним нужно какое-то время привыкать, и они всё равно не отражают статистической значимости "выпадения" ячеек. Я обычно делаю примитивно: рассчитываю для каждой ячейки отклонения Фримана-Тьюки и заливаю эти ячейки разными цветами: красным - ячейки, отклоняющиеся от ожидаемых частот с p<0,001, жёлтым - с p<0,01 и зелёным - с p<0,05, а затем интерпретирую. Можно вместо отклонений Фримана-Тьюки использовать стандартизованные остатки.
Цитата(Leer @ 31.08.2011 - 20:07) *
кстати, а для чего Вы делаете преобразование к нормальному распределению для ANOVA? Ведь, насколько я помню, дисперсионный анализ больше требователен к гомогенности дисперсий, и не оперирует параметрами распределения. Я обхожусь проверкой на гомогенность (критерий Левена) или на сферичность - при многомерном дисперсионном (критерий Бокса).

Многомерный дисперсионный анализ не использую по принципиальным соображениям. А требований у любого ANOVA два: нормальность распределения ошибки (остатков) и однородность дисперсий (гомоскедастичность). Причём во всех учебниках на первом месте стоит именно нормальность. Помните плохо: дисперсионный анализ - параметрический метод и оперирует именно параметрами распределения: средними и дисперсиями. Уверен, что распределение времени до трудоустройства скорее логнормально, чем нормально, т.к. все события во времени имеют выраженную положительную асимметрию. Проверьте распределение остатков на нормальность, если скошенное - попробуйте предварительно прологарифмировать данные и снова посмотреть на остатки, а также оценить насколько изменятся или нет выводы.
Цитата(Leer @ 31.08.2011 - 20:07) *
бисериальный...спасибо, подумаю.
софта как такового не видел, но знаю, что для SPSS написан макрос - http://rivita.ru/files/KO_Various_proximities_RU.zip
возможно, есть реализация в R, но я с ним пока не работаю

Посмотрел файл - там бисериальный. Это обычная корреляция Пирсона - мы как-то уже обсуждали это на форуме. По крайней мере программы его обычно так и считают. А здесь нужен не бисериальный, а рангово-бисериальный. А это уже экзотика даже в англоязычном мире.
p2004r
Цитата(nokh @ 1.09.2011 - 21:30) *
Диаграммы, предложенные р2004r, хорошо визуализируют неоднородность в таблице частот, но к ним нужно какое-то время привыкать, и они всё равно не отражают статистической значимости "выпадения" ячеек. Я обычно делаю примитивно: рассчитываю для каждой ячейки отклонения Фримана-Тьюки и заливаю эти ячейки разными цветами: красным - ячейки, отклоняющиеся от ожидаемых частот с p<0,001, жёлтым - с p<0,01 и зелёным - с p<0,05, а затем интерпретирую. Можно вместо отклонений Фримана-Тьюки использовать стандартизованные остатки.


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

вот ссылка в ней есть pdf с примерами http://cran.r-project.org/web/packages/vcd/index.html
Leer
1. большое спасибо за разъяснения по анализу таблиц размерности не 2*2. я примерно так и работаю с таблицами 2*n, сложности возникают при таблицах средних, примерно 4*4, когда, как сказала DrgLena, таблица расползается. впрочем, общую идею из комментариев я уловил.

2nokh - особое спасибо за разъяснение по работе с формой распределений.
кстати, я психолог, и работаю, в основном, с интервальными данными. номинальные/ранговые или time-series данные - для меня, скорее, исключение и редкость. на этом форуме потому и зарегестрировался, что совершенно другие данные и задачи - ресурс для обучения очень хороший smile.gif


2. по первоначальному сабжу.
все-таки оказалось, что идиот я. еще раз, перед тем как отправить письмо заказчику, свежим взглядом пересмотрел данные, и понял, что первоначально неправильно интерпретировал их структуру.

целевая переменная - время поиска работы. я принял это как первый эпизод, что совершенно неверно, так как большая часть респондентов нашли работу только на третий-пятый-девятй эпизоды. а до этого - не работали, получали образование и т.д.
и у меня сейчас первоначальная задача - трансформировать данные из многовходового/nested/long вида в одновходовый/wide вид. с учетом того, что мне нужно определить эпизод, в котором респондент находит первый раз работу, и зафиксировать его уровень образования на этот момент.

поэтому вопрос, скорее DrgLena, и к другим специалистам, кто работал с Stata - как это можно сделать средствами Stata? да и вообще, стоит ли работать с такими преобразованиями, правильно ли я делаю.
DrgLena
Я сейчас со STATA не работаю. Не совсем понимаю задачу, что такое эпизоды и какие преобразования вам нужно делать? Могу только фантазировать. Для каждого эпизода нужен свой анализ? В анализе выживаемости только один эпизод. В терминах этого анализа есть complete (наблюдение закончено, умер или рецидив) и есть сensored responses. Complete для вас ? нашедший работу в какой то временной период, который может быть задан заказчиком (может, это ваши эпизоды), а может, интервалы на которые можно разбить все время наблюдения нужно найти вам, используя piecewise constant exponential models. Не нашедшие работу в конкретный временной период ? для вас сensored responses. Вас должна интересовать функция описывающая вероятность найти работу, т.е 1 - Cumulative Proportion Surviving (от 0 до 1). В STATA, как и в любой другой программе, вы задаете условия выбора переменных и указываете метки для Complete, сensored и команду. Документация дает подробный синтаксис, если вы конечно знаете, какой анализ или какую регрессию хотите провести piecewise constant exponential models или cox, если данные представлены как для Survival. Piecewise я делала только Piecewise linear regression with breakpoint и не в STATA.
Не хватает данных, чтобы понять цель исследования, есть время ?у?, а что иксы?
Leer
2 DrgLena.

спасибо за ответ.
Данные имеют структуру, похожую на ту, которая на картинке:
1. Номер респондента. Несколько строк могут быть посвящены одному респонденту, потому что данные по нескольким эпизодам.
2. Age ? год рождения респондента
3. Номер эпизода. Отрезок времени, за который произошло какое-то изменение, по сравнению с предыдущим ? нашел работу, пошел в вуз, уволился и т.д. Эпизоды неравноценны, так, например у первого респондента второй эпизод, в несколько месяцев ? технический, как заполнение разрыва в данных (по каким причинам ? неизвестно ? либо данные утеряны, либо респондент не заполнял опросник и т.д.; специальной метки, обозначающей такие эпизоды, нет).
4. Begin/End ? начало и конец эпизодов, измерение в месяцах, 0 ? январь того года, когда респондент стал совершеннолетним
5. Edu ? получал ли какое-нибудь образование респондент в этот эпизод. Градаций уровней образования ? около 11, в отдельной переменной, я их не стал указывать. ?-1? - не принимал участие (не получал образования)
6. Job ? работал ли в этот эпизод (?-1? - не работал)

Моя задача ? определить, как влияет уровень образования на время поиска первой работы.
Соответственно, подозреваю, надо трансформировать базу данных в простой одновходовидый вид (из long в wide), когда одна строка ? один респондент. А временем поиска работы будет либо показатель ?End? эпизода, перед первым эпизодом для каждого респондента, когда он впервые находит работу. Либо ?Begin-1? эпизода, когда Job впервые принимает значение ?1?. Точно так же надо указать значения Edu на этот момент. Данные по прочим эпизодам, которые не касаются первой работы (и, возможно, второй работы) ? отсечь.

Всего порядка 6 тысяч респондентов, 5-76 эпизодов по каждому (более 90 тысяч строк в исходной базе данных), по 60 переменным.

И все это сделать надо, очень желательно ? средствами Stata.
Не считая того, что я, все-таки, не считаю, что тут есть смысл использовать требуемые заказчиком Kaplan-Meier estimations/piecewise models, так как для меня неочевидно, что это survival data.

Признаться, я в растерянности.
Что скажете, что на Ваш взгляд, следует делать?
DrgLena
Если интересует только время первой работы, то выбираете только те записи для которых begin=0 для каждого значения есть и end т.е. есть интервал на котором известен статус job и есть фактор edu и сравниваете две кривые К-М. Вас должна интересовать функция описывающая вероятность найти работу, т.е 1 - Cumulative Proportion Surviving (от 0 до 1, а не наоборот, как при анализе выживаемости). Если вы хотите привести фрагмент своих данных, то лучше это сделать в виде работоспособной электронной таблицы любого фрагмента, на котором можно что то показать, а не в виде картинки.
Leer
2DrgLena

несколько заболел, поэтому не сразу отвечаю.

Спасибо за Ваш ответ.


По задаче ? мне нужно проследить, как я уже говорил, влияние уровня образования на время поиска первой работы.
Однако нужны данные не по всем эпизодам. Мне кажется, что необходимо трансформировать данные из long формата в wide (в файле примера данных оба формата представлены).
Время поиска работы я определяю как значение переменной Begin в том эпизоде, когда переменная Job впервые принимает значение ?1?. А уровень образования ? это значение переменной Edu_level в последнем эпизоде (до эпизода начала работы), когда переменная Edu принимает значение ?1?. И потом, на переструктурированных данных, проверять гипотезу уже методами дисперсионного анализа.

Эпизоды не равноценны, так как сконструированы на основе биографических данных. Многие из них носят технический характер и созданы для того, чтобы в переменных времени (begin/end) не было разрывов. Именно поэтому я считаю, что мы не имеем возможности пользоваться анализами, характерными для time-series data - нет строгого временного окна наблюдения, нет цензурированности данных (вероятность поиска работы для всех респондентов равна 1 - в конце концов, находят все. вопрос в том, как быстро).

файл примера данных лежит здесь: http://sb-group.info/example.xls
(форум не дает мне загружать в сообщении файлы подобного типа)

По командам Stata ? подозреваю, что необходимо использовать вложенные циклы (foreach/forvalues), или просто писать программу с использованием счетчика while. Но я достаточно слабый программист, и затрудняюсь с алгоритмом. И, впринципе, не уверен, что рою в нужном направлении.

Буду рад, если сможете чем-либо помочь ? хотя бы скажете, какими инструментами следует решать эту проблему.
Спасибо!

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.