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

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

 
Добавить ответ в эту темуОткрыть тему
> Анализ выживаемости, помогите интерпретировать результаты
b16
сообщение 23.12.2007 - 19:50
Сообщение #1





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



Добрый день,
помогите проинтерпретировать результаты анализа выживаемости полученные в R.
  1. Верно ли, что при Локализации.1 = "Циркулярный" риск повышается в 4.40e+00 раза и это статистически значимо?
  2. зачем нужны коэффициенты для которых p>0.05?
  3. как интерпретировать коэффициенты для непрерывных переменных, например "Вес"? Если вес измеряется в килограммах, то при увеличении веса на килограмм, риск снижается? на сколько? пропорционально exp(Вес*coef)?
  4. какие выводы можно сделать по колонке z?
  5. о чем говорит Likelihood ratio test=196 on 33 df, p=0 n= 772?
  6. достаточно ли следить чтобы p было >0.05 в остатках (cox.zph)? А если будет меньше, то что это значит, и что делать?
Документация по R конечно же прочитана и перечитана, но она не о том как интерпретировать результаты. А сам я не статистик.
  • http://rss.acs.unt.edu/Rdoc/library/survival/html/coxph.html
  • http://rss.acs.unt.edu/Rdoc/library/survival/html/coxph.object.html
  • http://rss.acs.unt.edu/Rdoc/library/survival/html/cox.zph.html
С уважением.

CODE

coxph(formula = Surv(live_month, live_boolean) ~ Q..не.Q + Локализация.1 +
ПИКС + ФТ.ФЖ + СН + Вес + S.пов.тел + XC + ЛПВП + Лейкоциты.1 +
Лимфоциты.1 + Микст.1 + Лимфоциты...абс + ПЖ + ЧСС.ср.д +
ЧССср.н + Жел.нр + LAS.40 + OM + VLF + HF.a + CD95 + CD14.abc +
Хир.кор + ПИМ, data = hrfixed)


coef exp(coef) se(coef) z p
Q..не.QНе-Q -0.47480 6.22e-01 2.61e-01 -1.820 0.06900
Локализация.1Передний 0.02754 1.03e+00 2.59e-01 0.106 0.92000
Локализация.1Циркулярный 1.48216 4.40e+00 4.56e-01 3.248 0.00120
ПИКСНет -0.85368 4.26e-01 2.35e-01 -3.626 0.00029
ФТ.ФЖнет -0.73385 4.80e-01 4.98e-01 -1.473 0.14000
СНстепень 1 9.13042 9.23e+03 6.78e-01 13.467 0.00000
СНстепень 2 10.41516 3.34e+04 6.30e-01 16.526 0.00000
СНстепень 3 11.42514 9.16e+04 6.17e-01 18.519 0.00000
СНстепень 4 NA NA 0.00e+00 NA NA
Вес -0.08072 9.22e-01 3.43e-02 -2.352 0.01900
S.пов.тел 5.92044 3.73e+02 2.56e+00 2.316 0.02100
XC -0.14850 8.62e-01 9.42e-02 -1.576 0.12000
ЛПВП 1.50814 4.52e+00 5.71e-01 2.640 0.00830
Лейкоциты.1 0.09289 1.10e+00 6.18e-02 1.504 0.13000
Лимфоциты.1 -1.12664 3.24e-01 4.09e-01 -2.753 0.00590
Микст.1 0.55833 1.75e+00 2.46e-01 2.273 0.02300
Лимфоциты..абс 0.25261 1.29e+00 1.72e-01 1.467 0.14000
ПЖ -0.07301 9.30e-01 3.36e-02 -2.170 0.03000
ЧСС.ср.д 0.04684 1.05e+00 2.32e-02 2.015 0.04400
ЧССср.н -0.04172 9.59e-01 2.55e-02 -1.635 0.10000
Жел.нрLown 1 0.16677 1.18e+00 4.93e-01 0.338 0.74000
Жел.нрLown 2 1.80165 6.06e+00 6.35e-01 2.838 0.00450
Жел.нрLown 3 0.58155 1.79e+00 6.10e-01 0.954 0.34000
Жел.нрLown 4 1.45021 4.26e+00 5.68e-01 2.555 0.01100
Жел.нрLown 5 0.55726 1.75e+00 6.28e-01 0.887 0.37000
LAS.40 0.01456 1.01e+00 8.61e-03 1.690 0.09100
OM -0.00184 9.98e-01 7.61e-04 -2.418 0.01600
VLF 0.00221 1.00e+00 8.35e-04 2.651 0.00800
HF.a 0.00328 1.00e+00 1.68e-03 1.954 0.05100
CD95 0.08546 1.09e+00 3.39e-02 2.520 0.01200
CD14.abc -44.11843 6.91e-20 2.57e+01 -1.717 0.08600
Хир.корнет 0.36941 1.45e+00 4.41e-01 0.838 0.40000
Хир.корРТСА -1.39345 2.48e-01 7.91e-01 -1.763 0.07800
Хир.корРТСА, АКШ NA NA 0.00e+00 NA NA
ПИМнет -0.57346 5.64e-01 3.23e-01 -1.778 0.07500

Likelihood ratio test=196 on 33 df, p=0 n= 772
> cox.zph(fit)
Предупреждение в cor(xx, r2) : стандартное отклонение нулевое
rho chisq p
Q..не.QНе-Q 0.05982 0.44597 0.50426
Локализация.1Передний 0.07753 0.75124 0.38608
Локализация.1Циркулярный 0.04330 0.20367 0.65177
ПИКСНет 0.13235 2.28928 0.13027
ФТ.ФЖнет 0.02568 0.07950 0.77797
СНстепень 1 0.05422 0.30501 0.58076
СНстепень 2 0.05907 0.37656 0.53945
СНстепень 3 0.06867 0.51924 0.47117
СНстепень 4 NA NaN NaN
Вес -0.06398 0.38873 0.53297
S.пов.тел 0.09461 0.89000 0.34548
XC -0.01763 0.03191 0.85823
ЛПВП 0.01984 0.02642 0.87087
Лейкоциты.1 -0.13920 2.23585 0.13484
Лимфоциты.1 0.01540 0.01789 0.89360
Микст.1 -0.07705 0.48942 0.48419
Лимфоциты..абс 0.05073 0.20250 0.65271
ПЖ 0.10986 0.93932 0.33245
ЧСС.ср.д -0.05176 0.13409 0.71423
ЧССср.н 0.10944 0.81213 0.36749
Жел.нрLown 1 -0.17061 3.09846 0.07837
Жел.нрLown 2 -0.14439 2.23242 0.13514
Жел.нрLown 3 -0.26903 8.41526 0.00372
Жел.нрLown 4 -0.10664 1.21602 0.27014
Жел.нрLown 5 -0.09899 1.05576 0.30418
LAS.40 -0.18258 3.40617 0.06495
OM -0.00798 0.00595 0.93850
VLF -0.00494 0.00248 0.96027
HF.a 0.04073 0.13432 0.71399
CD95 -0.02392 0.10896 0.74133
CD14.abc -0.01548 0.01819 0.89272
Хир.корнет 0.07924 0.66429 0.41505
Хир.корРТСА 0.07889 0.73417 0.39153
Хир.корРТСА, АКШ NA NaN NaN
ПИМнет -0.04694 0.23996 0.62424
GLOBAL NA 31.52953 0.63642


Signature
С уважением.
--
http://r-naive.blogspot.com/
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 24.12.2007 - 21:19
Сообщение #2





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



1) да, только вот е+00 это 1, т.е. риск выше в 4.4 раза
2) что Вы попросили, то модель и расчитала. Пересчитайте без недостоверных факторов
3) вес: приувеличении веса на 1 кг риск снижается (RR=0.92)
4) Это коэффициенты для расчета достоверности
5) О том, что модель "работает"

Настоятельно рекомендую почитать про анализ выживаемости прежде, чем пытаться описывать результаты. Не обязательно в документации по R, скорее книги или сделайте поиск survival analysis в Google. Интерпретация результатов задача не статистика, а исследователя.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
b16
сообщение 25.12.2007 - 00:03
Сообщение #3





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



Цитата(плав @ 24.12.2007 - 21:19) *
2) что Вы попросили, то модель и расчитала. Пересчитайте без недостоверных факторов

Тогда у меня еще вопросов. Эта модель была получена с помощью stepAIC(), с исходным количеством переменных порядка 95. Что-же получается, если она не "идеальна", так как содержит недостоверные факторы, то как убедится, что stepAIC() не "выбросила" "хорошую" модель? Прогнать stepAIC() в обратном направлении? или попробовать какие-нибудь другие алгоритмы отбора переменных?

Для создания большой модели с которой начала работать stepAIC(), мне пришлось заполнить пропущенные данные. Я использовал, не сколько я понимаю, достаточно грубый метод (na.rougthfix() из randomForrest), по средним для непрерывным переменным, и по медианам - для факторных). А есть какие-либо методы для заполнения пропущенных данных используемые для анализа выживаемости? на сколько я "погуглил" randomForrest не годится для цензурированых данных? Есть что-нибудь подходящее? А вообще, насколько методологически корректно работать с искуственно заполненными данными с целью определения модели с последующим ее тестированием на исходных данных?


Signature
С уважением.
--
http://r-naive.blogspot.com/
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 25.12.2007 - 01:13
Сообщение #4





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



Плав меня просто восхищает, выдал все ответы на 5 вопросов. Появились другие... У меня вопрос к b16, когда вы найдете оптимальныю модель, в которую войдут только значимые предикторы, что вы будете с ее помощью рассчитывать?. Т.е. понимаете ли вы, что в левой части уравнения?. Если при увеличении веса на 1 кг риск увеличивается или уменьшается в 3,4 раза, то нужно понимать относительно какого веса? Т.е. что такое "базовый риск".
Нужно начинать моделировать не с документации к программе, а с какой нибудь книги, типа
Д.Р.Кокс, Д. Оукс. Анализ данных типа времени жизни. М.1988.
Или решеть такие сложные задачи совместно со специалистами. И в линейной регресси доктора делают много ошибок, а тут - задача гораздо сложнее.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 25.12.2007 - 10:56
Сообщение #5





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



Самый простой способ убедиться, что модель подобрана адекватно - подумать перед ее созданием. Если Вы вносите в модель 95 факторов, Вы занимаетесь тем, что по английски называется fishing expedition и от чего исследователей отговаривают в базовых курсах биостатистики. Даже для методик Data Mining'а у Вас недостаточно наблюдений. Вы должны были бы разделить Вашу выборку случайным образом на две части, на одной строить модель, неа другой ее проверять. Минимально желательное количество наблюдений для 10 на переменную, т.е. 950 в каждой подгруппе, 1900 всего - у Вас более, чем в два раза меньше.
Кроме того, неоднократно сталкиваясь с аналогичными базами данных подозреваю, что не все наблюдения имеют все 95 переменных, а есть пропавшие наблюдения, что еще больше осложняет ситуацию.
Какой выход?
1) На основании анализа литературы отобрать переменные, которые с наибольшей вероятностью оказывают влияние на исход и использовать их для моделирования (переменных не более 20, см. следующий пункт)
2) Чтобы избежать опасности множественного сравнения, признавать значищими только те переменные, которые имеют р<0,05/количество параметров (поправка Бонферонни). Понятно, что при 95 переменных фактор будет считаться достверно значащим только если р<0,0005
В приведенной выше распечатке 34 параметра, значит достоверными признаем только те, что имеют р< 0,0015, или следующие пять параметров:

Локализация.1Циркулярный 1.48216 4.40e+00 4.56e-01 3.248 0.00120
ПИКСНет -0.85368 4.26e-01 2.35e-01 -3.626 0.00029
СНстепень 1 9.13042 9.23e+03 6.78e-01 13.467 0.00000
СНстепень 2 10.41516 3.34e+04 6.30e-01 16.526 0.00000
СНстепень 3 11.42514 9.16e+04 6.17e-01 18.519 0.00000

Чтобы избежать выбрасывания половины факторов, надо, повторюсь, вначале сформулировать гипотезу о влиянии тех или иных факторов и лишь затем считать. Все автоматические методы отбора модели являются лишь ориенировочными и исследователя никогда не заменят
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
b16
сообщение 25.06.2008 - 22:27
Сообщение #6





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



Добрый день.

Учтя советы сообщества, пришел к следующему. Хотелось бы получить ваши комментарии, критику.

Сначала провел предварительных отбор переменных, построив однофакторную модель Кокса для каждой переменой по отдельности. И оставил только те переменные для которых p<0.25. Затем, руководствуясь представлениями о предметной области, составил несколько моделей включающие некоторое подмножество отобранных переменных. Модель с полным набором переменных построить не удалось, по причине пропущенных данных. Запустили процедуру обратного отбора переменных. Для получившихся моделях проверил пропорциональность рисков. В общих чертах сделано правильно?

Надо ли стандартизировать (центрировать и масштабировать) переменные при выполнении анализа выживаемости? Обязательно, желательно? Если использовать трансформации Бокса-Кокса то, как их потом интерпретировать?

Есть ли какая литература по исследованию взаимодействия переменных (interactions)? Методика? Или только руководствуясь знанием предметной области возможно сделать предположение, и подтвердить или опровергнуть взаимодействие переменных?

Если построить модель с подстановкой пропущенных данных, в результате получаются коэффициенты регрессии каждый раз разные, что собственно объяснимо, плюс инфляция дисперсии. Как ее использовать, интерпретировать?

Как практически использовать полученные модели? Строить номограммы?



Signature
С уважением.
--
http://r-naive.blogspot.com/
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 26.06.2008 - 21:27
Сообщение #7





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



Вопросов на самом деле на книжку хватит smile.gif поэтому отвечу кратко:
1) Первая часть подхода (унивариантный анализ) почти правильная. Почти, поскольку если переменные были качественные лучше использовать Каплана-Мейера (он не требует допущения даже пропорциональности риска и позволяет визуализировать кривые выживаемости). Унивариантного Кокса лучше использовать только для случая количественных независимых переменных.
2) Отбор переменных на основании унивариантного анализа в Вашем случае не слишком эффективен, поскольку получается, что работаете с разными поднаборами данных.Соответственно, лучше построить предполагаемую модель на основании знания предметной области и проверить, какие переменные реально связаны с выживаемостью, правильно, можно путем пошагового отбора переменных.
3) Стандартизация не требуется, поскольку это предумотрено самой моделью (пропорциональность риска). Нормализация тут не нужна.
4) Взаимодействие переменных - литература та же, что и по модели Кокса в целом (например, Allison, на самом деле пойдут и книги по логистической модели, типа Hosmer и Lemeshov). Подтверждение наличия взаимодействия - ненулевой множитель у показателя взаимодействия (т.е. \beta * Age * Sex, если оказывается, что \beta достоверно отличается от нуля, то между возрастом и полом есть взаимодействие). Для определения тех взаимодействий, которые заслуживают рассмотрения требуется знание предметной области (или большой размер выборки с использованием коррекции, например по Бонферрони, для борьбы с множественными сравнениями). Методика сильно зависит от программного пакета, в общих чертах - создаем новую переменную, равную произведению двух взаимодействующих и затем вводим ее в модель.
5) При пропущенных данных должны получаться разные регрессии, поскольку набор данных каждый раз разный из-за пропуска наблюдений. Для решения этой проблемы можно (а) удалить все наблюдения с пропусками (б) вставить вместо пропущенных значений средние (медианы) или (в) использовать множественную импутацию и затем сравнить полученные коэффициенты регрессии. Если они все достоверны отличны от нуля. значит фактор "работает", если нет - значит "не работает". Последний метод наиболее интересный, но как в R его использовать я не знаю, должен быть отдельный модуль (обычно при помощь MI процедуры создается несколько наборов данных, они анализируются выбранным методом анализа, а затем результаты сравниваются. как описано выше).
6) Практическое использование моделей зависит, в первую очередь, от качества исходных данных. Минимум можно сказать, что факторы А В и С увеличивают риск неблагоприятного (благоприятного) исхода. Если доверительнй интервал по ширине приемлимый, можно указать, во сколько раз. В принципе, можно строить модель оценки риска, но лучше ее делать при помощи пуассоновой регрессии (проще). Существует также возможность строить кривые выживаемости на основании данных модели и интересующих исходных параметров, но лучше этого не делать (если задачей не является определение увеличения/уменьшения времени дожития) поскольку гарантий, что в другой группе пациентов будет именна такая эмпирическая функция выживания не много. Если уж надо считать эффект факторов на время дожития лучше использовать полностью параметрическую модель (Вейбулла, например).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
b16
сообщение 29.06.2008 - 22:00
Сообщение #8





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



Большое спасибо, плав.

Tо, что вопросы тянут на книжку, несколько удручает - значит, что далеко мне еще до конкретики. Но надеюсь, пока мои вопросы не вызывают тоску.

Функция validate() предназначена для «resampling validation of a regression model, with or without backward step-down variable deletion». Есть и специльная версия validate.cph() предназначенная для регрессии Кокса. В процессе работы последняя выдает следующее
  • Nagelkerke R^2,
  • Dxy,
  • slope shrinkage,
  • the discrimination index D [(model L.R. chi-square - 1)/L],
  • the unreliability index U = (difference in -2 log likelihood between uncalibrated X beta and X beta with overall slope calibrated to test sample) / L,
  • and the overall quality index Q = D - U.

Не рассчитываю на полное описание математического смысла этих понятий, но хотя бы на общеупотребительный перевод. Попытки гуглить на английском уводят куда-то не туда.

Если я правильно понимаю, то модель следует принимать, если общий индекс качества (overall quality index) хотя бы больше 0. Предельные значения можно обозначить как [-1,1]?

«average optimism» - пару слов, откуда это? Байесовский подход?

Что бы вы могли сказать по результатам «валидации» конкреной модели?

CODE
validate(vks.cph1, B=15)

index.orig training test optimism index.corrected n
R2 1.000000000 1.000000000 1.00000000 0.00000000 1.000000000 15
Slope 1.000000000 1.000000000 0.66505154 0.33494846 0.665051541 15
D 0.067435073 0.089792125 0.03979434 0.04999779 0.017437285 15
U -0.005229007 -0.005687136 0.01983776 -0.02552490 0.020295892 15
Q 0.072664080 0.095479261 0.01995657 0.07552269 -0.002858607 15


Приведу ссылки на документацию по R
http://lib.stat.cmu.edu/S/Harrell/help/Des...lidate.cph.html
http://lib.stat.cmu.edu/S/Harrell/help/Des...l/validate.html


Signature
С уважением.
--
http://r-naive.blogspot.com/
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 30.06.2008 - 10:41
Сообщение #9





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



Здесь надо подробно читать статьи, лежащие в основе этих функций, поскольку предлагаемые подходы не являются общепринятыми. Вкратце, идея базируется на том, что у нас называется "методы с интенсивным использованием ЭВМ", а у них bootstrap. Делается несколько выборок (в Вашем случае 15) с повторами из исходной выборки и пересчитывается модель. Затем анализируются полученные регресионные коэффициенты и их распределение.
Соответственно, данная система не защищает Вас от проблем с пропущенными данными (она используется для ухода от предположения от нормального распределения ошибок статистик), а я так понял по посту это являлось важной причиной, почему не стали использовать обычные подходы к анализу той же модели Кокса.
Оптимизм - это разность суммарной ошибки оригинальной модели и бустрапных.
Насчет же конкретной модели замечу только, что результаты сомнительные. 1) Количество выборок для bootstrap всег лишь 15. Стандартно необходимо больше 50, но лучше до 500 (в статьях бывает 200, время расчетов вырастет неимоверно, но иначе оценки подозрительны) 2) Коэффициент множественной корреляции равен 1. Это обычно означает подгонку модели под данные (т.е. грубо говоря аналог проведения прямой через две точки - никакой остаточной вариабельности нет). 3) При этом D крайне мал (он чем выше, тем лучше). Посмотрите еще на индекс Сомерса (Dxy), если он также низок, это опять-таки указывает на низкую валидность модели.
Если интересно разобраться в методологии, особенно в сочетании с рекомендованной мною ранее импутацией, см.
http://www.pubmedcentral.nih.gov/articlere...i?artid=1945032 и список литературы в этой статье
Однако по большому счету, если не чувствуете себя вполне уверенно во всех фокусах бутстрапа и Ко. лучше начните с простой модели Кокса с подстановкой средних вместо пропущенных, затем удалите пропущенные наблюдения, затем подставьте минимальное и максимальное значения. Посмотрите вручную на результаты. Если они будут кто в лес, кто по дрова, значит по этим данным никаких выводов делать нельзя и надо уменьшать количество предикторов/набирать пациентов. Если они похожи друг на друга, тогда можно пытаться строить модели.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

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