I have been asked to do a power calculation for a pre-post observational study. The researchers want me to calculate the sample size needed to detect a clinically meaningful number of clients attending a pain clinic who report a 1-point or greater reduction in pain rating on a standard 0-10 pain rating scale.
If it was calculating sample size required to detect a 1-point average reduction in the pain scale that would be ok, I know how to do that. But what they want is to calculate sample size required to estimate proportion of clients who have 1-point or more reduction from start of treatment to four weeks from start of treatment.
I am struggling to conceptualise how to do this. Usually an odds ratio of 2 is considered to be the minimum effect size for a difference in proportion of 'cases' pr 'target events' between groups. I was thinking a similar sort of reduction might be the threshold minimum for this study - a single group, pre-post design - as well. But I don't really know how to do it since (a) there is no group comparison, just a single number (2) the proportion of 'cases' at start of treatment is 100%, making odds of the 'target even' infinite.
As you can see I'm very confused. Any help appreciated.
Edit
From conversations below and a bit of thinking I have concluded that what my colleagues want me to do is calculate sample size for estimating a population proportion of people attending a pain clinic who have a reduction of one-point or more between start of treatment and four weeks in to treatment, within a margin of error
I spent yesterday trying to figure out how to do this and have posted some R code below
# Define parameters
confidence_level <- 0.95 # Desired confidence level
margin_of_error <- 0.05 # Desired margin of error (e.g., 5%)
estimated_proportion <- 0.5 # Estimated population proportion. If
# unknown, using p = 0.5 maximizes the required sample size,
# providing a conservative estimate
# Calculate Z-score
# For a two-tailed confidence interval, we use
# qnorm(1 - alpha/2)
alpha <- 1 - confidence_level
# is calculated from the confidence level
z_score <- qnorm(1 - alpha/2)
# calculates the Z-score corresponding to the specified
# confidence level. For a 95% confidence level, alpha is 0.05,
# and qnorm(0.975) returns 1.96
# Calculate sample size
sample_size <- (z_score^2 * estimated_proportion *
(1 - estimated_proportion)) / (margin_of_error^2)
# Round up to the nearest whole number as sample size
# must be an integer
sample_size <- ceiling(sample_size)
# Print the result
print(paste("Required sample size:", sample_size))
# output
[1] "Required sample size: 385"
So I get a sample size of 385. Interested in whether people think my statistical approach is valid. Obviously there are deep flaws in the methodology of the study (i.e. no control group) but that is not my choice.
