chenvict / dipm

Depth Importance in Precision Medicine (DIPM): A Tree and Forest Based Method
0 stars 0 forks source link

Model validation #4

Closed Jamiepark816 closed 2 years ago

Jamiepark816 commented 3 years ago

Hello, this is Jamie.

I'd like to validate a dipm model what I built. The outcomes of fitting model has solely split nodes, optimal treatment, and the number of observations. How can I get predicted survival probability of validation data in dipm package? Does it have any support to see predicted value for survival data? Thanks.

Best, Jamie

chenvict commented 3 years ago

Dear Jamie,

Thank you for your question!

Currently, the dipm package does not predict survival probabilities for validation data.

The purpose of the method is to identify which treatment is optimal within identified subgroups.

One could use the predict() function or write a custom function to separate validation data into the identified subgroups and then perform prediction for individual cases within subgroups using different survival models.

Or, one could calculate the median survival probabilities of the test data within the identified subgroups.

Hope this helps!

Best, Victoria

On Mon, Nov 8, 2021 at 6:36 AM Jamiepark816 @.***> wrote:

Hello, this is Jamie.

I'd like to validate a dipm model what I built. The outcomes of fitting model has solely split nodes, optimal treatment, and the number of observations. How can I get predicted survival probability of validation data in dipm package? Does it have any support to see predicted value for survival data? Thanks.

Best, Jamie

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/chenvict/dipm/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/APDCBOKVVPRDCTCSIWCUNV3UK6Y2TANCNFSM5HSN44WQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Jamiepark816 commented 3 years ago

Thanks you for answer ! It really helps me a lot ◟̊◞̊

I have two questions more.

  1. Referring your words, the different survival models for subgroups after building a final tree can be Cox PH model or survival regression, whatever?

  2. According an example of dipm function, predict() function works for the data with continuous outcome variable, not for the survival outcome , right??

This is a prediction part of optimal treatment within confirmed subgroups.

fit a dipm classification tree

tree1=dipm(Y~treatment | .,data,mtry=1,maxdepth=3) # predict optimal treatment for new subjects predict(tree1, newdata=head(data), FUN = function(n) as.numeric(n$info$opt_trt))

Best, Jamie.

chenvict commented 3 years ago

Dear Jamie,

The dipm R package can work for data with right-censored survival outcomes as well.

Thank you!

Best, Victoria

On Mon, Nov 8, 2021 at 9:39 PM Jamiepark816 @.***> wrote:

Thanks you for answer !

In my understanding, predicting optimal treatments only works for the data with continuous outcome variable, not for the survival outcome , right??

This is a prediction part of optimal treatment within confirmed subgroups. < First example in dipm package > fit a dipm classification tree ###

tree1=dipm(Y~treatment | .,data,mtry=1,maxdepth=3) # predict optimal treatment for new subjects predict(tree1, newdata=head(data), FUN = function(n) as.numeric(n$info$opt_trt))

Best, Jamie.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/chenvict/dipm/issues/4#issuecomment-963760710, or unsubscribe https://github.com/notifications/unsubscribe-auth/APDCBOIIVPY3MNOQJ276QJDULCCVBANCNFSM5HSN44WQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Jamiepark816 commented 3 years ago

Dear Victoria,

As my understanding, do you mean the predict() function to search optimal treatment also works for survival data? But, when i tried the code "n$info$opt_trt", it has an error .. How can i figure it out after fitting a tree with dipm() function?
predict(tree1, newdata=head(data), FUN = function(n) as.numeric(n$info$opt_trt))

Take care!

Best, Jamie.

cli9 commented 2 years ago

You may refer to the partykit package since the returned object is a 'party' class. For example: predict(as.constparty(tree), newdata = head(data))