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

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

4 страниц V   1 2 3 > »   
Добавить ответ в эту темуОткрыть тему
> регрессия Кокса
mamalita
сообщение 29.03.2012 - 16:00
Сообщение #1





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



Добрый день! Помогите разобраться. Имеются данные для анализа выживаемости:
время (месяцы),
событие (рецидив или нет),
независимые ковариаты 3 переменных -
1. дифференцировка - бинарная (низкодифференированныя и умеренно+высокодифференцированная)
2. уровень РЭА до операции
3. количество метастазов
Они остались в результате применения регрессионного анализа Кокса в СПСС. Т.е. я понимаю что можно сделать выводы, что такие то факторы значимо влияют на продолжительность безрецидивной жизни, какой из них более значим. Могу ли я применить это как-то в плане прогнозирования продолжительности безрецидивной жизни? (как например в логистической регрессии). Это пожалуй основной вопрос. Цель исследования не только выявить исходные факторы, влияющие на продолжительность безрецидивного течения, но и иметь возможность прогнозировать это время для любого конкретного больного.
Привожу формулу h(t)=h0(t) *exp(b1z1+...+bmzm)
В СПСС есть функция сохранить: функция риска - это h(t)? Для 2 больных проживших 1 мес у одного 2,1 а другого 0,6. О чем это говорит? Максимум 4,3 минимум 0,2 - это много или мало. Как мне найти h0(t) - базовая функция риска при нулевых ковариатах (нулевые это равные 0?) и нужно ли это?
С экспоненциальной регрессией более понятно, но у меня время жизни распределено не экспоненциально. В Attestat сделала подгонку распределения: получилось логлогистическое. Что мне с ним делать?!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 29.03.2012 - 17:05
Сообщение #2





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




[вдруг пригодится] вот целая ветка как в R проводить анализ и для конкретных параметров рассчитывать (в том числе в ручную)
http://forum.disser.ru/index.php?showtopic=2989


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
mamalita
сообщение 2.04.2012 - 10:30
Сообщение #3





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



Добрый день! Спасибо большое за указанное направление. Попытки освоить R пока ни к чему не ведут, срубаюсь на этапе загрузки данных, но буду пытаться. Тут на форуме рекомендовали новую книжку. Может она поможет. Сразу приношу извинения за глупые вопросы.
Как я поняла из ветки: для нахождения h(o) строится график функции риска для средних значений ковариат в определенные точки времени и по графику находится h(0)? Но формула то должна быть.
В результате построения регрессии Кокса у меня получилось 4 значимых переменных:
1. дифференцировка (0 - умеренная+высокая, 1-низкая) коэффициент - 0,62 среднее 0,61
2. уровень РЭА до операции коэффициент 0,006 среднее 149,78
3. кол-во образований малого диаметра 0,66 среднее 1,58
4. кол-во образований большого диаметра 0,70 среднее 0,67
нахожу p(i)=2,03 h(0)(t=1)=exp(-2,03)=0,13 это для единицы времени т.е. на 1 месяц, а дальше как например для 3, 6 месяцев и так далее? Еще вопрос S(t)=1-h(t), т.е. если выживаемость рассчитана для конкретного больного по нашим данным вычесть из единицы мы получим риск? Но я где-то читала что риск может быть больше 1, я неправильно поняла? Что мы прогнозируем с помощью модели Кокса предполагаемое время жизни определенного больного или вероятность умереть ( в нашем случае иметь МТС) в определенный момент времени, как я понимаю второй вариант. А нельзя ли как-то предсказывать время жизни? Например больной Н. имеет низкодифференцированную опухоль уровень РЭА 20, по 1 большому и маленькому мтс, подставляем в формулу данные и получаем что только через 12 месяцев мы имеем высокую вероятность получить прогрессию.
В СПСС сохраняет параметры Функция риска, функция выживаемости. Они в сумме не должны равняться 1?
В посте я столкнулась с тем что модели Кокса не применяются для прогнозирования по нравственным соображениям почему?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
mamalita
сообщение 2.04.2012 - 11:15
Сообщение #4





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



Извиняюсь, данные загрузились, дальше двигалась по образцу, но программа выдает ошибку: не могу найти функцию "coxph" . Подсакажите что делать дальше.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
TheThing
сообщение 2.04.2012 - 12:51
Сообщение #5





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



Цитата(mamalita @ 2.04.2012 - 11:15) *
Извиняюсь, данные загрузились, дальше двигалась по образцу, но программа выдает ошибку: не могу найти функцию "coxph" . Подсакажите что делать дальше.


Вам нужно сначала загрузить библиотеку, в которой содержится функция coxph. Библиотека называется "survival"

library(survival) # загрузка пакета
args(coxph) # показать аргументы функции


Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
mamalita
сообщение 2.04.2012 - 16:02
Сообщение #6





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



Спасибо! Дело пошло дальше. Тупо повторяю команды из поста, выдает какие-то результаты. До понимания процесса еще ооочень далеко! Уважаемый p2004r отзовитесь!
Вопрос:
1. как сохранить то что получилось
2. что мы получаем после команды predict(model5, type="lp", se.fit=FALSE)
3. predict(model5, type="risk")
4. predict(model5, type="expected")
5. predict(model5, type="terms")
6. hazard time - два стобца - риск и время для этого риска?
7. -log((survfit(model5))$surv) - после этой команды выдает +который не стирается. что делать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 2.04.2012 - 20:31
Сообщение #7





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



Цитата(mamalita @ 2.04.2012 - 16:02) *
Спасибо! Дело пошло дальше. Тупо повторяю команды из поста, выдает какие-то результаты. До понимания процесса еще ооочень далеко! Уважаемый p2004r отзовитесь!
Вопрос:
1. как сохранить то что получилось
2. что мы получаем после команды predict(model5, type="lp", se.fit=FALSE)
3. predict(model5, type="risk")
4. predict(model5, type="expected")
5. predict(model5, type="terms")
6. hazard time - два стобца - риск и время для этого риска?
7. -log((survfit(model5))$surv) - после этой команды выдает +который не стирается. что делать?



1. смотря что понимается по "сохранить". Если вектор или таблицу чисел в файл на диск, то например ?write.table

2-6.
Код
type: the type of predicted value.  Choices are the linear
          predictor (?"lp"?), the risk score exp(lp) (?"risk"?), the
          expected number of events given the covariates and follow-up
          time (?"expected"?), and the terms of the linear predictor
          (?"terms"?).

7. наверное пара скобок лишняя "затесалась" при копипасте

-log(survfit(model5)$surv)


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





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



У Кокса
plot(survfit(model)) - shows the survivorship curve for the average individual with the covariates held at their average values

Что касается прогноза --- Кокс только в пределах данных эксперимента позволяет проводить оценки. Если много пациентов ушли за пределы эксперимента, то на вопрос ?What proportion of patients will die in 2 years based on data from an experiment that ran for just 4 months?? может ответить только параметрическая модель.

А что как прогноз подходит? Можно среднее время дожития считать, у экспоненциальной модели оно обратно пропорционально риску. В predict() считать время как predict(model,type="response") на выходе время жизни (только данные нового случая подставить) для survreg. exp(coef) у Кокс относительно средних группы показывает "во сколько раз дольше-меньше".


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
mamalita
сообщение 3.04.2012 - 10:50
Сообщение #9





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



У меня новая проблема технического характера: все что делала до этого случайно стерла так и не сохранив. Теперь начала заново, выдает ошибку - surv(v9,v8): объект v9 не найден. Может исходные ячейки должны быть в определенном формате а пока я туда сюда сохраняла все сбилось. Может быть можно сделать в других программах более мне понятных? (Хотя к освоению R буду прилагать все усилия).
Что касается прогноза у меня из 93 выбывают только 3 (цензуированных). Для регрессии Кокса Х2=92,8 р=0,000, для экспоненциальной регрессии Х2=37,9 р=0,000 но распределение то отличается от экспоненциального (хотя AIC самое маленькое для него 66,5) подходит только логлогистическое р=0,12 AIC=69,3.
Для экспоненциальной регрессии S(z) = exp(a + b1*z1 + b2*z2 + ... + bm*zm) Я нашла коэффициенты подставила, получила предсказанные времена. Прекрасно. В каких-то случаях и наблюдаемое и предсказанное время 1 месяц, а гдето 9 и 13, 9 и 18. Как трактовать где правильно узнано время где нет (может в пределах 1 ст.откл. - или это мои фантазии)

[Что касается прогноза --- Кокс только в пределах данных эксперимента позволяет проводить оценки. Если много пациентов ушли за пределы эксперимента, то на вопрос ?What proportion of patients will die in 2 years based on data from an experiment that ran for just 4 months?? может ответить только параметрическая модель.

] А какая параметрическая модель?
Спасибо большое за терпение.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 3.04.2012 - 13:05
Сообщение #10





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



Цитата(mamalita @ 3.04.2012 - 10:50) *
[Что касается прогноза --- Кокс только в пределах данных эксперимента позволяет проводить оценки. Если много пациентов ушли за пределы эксперимента, то на вопрос ?What proportion of patients will die in 2 years based on data from an experiment that ran for just 4 months?? может ответить только параметрическая модель.

] А какая параметрическая модель?
Спасибо большое за терпение.


С R, поскольку Вы работаете в виндовс, лучше установить rstudio и команды писать в его редакторе, тогда полный протокол всегда будет под рукой. Надо просто найти где вычислялся v9 и вычислить. Обычно R сохраняет файл с образом всей памяти и только команды library() приходится повторять заново.

Параметрическую модель Вы фактически и посчитали в виде экспоненциальной регресии. survreg() подгоняет параметрическую модель.

survreg(формула,dist="exponential") для того варианта что Вы посчитали. survreg(формула) для распредления Weibull с риском не равным константе.

Сообщение отредактировал p2004r - 3.04.2012 - 13:06


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
mamalita
сообщение 4.04.2012 - 08:50
Сообщение #11





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



Надо просто найти где вычислялся v9 и вычислить. Обычно R сохраняет файл с образом всей памяти и только команды library() приходится повторять заново.

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


Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
TheThing
сообщение 4.04.2012 - 09:31
Сообщение #12





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



Цитата(mamalita @ 4.04.2012 - 08:50) *
Надо просто найти где вычислялся v9 и вычислить. Обычно R сохраняет файл с образом всей памяти и только команды library() приходится повторять заново.

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


Если Вы дружите с английским, попробуйте посмотреть вот эти 3 видео:

http://www.youtube.com/watch?v=YQ9538U8cPc...ture=plpp_video
http://www.youtube.com/watch?v=CNYOWZmwOIA...ture=plpp_video
http://www.youtube.com/watch?v=wTLsw-Ckfvw...ture=plpp_video

Довольно хороший объем информации, все примеры идут сначала в SPSS, а затем в R. Вам нужно постараться побыстрее вникнуть в специфику работы с R, потому как жалко, если некая часть проделанной работа будет бесследно исчезать. Многие вопросы должны пропасть после просмотра этих видео.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 4.04.2012 - 10:42
Сообщение #13





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



Цитата(mamalita @ 4.04.2012 - 08:50) *
Надо просто найти где вычислялся v9 и вычислить. Обычно R сохраняет файл с образом всей памяти и только команды library() приходится повторять заново.

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



шаг 1--- установить http://rstudio.org/
шаг 2 --- писать все команды в его редакторе и сохранять их в файл.
шаг 3 --- постить сюда все последовательности команд приводящие к затруднениям smile.gif


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





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



С английским дружо плохо, но посмотрю, просто руки не доходят.
Установила R-studio по ссылке, программа почему-то выдает ошибку. Ну собственно сделала все из ветки в R, нажала сохранить рабочее пространство - вродебы сохранило. Только через q не вышла, вышла через закрыть.
Вопрос такой: basehaz (model, centred=FALSE) hazard time - это h0? А если пишешь просто basehaz (model) получаются другие цифры? В чем разница?
Не могли бы вы мне на моих данных объяснить что к чему, я лучше понимаю на кокретных примерах. Спасибо
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
YVR
сообщение 12.04.2012 - 14:20
Сообщение #15





Группа: Пользователи
Сообщений: 63
Регистрация: 20.03.2012
Из: Ташкент
Пользователь №: 23582



Цитата(mamalita @ 12.04.2012 - 16:06) *
Не могли бы вы мне на моих данных объяснить что к чему, я лучше понимаю на кокретных примерах. Спасибо


Для этого необходимо:

Выложить эти самые данные, прикрепив архив к сообщению. Либо обратиться на форум телепатов, чтобы они считали Ваши данные на расстоянии

Сообщение отредактировал YVR - 12.04.2012 - 14:21


Signature
Yury V. Reshetov

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

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