In our group we are planning a small RCT. We have data from an feasibility study and the setting is the following:
- three arms: Placebo, Therapy1, Therapy2
- two timepoints of measurement of our parameter of interest: Baseline, Follow-up
- possible confounders are measured, lets say blood-pressure and age
We want to compare the effect of Therapy1 to Placebo and Therapy2 to Placebo.
Our hypothesis is, that there is no meaningful difference in Therapy1 vs. 2, but to show “no difference” the sample size would have to be much higher I think.
How do I compute the needed sample size for these comparisons?
I thought of using library(Superpower) and power_oneway_ancova()but I dont know how to specify the r2 parameter?? (Superpower: Power Calculations for ANCOVA & Power Analysis and Sample Size Planning in ANCOVA Designs | Psychometrika | Cambridge Core)
The other ones are n_cov=3 (age, blood-pressure, FU-measurement), sd=pooled_sd, mu=means, alpha=0.05 (or 0.025 because of multiple testing?), beta_level=0.2
Is r2 just the correlation between baseline and followup without adjustment by age and bp?
Or do I have to run a lm(baseline-FU ~ age + bp + group, data=data)or lm(FU ~ age + bp + baseline, data=data)?
I found an “ancova adjusted effect size of Cohen’s d by d_adj = d / sqrt(1-R2) and R2 is from the lm, but I dont know why?
It would be super helpful if someone could guide me towards the right direction how to compute the sample size.
I made some sample data:
data ← data.frame(
group = c(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2),
age = c(40, 50, 45, 45, 48, 52, 40, 44, 38, 50, 46, 47),
bp = c(120, 110, 115, 140, 120, 140, 130, 120, 120, 130, 140, 150),
baseline = c(6, 8, 5, 6, 7, 5, 9, 7, 8, 8, 5, 6),
followup = c(6, 7, 5, 5, 5, 5, 6, 6, 7, 5, 5, 5)
)
mean_baseline = c(6.25, 7, 6.75), mean_followup = c(0.5, 1.5, 1.25)
PS.: The statistical consultancy at our clinic who are responsible for trials, just told me to ran a t-test and use the estimated sample size, cause its an estimator anyways and the adjustments are irrelevant. This seems not to be the right way for me, so I decided to get into it by myself…
