Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added-ICI-measure #413

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

added-ICI-measure #413

wants to merge 1 commit into from

Conversation

Lee-xli
Copy link

@Lee-xli Lee-xli commented Sep 2, 2024

Hi mlr3proba team:

Just a couple of notes and thoughts (My apologies that I realised these after committing/pushing the document):

  • Line 30: pred = t(prediction$distr$cdf(tm))

I noticed that using pred = t(1 - prediction$distr$survival(tm)) will yield same results. The $survival prediction is perhaps preferred.

  • ICI plots:

I'm not sure if this is the right place to generate these plots. At the moment, I'm unable to add a proper title. The code generates the plots but terminates with an error. It worked for me for the time being, but it may be argued that these plots are not necessary for benchmarking comparisons, and thus should be made available only in a more general setting.

Thank you!

@bblodfon
Copy link
Collaborator

bblodfon commented Sep 3, 2024

Thanks @Lee-xli! Just a few comments before I take over the implementation:

  • Note that the measure should be a scalar/numeric value, not a plot. The latter we can add separately in the autoplot function.
  • I took a brief look at Austin's paper, I think the ICI is what you want to implement right? (E50 and E90 as well?)
    image

The idea is: from the survival distr prediction of a survival learner, construct the smoothed calibration curves (same code in autoplot function pretty much) => calculate the score(s) as in the paper above, right?

@Lee-xli
Copy link
Author

Lee-xli commented Sep 3, 2024

Thanks @bblodfon. The current code should be able to calculate ICI (with default plot=F) or generate plots (with no ICI calculated plot=T). I didn't implement E50 and E90 here as ICI alone (for our use case) is enough as an additional measure to existing measures such as IBS and others (such as alpha and beta). ICI is calculated with no errors/problems, only needs time specified.

"The idea is: from the survival distr prediction of a survival learner, construct the smoothed calibration curves (same code in autoplot function pretty much) => calculate the score(s) as in the paper above, right?"

Yes, that is correct.

Hope this answers your questions. Let me know if I can help further.

@Lee-xli
Copy link
Author

Lee-xli commented Sep 3, 2024

Incidentally, we initially explored this method primarily for its plot functionality. The BMJ paper, along with many other references on clinical prediction models (such as those by Harrell and Steyerberg), places great emphasis on the calibration plot during the validation process. The ICI measure was a secondary consideration. We found the ICI plot worth pursuing because very few calibration plots claim to: 1. construct a plot without binning (e.g., dCalib can be plotted, but this method relies on grouping subjects into deciles), and 2. be applicable in machine learning. The Austin paper suggested that this could potentially be a versatile method, with an example applied in random forests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants