![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 4 Регистрация: 19.12.2007 Пользователь №: 4633 ![]() |
Добрый день,
помогите проинтерпретировать результаты анализа выживаемости полученные в R.
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 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
1) да, только вот е+00 это 1, т.е. риск выше в 4.4 раза
2) что Вы попросили, то модель и расчитала. Пересчитайте без недостоверных факторов 3) вес: приувеличении веса на 1 кг риск снижается (RR=0.92) 4) Это коэффициенты для расчета достоверности 5) О том, что модель "работает" Настоятельно рекомендую почитать про анализ выживаемости прежде, чем пытаться описывать результаты. Не обязательно в документации по R, скорее книги или сделайте поиск survival analysis в Google. Интерпретация результатов задача не статистика, а исследователя. |
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 4 Регистрация: 19.12.2007 Пользователь №: 4633 ![]() |
2) что Вы попросили, то модель и расчитала. Пересчитайте без недостоверных факторов Тогда у меня еще вопросов. Эта модель была получена с помощью stepAIC(), с исходным количеством переменных порядка 95. Что-же получается, если она не "идеальна", так как содержит недостоверные факторы, то как убедится, что stepAIC() не "выбросила" "хорошую" модель? Прогнать stepAIC() в обратном направлении? или попробовать какие-нибудь другие алгоритмы отбора переменных? Для создания большой модели с которой начала работать stepAIC(), мне пришлось заполнить пропущенные данные. Я использовал, не сколько я понимаю, достаточно грубый метод (na.rougthfix() из randomForrest), по средним для непрерывным переменным, и по медианам - для факторных). А есть какие-либо методы для заполнения пропущенных данных используемые для анализа выживаемости? на сколько я "погуглил" randomForrest не годится для цензурированых данных? Есть что-нибудь подходящее? А вообще, насколько методологически корректно работать с искуственно заполненными данными с целью определения модели с последующим ее тестированием на исходных данных? ![]() |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 ![]() |
Плав меня просто восхищает, выдал все ответы на 5 вопросов. Появились другие... У меня вопрос к b16, когда вы найдете оптимальныю модель, в которую войдут только значимые предикторы, что вы будете с ее помощью рассчитывать?. Т.е. понимаете ли вы, что в левой части уравнения?. Если при увеличении веса на 1 кг риск увеличивается или уменьшается в 3,4 раза, то нужно понимать относительно какого веса? Т.е. что такое "базовый риск".
Нужно начинать моделировать не с документации к программе, а с какой нибудь книги, типа Д.Р.Кокс, Д. Оукс. Анализ данных типа времени жизни. М.1988. Или решеть такие сложные задачи совместно со специалистами. И в линейной регресси доктора делают много ошибок, а тут - задача гораздо сложнее. |
|
![]() |
![]() |
![]()
Сообщение
#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 Чтобы избежать выбрасывания половины факторов, надо, повторюсь, вначале сформулировать гипотезу о влиянии тех или иных факторов и лишь затем считать. Все автоматические методы отбора модели являются лишь ориенировочными и исследователя никогда не заменят |
|
![]() |
![]() |
![]()
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 4 Регистрация: 19.12.2007 Пользователь №: 4633 ![]() |
Добрый день.
Учтя советы сообщества, пришел к следующему. Хотелось бы получить ваши комментарии, критику. Сначала провел предварительных отбор переменных, построив однофакторную модель Кокса для каждой переменой по отдельности. И оставил только те переменные для которых p<0.25. Затем, руководствуясь представлениями о предметной области, составил несколько моделей включающие некоторое подмножество отобранных переменных. Модель с полным набором переменных построить не удалось, по причине пропущенных данных. Запустили процедуру обратного отбора переменных. Для получившихся моделях проверил пропорциональность рисков. В общих чертах сделано правильно? Надо ли стандартизировать (центрировать и масштабировать) переменные при выполнении анализа выживаемости? Обязательно, желательно? Если использовать трансформации Бокса-Кокса то, как их потом интерпретировать? Есть ли какая литература по исследованию взаимодействия переменных (interactions)? Методика? Или только руководствуясь знанием предметной области возможно сделать предположение, и подтвердить или опровергнуть взаимодействие переменных? Если построить модель с подстановкой пропущенных данных, в результате получаются коэффициенты регрессии каждый раз разные, что собственно объяснимо, плюс инфляция дисперсии. Как ее использовать, интерпретировать? Как практически использовать полученные модели? Строить номограммы? ![]() |
|
![]() |
![]() |
![]()
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Вопросов на самом деле на книжку хватит
![]() 1) Первая часть подхода (унивариантный анализ) почти правильная. Почти, поскольку если переменные были качественные лучше использовать Каплана-Мейера (он не требует допущения даже пропорциональности риска и позволяет визуализировать кривые выживаемости). Унивариантного Кокса лучше использовать только для случая количественных независимых переменных. 2) Отбор переменных на основании унивариантного анализа в Вашем случае не слишком эффективен, поскольку получается, что работаете с разными поднаборами данных.Соответственно, лучше построить предполагаемую модель на основании знания предметной области и проверить, какие переменные реально связаны с выживаемостью, правильно, можно путем пошагового отбора переменных. 3) Стандартизация не требуется, поскольку это предумотрено самой моделью (пропорциональность риска). Нормализация тут не нужна. 4) Взаимодействие переменных - литература та же, что и по модели Кокса в целом (например, Allison, на самом деле пойдут и книги по логистической модели, типа Hosmer и Lemeshov). Подтверждение наличия взаимодействия - ненулевой множитель у показателя взаимодействия (т.е. \beta * Age * Sex, если оказывается, что \beta достоверно отличается от нуля, то между возрастом и полом есть взаимодействие). Для определения тех взаимодействий, которые заслуживают рассмотрения требуется знание предметной области (или большой размер выборки с использованием коррекции, например по Бонферрони, для борьбы с множественными сравнениями). Методика сильно зависит от программного пакета, в общих чертах - создаем новую переменную, равную произведению двух взаимодействующих и затем вводим ее в модель. 5) При пропущенных данных должны получаться разные регрессии, поскольку набор данных каждый раз разный из-за пропуска наблюдений. Для решения этой проблемы можно (а) удалить все наблюдения с пропусками (б) вставить вместо пропущенных значений средние (медианы) или (в) использовать множественную импутацию и затем сравнить полученные коэффициенты регрессии. Если они все достоверны отличны от нуля. значит фактор "работает", если нет - значит "не работает". Последний метод наиболее интересный, но как в R его использовать я не знаю, должен быть отдельный модуль (обычно при помощь MI процедуры создается несколько наборов данных, они анализируются выбранным методом анализа, а затем результаты сравниваются. как описано выше). 6) Практическое использование моделей зависит, в первую очередь, от качества исходных данных. Минимум можно сказать, что факторы А В и С увеличивают риск неблагоприятного (благоприятного) исхода. Если доверительнй интервал по ширине приемлимый, можно указать, во сколько раз. В принципе, можно строить модель оценки риска, но лучше ее делать при помощи пуассоновой регрессии (проще). Существует также возможность строить кривые выживаемости на основании данных модели и интересующих исходных параметров, но лучше этого не делать (если задачей не является определение увеличения/уменьшения времени дожития) поскольку гарантий, что в другой группе пациентов будет именна такая эмпирическая функция выживания не много. Если уж надо считать эффект факторов на время дожития лучше использовать полностью параметрическую модель (Вейбулла, например). |
|
![]() |
![]() |
![]()
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 4 Регистрация: 19.12.2007 Пользователь №: 4633 ![]() |
Большое спасибо, плав.
Tо, что вопросы тянут на книжку, несколько удручает - значит, что далеко мне еще до конкретики. Но надеюсь, пока мои вопросы не вызывают тоску. Функция validate() предназначена для «resampling validation of a regression model, with or without backward step-down variable deletion». Есть и специльная версия validate.cph() предназначенная для регрессии Кокса. В процессе работы последняя выдает следующее
Не рассчитываю на полное описание математического смысла этих понятий, но хотя бы на общеупотребительный перевод. Попытки гуглить на английском уводят куда-то не туда. Если я правильно понимаю, то модель следует принимать, если общий индекс качества (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 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#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 и список литературы в этой статье Однако по большому счету, если не чувствуете себя вполне уверенно во всех фокусах бутстрапа и Ко. лучше начните с простой модели Кокса с подстановкой средних вместо пропущенных, затем удалите пропущенные наблюдения, затем подставьте минимальное и максимальное значения. Посмотрите вручную на результаты. Если они будут кто в лес, кто по дрова, значит по этим данным никаких выводов делать нельзя и надо уменьшать количество предикторов/набирать пациентов. Если они похожи друг на друга, тогда можно пытаться строить модели. |
|
![]() |
![]() |
![]() ![]() |