We plan to conduct a study for comparing the survival rate between three different types of surgery for total knee arthroplasty. Thus, the sample size for the study should be estimated.

Notably, how to calculated the sample size for three groups (or >2 groups) by log-rank test in R?



1 Answer 1


Even though you are setting up a 3-arm study, you will presumably be interested in all 3 of the 2-way comparisons among surgery types. For power analysis you will have to specify your predictions for outcomes within each of the 3 surgery types in any event, and thus for all 3 of those 2-way differences.

So a simple conservative approach would be to treat this as three 2-group log-rank tests, but base the power calculations on a type I error corrected for the 3 comparisons. For a 5% family-wise error rate, the conservative Bonferroni correction would suggest using a p-value of 0.017 (0.05/3) in your power calculations.

For all 3 surgery-type groups, choose the largest sample size for any individual group suggested by the 3 power estimates. Being conservative in study design at the beginning is much better than conducting a study only to find that the study was underpowered at the end.

For survival power analysis I typically use the cpower() function in the R Hmisc package, which is loaded as part of the rms package for regression modeling. That assumes exponential survival curves, often a reasonable assumption to start. If you have more detailed information on the survival function versus time for these types of surgeries, you might simulate data sets based on that information (incorporating the accrual and drop-out patterns over time) and examine the distribution of log-rank test results directly on multiple samples of different size from the simulated data.

  • $\begingroup$ Thank you very much for your help and outstanding solution. $\endgroup$ Commented Jul 28, 2021 at 9:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.