Bayesian Modeling of Patient-Specific Efficacy Estimates and HTE

I have been working (along with @DanLane911) on a partial Bayesian adaptation and extension of @f2harrell’s blog post (https://www.fharrell.com/post/varyor/) examining the process of modeling HTE and the production of patient-specific efficacy estimates from RCT data. This project walks through a general (novice) Bayesian modeling process and finishes with an example of using these models to estimate patient-specific distributions of efficacy (on both the absolute and relative scales).

As a clinician, I feel strongly that this type of approach allows for an improved decision-making process. By providing full posterior probability distributions for various efficacy estimates (ARR, RR, OR, etc.) we avoid premature assumptions about the specific clinical scenario and the individual patient’s value system. In addition to the modeling project itself, I also put together a simple Shiny web application that allows users to interactively examine the predicted distributions of efficacy estimates for patients with varying characteristics.

Link to project post: https://benyandrew.netlify.com/blog/bayesian_rct/
Link to interactive Shiny application: https://benjamin-andrew.shinyapps.io/patient_specific_efficacy/

This work is still a rough draft and very much a work in progress. I’ve been tinkering with this for some time now, but as I prepare to head into the beginning of my residency training I wanted to get it out in front of some more experienced eyes and minds as my bandwidth for this type of work is temporarily reduced.

I want to emphasize that I am in no way an expert in either Bayesian modeling or clinical trials, and this has served primarily as a learning exercise for me. With that in mind, I greatly appreciate any input you all may have on this work. This topic is incredibly interesting to me, and I would love to continue to build on this initial project as I move forward in my clinical and research careers.

I do apologize in advance for the delays in responding that will, unfortunately, be inevitable over these next weeks to months. Thank you all so much for your feedback!

7 Likes

This is very nice. Thanks for sharing. It is mentioned in the website that an index variable approach was used to achieve symmetry of groups (no group is the reference). Did you retain the intercept coefficient and then added an indicator for each group? Or did you drop the intercept coefficient? I’m interested in what went wrong with the sampler.

1 Like

Thanks for writing, I’m glad you like the project! I tried a few approaches to the index variable method. In one, the intercept was treatment-specific, but the remainder of the categorical terms retained the reference group parameterization. In the second, I used the non-linear formula syntax in brms to create index variables for every categorical parameter, and removed the intercept coefficient. The former method was okay, but in the end for most models the speed of sampling was improved with the standard intercept model (all categorical variables with reference groups) and the N_eff / N values were better as well. The latter method was very slow and sampling was very inefficient (extremely small N_eff / N values).

1 Like