Kama Jansen

Kama Jansen Student, Akademia
Medyczna w
Amsterdamie

Temat: walidacja kalibracja modelu, interpretacja

Witam czy ktos moze wie cos na temat walidacji i kalibracji modelu Cox?
Robie kilka takich modeli (kazdy zbudowany jest tak samo tylko uzywam roznych danych: dane1, dane2, dane3, dane4):
m1<-cph(Surv(SurvT, status) ~ Ammo + Kreat + Hb + HE + MAP + AST + Grp + Hpps + Pre.treat, x=T, y=T, surv=T, singular.ok=T, data=dane1)

potem robie: m1res <- stepAIC(m1, direction = "both") i w rezultacie dla pierwszego modelu pozostaje AST i Grp.

Teraz chcialalbym zrobic walidacje i kalibracje tych modeli.
Mozna uzyc: validate(m1, B = 100) ?
jak zrobie to dla roznych modeli to jak mam zinterpretowac wyniki:
index.orig training test optimism index.corrected n
R2 0.5950 0.7996 0.3856 0.4140 0.1810 45
Slope 1.0000 1.0000 0.2721 0.7279 0.2721 45
D 0.1694 0.3194 0.0916 0.2278 -0.0584 45
U -0.0123 -0.0123 0.9534 -0.9657 0.9534 45
Q 0.1817 0.3316 -0.8618 1.1935 -1.0118 45
g 1.8678 3.8774 0.9552 2.9222 -1.0544 45

Dla kalibracji mozna uzyc: calibrate(m1, B=100, u=3)?
bez tego argumentu u nie dziala wogole, nie za bardzo rozumiem co on oznacza
o ile powyzsze jest dobrze to otrzymuje w rezultacie:

n=32 B=64 u=3 Day
index.orig training test mean.optimism mean.corrected n mean.predicted KM KM.corrected std.err
KM 0 0 0 0 0 64 1 1 1 0

jak to zinterpretowac, czy ktos wie o co tu chodzi?
Bede wdzieczna za pomoc.
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: walidacja kalibracja modelu, interpretacja

Funkcja validate i stepAIC służą temu samemu czyli eliminacji (walidacji) zmiennych w modelu. Celem jest uzyskanie modelu o jak najlepszej "średniej" predykcji dla wszystkich punktów czasowych. calibrate służy doborowi modelu który będzie służył predykcji w wybranym punkcie czasu (parametr u).
Walidacja modelu powinna być rozszerzona o testowanie założenia o proporcjonalności hazardów (funkcja cox.zph) oraz sprawdzenie wpływu pojedynczych obserwacji (funkcja which.influence).
Kama Jansen

Kama Jansen Student, Akademia
Medyczna w
Amsterdamie

Temat: walidacja kalibracja modelu, interpretacja

Dzieki wielkie Wojciech ze wogole zainteresowales sie tematem. Mowisz ze validate i stepAIC sluza temu samemu, moze moglbys zerknac na wyniki?
Jak robie stepAIC to otrzymuje to co pozostaje w modelu czyli dla przykladu ponizej wymienionego:
cph(formula = Surv(SurvT, status) ~ BetaAST + Grp, data = agg34, singular.ok = T, x = T, y = T, surv = T, time.inc = 3)
Model Tests Discrimination
Indexes
Obs 32 LR chi2 24.98 R2 0.545
Events 32 d.f. 4 g 1.591
Center -0.3573 Pr(> chi2) 0.0001 gr 4.907
Score chi2 26.72
Pr(> chi2) 0.0000
Coef S.E. Wald Z Pr(>|Z|)
BetaAST 0.0004 0.0002 1.94 0.0520
Grp=2 -1.9056 0.5108 -3.73 0.0002
Grp=3 -1.8580 0.6446 -2.88 0.0039
Grp=4 -8.9116 21.0237 -0.42 0.6716

natomiast jak robie validate to otrzymuje:
(oprocz tego za mam warning Singularity in coxph.fit. Coefficients, i In fitter(..., strata = strata, rownames = rownames, offset = offset, : Ran out of iterations and did not converge)
to otrzymuje:
Divergence or singularity in 51 samples
index.orig training test optimism index.corrected n
R2 0.5950 0.7841 0.3624 0.4218 0.1732 49
Slope 1.0000 1.0000 0.2718 0.7282 0.2718 49
D 0.1694 0.3084 0.0838 0.2246 -0.0552 49
U -0.0123 -0.0123 0.7501 -0.7623 0.7501 49
Q 0.1817 0.3206 -0.6663 0.9870 -0.8053 49
g 1.8678 3.6657 0.9259 2.7398 -0.8720 49

te wyniki pokazuja zupelnie co innego, nie za bardzo rozumiem, czy mozesz to wyjasnic?
I moze przy okazji bedziesz wiedzial co zrobic z tymi warningami?

Co do testowania PH to zrobilam i wyszlo ze zalozenie PH nie jest naruszone (p>0.05).
Natomiast nie za bardzo rozumiem co mi daje zrobieni? which.influence ?
Robiac to otrzymuje cala liste roznych cyferek i nie zabrdzo tez wiem co mi to daje.
Mam nadzieje ze bedziesz chcial poswiecic i chwile czasu mojemu problemowi i mi odpiszesz na moje pytania. Z gory dzieki
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: walidacja kalibracja modelu, interpretacja

Robią to samo jeżeli ustawisz w validate parametr bw=TRUE (domyślnie jest FALSE).
Ostrzeżenia (warnings) w tym przypadku to poważny problem bo wypadła ci z analizy połowa danych. O ile problem z "Run out of iterations" można postarać się jakoś rozwiązać, to "Singularity in coxph.fit." raczej nie da się rozwiązać bez zwiększenia liczby obserwacji lub usunięcia zmiennej z modelu.
which.influence podaje ci numery obserwacji które mają znaczący wpływ na oszacowane parametry. Dokładnie oznacza to, że jeżeli usuniesz tą obserwację z danych to może "znacząco" zmienić wynik analizy.
Kama Jansen

Kama Jansen Student, Akademia
Medyczna w
Amsterdamie

Temat: walidacja kalibracja modelu, interpretacja

Dzieki dzieki dzieki Wojciech.
Robiac: stepAIC(mf34, direction = "backward")
uzyskuje:
Coef S.E. Wald Z Pr(>|Z|)
BetaAST 0.0004 0.0002 1.94 0.0520
Grp=2 -1.9055 0.5108 -3.73 0.0002
Grp=3 -1.8577 0.6445 -2.88 0.0039

Natomiast robiac: validate(mf34, bw=T)
uzyskuje:
Coef S.E. Wald Z P
Grp=2 -1.725 0.5122 -3.367 0.0007601
Grp=3 -1.744 0.6481 -2.692 0.0071114

Factors in Final Model
[1] Grp
Error in measure(xb[xtrain], y[train, , drop = FALSE], strata = stra[xtrain], :
object 'g' not found

Widac wiec ze w pierwszym przypadku uzyskuje ASP i grp w modelu a w drugim przypadku uzyskuje tylko grp. Dlaczego te wyniki nie sa takie same? I co oznacza ten error?
Bede wdzieczna za odpowiedz.

Następna dyskusja:

wybór najlepszego modelu




Wyślij zaproszenie do