贏家詛咒的模擬
# 連續變量
set.seed(123) # 再現性
n_researchers <- 10 # 研究者的數目
n_studies <- 100 # 研究的數目
true_effects <- rnorm(n_studies, mean = 50, sd = 10) # 每一個研究效果的真值
# 每一個研究者估計每一種研究的效果量
estimates <- matrix(rnorm(n_studies * n_researchers, mean = true_effects, sd = 5), nrow = n_studies, ncol = n_researchers)
# 在每一個研究中,所有研究者中最大的效果量
winning_estimates <- apply(estimates, 1, max)
winner_overestimation <- winning_estimates - true_effects
# 贏家詛咒造成的平均高估效果量
mean_winner_overestimation <- mean(winner_overestimation)
# 二元變量
n_patients <- 1000 # 病人的數目
prob_recovery <- 0.2 # 某治療有效的比率真值
# 某治療是否有效(1 有效、0 無效)
true_outcomes <- rbinom(n_patients, size = 1, prob = prob_recovery)
# 每一個研究者估計每一種研究的效果量
estimates_binomial <- matrix(rbinom(n_patients * n_researchers, size = 1, prob = prob_recovery), nrow = n_patients, ncol = n_researchers)
# 在每一個研究中,所有研究者中最大的效果量
winning_outcomes <- apply(estimates_binomial, 1, max)
winner_overoptimism <- winning_outcomes - true_outcomes
# 贏家詛咒造成的平均高估效果量(有效的比率)
mean_winner_overoptimism <- mean(winner_overoptimism)
# 結果
list(mean_winner_overestimation = mean_winner_overestimation, mean_winner_overoptimism = mean_winner_overoptimism)
留言
張貼留言