I'm experiencing an hard time looking for the proper analysis to use to compute the power for an experiment i'd like to implement, so here is my question for you.
I'd like to run a quasi-experimental design A (manipulated: 3 levels) X B (measured: ordinal with 5 levels but treated as continuous) and controlling for 2 continuous confounding variables. The instruments I'm using are quite reliable (alpha's are .84, .94, .99). My first choice would be simply running on G*Power a power analysis for a multiple regression with 3 tested predictors (IV,IV and interaction term) and 5 predictors in total (IV,IV,interaction term and 2 confounders), with a small predicted interaction effect.
But I know that there are many things wrong here. I think that treating and ordinal IV as continuous is the worst, cause therein lies the problem: if I had 5 levels I would need 1829 subjects (Ancova, fixed effects, main effects and interactions: EF f=.10, alpha = .05, Power = .80, df = 14, groups = 15, covariates = 2).
Then I think about the second option. Theory on the measured IV states that answers from 4 and above are to be treated as 'high' so, i think, I could split subjects on this premise. But then i could lose information and/or power, and, moreover, I would anyway need more than 1200 subjects.
Then, i think moreover (third possibility), I could just feed parameters into a hierarchical regression and see what sample size I get but the manipulated variable obviously doesn't allow me to use this stream of thought.
The main problem of this design is, I think, the measured predictor.
Any suggestion about how to calculate the sample size will be wholeheartedly appreciated.
Thanks all.
Edit: To play around with InteractionPoweR, following some good advice in the comments, here are some numbers:
library(InteractionPoweR)
power_test = power_interaction_r2(
alpha = 0.05, # p-value
N = seq(250,300, by=50), # sample size
r.x1.y = .23, # correlation between x1 and y
r.x2.y = .23, # correlation between x2 and y
r.x1.x2 = .53, # correlation between x1 and x2
r.x1x2.y = seq(.1,.2,by=.001)) # correlation between x1x2 and y
power_test
#result = sample size = 300; correlation between x1x2 and y= 0.169; power= 0.8074179
#result = sample size = 250; correlation between x1x2 and y= 0.184; power=0.8013529
When r.x1.x2 = 0
power_test = power_interaction_r2(
alpha = 0.05, # p-value
N = seq(250,300, by=50), # sample size
r.x1.y = .23, # correlation between x1 and y
r.x2.y = .23, # correlation between x2 and y
r.x1.x2 = 0, # correlation between x1 and x2
r.x1x2.y = seq(.1,.2,by=.001)) # correlation between x1x2 and y
power_test
#result = sample size = 300; correlation between x1x2 and y= 0.155; power= 0.8039252
#result = sample size = 250; correlation between x1x2 and y= 0.170; power=0.8035689
The calculations using the methods here is hard for me to use because actually, I understand, I should have the means and the variances, but i don't have them. Finally, the setup I just tried seems to me just a multiple regression with an interaction term power analysis. I like the fact that with 250 people I'm able to detect such a small effects, but to me it seems maybe too big (especially when i see this). Tomorrow I'll some other solution. Meanwhile, any hint is welcome