← 返回教程列表

⚡ Power值计算

MR分析统计功效评估

📖 什么是统计功效?

统计功效(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样本量
  • = 表型变异解释度(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)

方法二:使用在线工具

💡 实际应用建议

📚 相关教程