Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12111

Sample size calculation for a multicenter RCT using a mixed effects model using simulated data in R

$
0
0

I am currently setting up a multicenter (nine centers) RCT of a treatment versus placebo (1:1), with a primary outcome of prolongation of pregnancy in days. The minimal clinically relevant difference in days is 5 days (between treatment and placebo). The distribution of prolongation in days is skewed and presumed to be log-normal based on previous studies. The center-specific attitude towards prolongation will have an impact on the primary outcome, and this attitude might change in time during the trial. The size of this impact is really hard for us to estimate.

Based on feedback, I decide to calculate the sample size needed for our trial (power 80%, alpha 0.05) using simulated data (created based on summary statistics from a comparable single-center trial; we don't have much data from our population unfortunately) in a log-normal mixed effects model, using center as random effect and treatment as fixed effect.

This is the information I have from the previous trial:Mean of log-transformed prolongation data (placebo): 2.25SD of log-transformed prolongation data (placebo): 1.23Mean of untransformed prolongation data (placebo): 17.6 daysSD of untransformed prolongation data (placebo): 18 daysTotal number of patients in trial: 180 (90 per arm)

My code based an minimal clinically relevant difference (MCRD) of 5 days:

# Define parameters## I used the same sample size as the other trial, 180 patients (90 per arm)n_centers <- 9  # Number of centersn_per_center_per_group <- 10  # Number of participants per treatment group per centertotal_n <- n_centers * n_per_center_per_group * 2  # Total number of participants (with 2 treatment arms)n <- 90# Generate treatment variable for placebotreatment_placebo <- rep("Placebo", n_per_center_per_group * n_centers)# Generate treatment variable for medicinetreatment_medicine <- rep("Medicine", n_per_center_per_group * n_centers)treatment <- factor(c(treatment_placebo, treatment_medicine))# Generate center variable for each treatment groupcenter_placebo <- rep(1:n_centers, each = n_per_center_per_group)center_medicine <- rep(1:n_centers, each = n_per_center_per_group)center <- factor(c(center_placebo, center_medicine))# Combine placebo and metformin datasimulated_data <- data.frame(treatment = factor(c(treatment_placebo, treatment_medicine)),                             center = factor(c(center_placebo, center_medicine)))# Generate log-normal prolongation of gestation with different means for treatment and placebomean_placebo <- 2.25 # mean of log normal transformed data in previous trialMCRD <- log (16/11) #MCRD of 5 days on the untransformed scale: 11 days estimated as a mean prolongation in placebo and 16 days in treatment group, transformed to put it on log-scale. mean_treatment <- mean_placebo + MCRD sd_log <- 0.7  # Standard deviation on the log scalelog_prolongation_placebo <- rlnorm(n, meanlog = mean_placebo, sdlog = sd_log)log_prolongation_treatment <- rlnorm(n, meanlog = mean_treatment, sdlog = sd_log)log_prolongation_placebo <- log(log_prolongation_placebo)log_prolongation_treatment <- log(log_prolongation_treatment)log_prolongation <- c(log_prolongation_placebo, log_prolongation_treatment)# Create data framesimulated_data <- data.frame(treatment = factor(c(treatment_placebo, treatment_metformin)),                             log_prolongation = log_prolongation,                             center = factor(c(center_placebo, center_metformin)))#RUN SIMULATION WITH SIMULATED DATAlibrary(lme4)lmer_model <- lmer(log_prolongation ~ treatment + (1 | center), data = simulated_data)summary(lmer_model)powerSim(lmer_model, nsim=1000, alpha = 0.05)

I have little experience with R/statistics and I am afraid that I might not have provided the right input for the model (especially as I am log-transforming data back and forth).

I would really appreciate a review of the code I created for faulty assumptions (particularly regarding the MCRD), and/or input on how to improve this model based on the available data.


Viewing all articles
Browse latest Browse all 12111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>