📖 什么是统计功效?
统计功效(Statistical Power)是指在假设检验中,当备择假设(H1)为真时正确地拒绝零假设(H0)的概率。
- Power越高,第二类错误(β)越低
- Power = 1 - β
- 通常要求 Power > 0.8(80%)
🧮 在线Power计算工具
二分类变量
需要填写:
- 结局的 sample size(样本量)
- 结局的病例对照之比(case/control ratio)
- R²(表型变异解释度)
- 因果估计效应(OR值)
- 显著水平(通常 p = 0.05)
连续型变量
需要填写:
- 结局的 sample size(样本量)
- R²(表型变异解释度)
- 因果估计效应(beta值)
- 显著水平(通常 p = 0.05)
📐 公式计算法
Stephen Burgess 等人提出的Power计算公式:
Power ≈ Φ( |β| × √(n × R² / K) - z_{1-α/2} )
参数说明:
- • β = log(OR),暴露对结局的效应值
- • n = 结局GWAS样本量
- • R² = 表型变异解释度(PVE)
- • K = 工具变量SNP数量
- • α = 显著性水平(通常0.05)
R代码实现
# Power计算函数(分类结局)
calculate_power_binary <- function(
n, # 样本量
n_case, # 病例数
n_control, # 对照数
OR, # 比值比
R2, # R²
alpha = 0.05 # 显著性水平
) {
k <- 1 # 假设每个SNP的效应独立
# 计算non-centrality parameter
lambda <- (log(OR)^2 * R2 * n) / k
# 计算Power
z_alpha <- qnorm(1 - alpha/2)
power <- pnorm(sqrt(lambda) - z_alpha)
return(power)
}
# 示例
n <- 50000
n_case <- 10000
n_control <- 40000
OR <- 1.2
R2 <- 0.03
power <- calculate_power_binary(n, n_case, n_control, OR, R2)
cat("Power:", round(power * 100, 2), "%\n")
📊 R²(表型变异解释度)计算
方法一:使用已有工具变量R²
# 多个SNP的R²总和计算
# 假设已知每个SNP的效应量
# 方法1:直接求和(假设SNP独立)
R2_total <- sum(R2_individual) # R2_individual是各SNP的R²向量
# 方法2:使用TwoSampleMR
library(TwoSampleMR)
exp_dat <- extract_instruments("ieu-b-38")
# 手动计算每个SNP的R²
# R² = 2 * beta² * maf * (1-maf) / sd²
# 其中 sd = se * sqrt(n)
方法二:使用在线工具
💡 实际应用建议
- ✓ 在研究设计阶段计算Power,确保样本量足够
- ✓ 如果Power < 80%,考虑增加样本量或降低效应量假设
- ✓ 使用R²较大的工具变量可提高Power
- ✓ 常见GWAS的Power计算:n > 10,000 通常可达到80% Power