knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Non-inferiority tests are used in clinical trials when the objective is to demonstrate that a new treatment is not significantly worse than a reference treatment by more than a pre-specified margin.
In designs involving multiple outcomes, it may be required that some outcomes meet strict non-inferiority criteria (e.g., the primary outcomes) while others can meet more flexible conditions (e.g., at least two out of three secondary outcomes).
This vignette shows how to use the sim_power_ni_normal() function from the
ssutil package to estimate power in such a design.
What is the empirical power of a trial that wants to evaluate non-inferiority of the immune response for a vaccine against 7 serotypes? Non-inferiority is achieved if the geometric mean ratio between the candidate vaccine and the reference is greater than 0.5 for the first two antigens, and for three of the other five.
This example simulates 1000 trials with 500 participants per group, 7 independent outcomes, a standard deviation of 0.8 on the log10 scale for all outcomes, and a common non-inferiority margin equivalent to log10(2/3). Non-inferiority is required in the first two outcomes, and in at least three of the remaining five.
library(ssutil) set.seed(123) res <- sim_power_ni_normal( nsim = 1000, npergroup = 500, ntest = 7, ni_limit = log10(2/3), test_req = 2, test_opt = 3, sd = 0.8, corr = 0, t_level = 0.95 ) res
The result shows the proportion of simulations in which the full non-inferiority rule was satisfied.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.