pmsampsize | R Documentation |
pmsampsize
computes the minimum sample size required for the development of a new
multivariable prediction model using the criteria proposed by Riley et al. 2018. pmsampsize
can be used to calculate the minimum sample size for the development of models with
continuous, binary or survival (time-to-event) outcomes. Riley et al. lay out a series of
criteria the sample size should meet. These aim to minimise the overfitting and to ensure
precise estimation of key parameters in the prediction model.
For continuous outcomes, there are four criteria:
i) small overfitting defined by an expected shrinkage of predictor effects by 10% or less,
ii) small absolute difference of 0.05 in the model's apparent and adjusted R-squared value,
iii) precise estimation of the residual standard deviation, and
iv) precise estimation of the average outcome value.
The sample size calculation requires the user to pre-specify (e.g. based on previous evidence)
the anticipated R-squared of the model, and the average outcome value and standard deviation
of outcome values in the population of interest.
For binary or survival (time-to-event) outcomes, there are three criteria:
i) small overfitting defined by an expected shrinkage of predictor effects by 10% or less,
ii) small absolute difference of 0.05 in the model's apparent and adjusted Nagelkerke's R-squared
value, and
iii) precise estimation (within +/- 0.05) of the average outcome risk in the
population for a key timepoint of interest for prediction.
pmsampsize( type, rsquared = NA, parameters, shrinkage = 0.9, prevalence = NA, cstatistic = NA, seed = 123456, rate = NA, timepoint = NA, meanfup = NA, intercept = NA, sd = NA, mmoe = 1.1 )
type |
specifies the type of analysis for which sample size is being calculated
|
rsquared |
specifies the expected value of the (Cox-Snell) R-squared of the new model, where R-squared is the percentage of variation in outcome values explained by the model. For example, the user may input the value of the (Cox-Snell) R-squared reported for a previous prediction model study in the same field. If taking a value from a previous prediction model development study, users should input the model's adjusted R-squared value, not the apparent R-squared value, as the latter is optimistic (biased). However, if taking the R-squared value from an external validation of a previous model, the apparent R-squared can be used (as the validation data was not used for development, and so R-squared apparent is then unbiased). Note that for binary and survival outcome models, the Cox-Snell R-squared value is required; this is the generalised version of the well-known R-squared for continuous outcomes, based on the likelihood. The papers by Riley et al. (see references) outline how to obtain the Cox-Snell R-squared value from published studies if they are not reported, using other information (such as the C-statistic [see cstatistic() option below] or Nagelkerke's R-squared). Users should be conservative with their chosen R-squared value; for example, by taking the R-squared value from a previous model, even if they hope their new model will improve performance. |
parameters |
specifies the number of candidate predictor parameters for potential inclusion in the new prediction model. Note that this may be larger than the number of candidate predictors, as categorical and continuous predictors often require two or more parameters to be estimated. |
shrinkage |
specifies the level of shrinkage desired at internal validation after
developing the new model. Shrinkage is a measure of overfitting, and can range from 0 to 1,
with higher values denoting less overfitting. We recommend a shrinkage = 0.9 (the
default in |
prevalence |
(binary outcome option) specifies the overall outcome proportion (for a prognostic model) or overall prevalence (for a diagnostic model) expected within the model development dataset. This should be derived based on previous studies in the same population. |
cstatistic |
(binary outcome option) specifies the C-statistic reported in an existing prediction model study to be used in conjunction with the expected prevalence to approximate the Cox-Snell R-squared using the approach of Riley et al. 2020. Ideally, this should be an optimism-adjusted C-statistic. The approximate Cox-Snell R-squared value is used as described above for the rsquared() option, and so is treated as a baseline for the expected performance of the new model. |
seed |
(binary outcome option) specifies the initial value of the random-number seed used by the random-number functions when simulating data to approximate the Cox-Snell R-squared based on reported C-statistic and expect prevalence as described by Riley et al. 2020 |
rate |
(survival outcome option) specifies the overall event rate in the population of interest, for example as obtained from a previous study, for the survival outcome of interest. NB: rate must be given in time units used for meanfup and timepoint options. |
timepoint |
(survival outcome option) specifies the timepoint of interest for prediction. NB: time units must be the same as given for meanfup option (e.g. years, months). |
meanfup |
(survival outcome option) specifies the average (mean) follow-up time anticipated for individuals in the model development dataset, for example as taken from a previous study in the population of interest. NB: time units must be the same as given for timepoint option. |
intercept |
(continuous outcome options) specifies the average outcome value in the population of interest e.g. the average blood pressure, or average pain score. This could be based on a previous study, or on clinical knowledge. |
sd |
(continuous outcome options) specifies the standard deviation (SD) of outcome values in the population e.g. the SD for blood pressure in patients with all other predictors set to the average. This could again be based on a previous study, or on clinical knowledge. |
mmoe |
(continuous outcome options) multiplicative margin of error (MMOE) acceptable for calculation of the intercept. The default is a MMOE of 10%. Confidence interval for the intercept will be displayed in the output for reference. See references below for further information. |
NB: When specifying a binary outcome prediction model with 12 or fewer predictor parameters, an alternative approach by van Smeden et al. may be considered as presented here: https://mvansmeden.shinyapps.io/BeyondEPV/
With thanks to Gary Collins, Glen Martin & Kym Snell for helpful input & feedback
Joie Ensor (Keele University, j.ensor@keele.ac.uk),
Emma C. Martin (Phastar),
Richard D. Riley (Keele University)
Riley RD, Ensor J, Snell KIE, Harrell FE, Martin GP, Reitsma JB, et al. Calculating the sample size required for developing a clinical prediction model. BMJ (Clinical research ed). 2020
Riley RD, Snell KIE, Ensor J, Burke DL, Harrell FE, Jr., Moons KG, Collins GS. Minimum sample size required for developing a multivariable prediction model: Part I continuous outcomes. Statistics in Medicine. 2018 (in-press). doi: 10.1002/sim.7993
Riley RD, Snell KIE, Ensor J, Burke DL, Harrell FE, Jr., Moons KG, Collins GS. Minimum sample size required for developing a multivariable prediction model: Part II binary and time-to-event outcomes. Statistics in Medicine. 2018 (in-press). doi: 10.1002/sim.7992
van Smeden M, Moons KG, de Groot JA, et al. Sample size for binary logistic prediction models: Beyond events per variable criteria. Stat Methods Med Res. 2019;28(8):2455-74
Riley, RD, Van Calster, B, Collins, GS. A note on estimating the Cox-Snell R2 from a reported C statistic (AUROC) to inform sample size calculations for developing a prediction model with a binary outcome. Statistics in Medicine. 2020
## Examples based on those included in two papers by Riley et al. ## published in Statistics in Medicine (2018). ## NB: Survival example based on Riley et al. BMJ paper (2020). ## Binary outcomes (Logistic prediction models) # Use pmsampsize to calculate the minimum sample size required to develop a # multivariable prediction model for a binary outcome using 24 candidate # predictor parameters. Based on previous evidence, the outcome prevalence is # anticipated to be 0.174 (17.4%) and a lower bound (taken from the adjusted # Cox-Snell R-squared of an existing prediction model) for the new model's # R-squared value is 0.288 pmsampsize(type = "b", rsquared = 0.288, parameters = 24, prevalence = 0.174) # Now lets assume we could not obtain a Cox-Snell R-squared estimate from an existing # prediction model, but instead had a C-statistic (0.89) reported for the existing prediction # model. We can use this C-statistic along with the prevalence to approximate the Cox-Snell # R-squared using the approach of Riley et al. (2020). Use pmsampsize with the cstatistic() # option instead of rsquared() option. pmsampsize(type = "b", cstatistic = 0.89, parameters = 24, prevalence = 0.174) ## Survial outcomes (Cox prediction models) # Use pmsampsize to calculate the minimum sample size required for developing # a multivariable prediction model with a survival outcome using 30 candidate # predictors. We know an existing prediction model in the same field has an # R-squared adjusted of 0.051. Further, in the previous study the mean # follow-up was 2.07 years, and overall event rate was 0.065. We select a # timepoint of interest for prediction using the newly developed model of 2 # years pmsampsize(type = "s", rsquared = 0.051, parameters = 30, rate = 0.065, timepoint = 2, meanfup = 2.07) ## Continuous outcomes (Linear prediction models) # Use pmsampsize to calculate the minimum sample size required for developing # a multivariable prediction model for a continuous outcome (here, FEV1 say), # using 25 candidate predictors. We know an existing prediction model in the # same field has an R-squared adjusted of 0.2, and that FEV1 values in the # population have a mean of 1.9 and SD of 0.6 pmsampsize(type = "c", rsquared = 0.2, parameters = 25, intercept = 1.9, sd = 0.6)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.