Чи може хтось пояснити мені свою модель Кокса простою англійською мовою?
Наступну модель регресії Кокса я прилаштував до всіх своїх даних за допомогою cph
функції. Мої дані зберігаються в об'єкті, який називається Data
. Змінні w
, x
і y
є безперервними; z
є фактором двох рівнів. Час вимірюється місяцями. Деяким з моїх пацієнтів відсутні дані для змінної z
( Примітка : Я належним чином зазначив пропозицію доктора Гаррелла нижче, щоб я вписав ці значення, щоб уникнути зміщення моєї моделі, і буду робити це в майбутньому).
> fit <- cph(formula = Surv(time, event) ~ w + x + y + z, data = Data, x = T, y = T, surv = T, time.inc = 12)
Cox Proportional Hazards Model
Frequencies of Missing Values Due to Each Variable
Surv(time, event) w x y z
0 0 0 0 14
Model Tests Discrimination
Indexes
Obs 152 LR chi2 8.33 R2 0.054
Events 64 d.f. 4 g 0.437
Center 0.7261 Pr(> chi2) 0.0803 gr 1.548
Score chi2 8.07
Pr(> chi2) 0.0891
Coef S.E. Wald Z Pr(>|Z|)
w -0.0133 0.0503 -0.26 0.7914
x -0.0388 0.0351 -1.11 0.2679
y -0.0363 0.0491 -0.74 0.4600
z=1 0.3208 0.2540 1.26 0.2067
Я також спробував перевірити припущення про пропорційну небезпеку за допомогою cox.zph
команди нижче, але не знаю, як інтерпретувати її результати. Якщо plot()
ввести команду, видається повідомлення про помилку.
cox.zph(fit, transform="km", global=TRUE)
rho chisq p
w -0.1125 1.312 0.2520
x 0.0402 0.179 0.6725
y 0.2349 4.527 0.0334
z=1 0.0906 0.512 0.4742
GLOBAL NA 5.558 0.2347
Перша проблема
- Чи може хтось пояснити мені результати викладеного вище простою англійською мовою? Я маю медичну освіту та не має офіційного навчання статистиці.
Друга проблема
Як запропонував доктор Харрелл, я хотів би внутрішньо підтвердити свою модель, виконавши 100 ітерацій 10-кратної перехресної перевірки за допомогою
rms
пакета (з того, що я розумію, це спричинить за собою створення100 * 10 = 1000
різних моделей, а потім попросити їх передбачити часи виживання пацієнтів, яких вони ніколи не бачили).Я спробував використовувати
validate
функцію, як показано.> v1 <- validate(fit, method="crossvalidation", B = 10, dxy=T) > v1 index.orig training test optimism index.corrected n Dxy -0.2542 -0.2578 -0.1356 -0.1223 -0.1320 10 R2 0.0543 0.0565 0.1372 -0.0806 0.1350 10 Slope 1.0000 1.0000 0.9107 0.0893 0.9107 10 D 0.0122 0.0128 0.0404 -0.0276 0.0397 10 U -0.0033 -0.0038 0.0873 -0.0911 0.0878 10 Q 0.0155 0.0166 -0.0470 0.0636 -0.0481 10 g 0.4369 0.4424 0.6754 -0.2331 0.6700 10
Як ви виконуєте 100-разове перекомпонування? Я думаю, що мій вище код виконує перехресну перевірку лише один раз.
Тоді мені хотілося дізнатися, наскільки хороша моя модель в прогнозі. Я спробував таке:
> c_index <- abs(v1[1,5])/2 + 0.5 > c_index [1] 0.565984
Чи означає це, що моя модель лише дуже трохи краща, ніж гортати монету?
Третя проблема
Доктор Харрелл зазначає, що я припускав лінійність ефектів коваріату, і що кількість подій у моїй вибірці ледь достатньо велика, щоб відповідати надійній моделі, якщо всі коваріатні ефекти будуть лінійними.
- Чи означає це, що я повинен включати в свою модель якийсь термін взаємодії? Якщо так, будь-які поради щодо того, що поставити?
cph
мені вищезгаданий вихід простою англійською мовою або вкаже мені на посилання, яке б це зробило. Доктор Харрелл, дуже дякую за допомогу дотепер!