【发布时间】:2018-03-06 00:03:54
【问题描述】:
原谅我这是我第一次在网上提问。
首先:设置一些数据以便于提问。
location <- c(1, 2, 3, 4)
numerator_estimate <- c(625, 180, 210, 1753)
numerator_variance <- c(22165, 2451, 11610, 172968)
denominator_estimate <- c(2278 , 4742, 1115, 26892)
denominator_variance <- c(15870, 688, 7172, 1908288)
my_df <-data.frame(location, numerator_estimate, numerator_variance, denominator_estimate, denominator_variance)
这个函数在给定分子和分母的估计和方差的情况下引导商的 SE
calculate_quotient_se <- function(numerator_estimate_f, numerator_variance_f, denominator_estimate_f, denominator_variance_f, iterations = 10000){
numerator_sim <- rnorm(n = iterations, mean = numerator_estimate_f, sd = sqrt(numerator_variance_f))
denominator_sim <- rnorm(n = iterations, mean = denominator_estimate_f, sd = sqrt(denominator_variance_f))
quotient_sim <- numerator_sim/denominator_sim
quotient_sim_se <- sd(quotient_sim)
return(quotient_sim_se)
}
此函数计算商,并包含在内以表明calculate_quotient_se 不起作用,但另一个函数起作用。
calculate_quotient <- function(numerator_estimate_f,denominator_estimate_f){
quotient <- numerator_estimate_f/denominator_estimate_f
}
my_df2 <- my_df %>%
mutate(quotient_se = calculate_quotient_se(numerator_estimate, numerator_variance, denominator_estimate, denominator_variance, iterations = 10000),
quotient = calculate_quotient(numerator_estimate, denominator_estimate))
my_df2
请注意 quotient_se 仅适用于第一行,并且该 se 是为向下的每一行复制的。
这样也行不通:
my_df$q_se <- calculate_quotient_se(numerator_estimate, numerator_variance, denominator_estimate, denominator_variance, iterations = 10000)
my_df
如果我像这样输入所有内容,它将起作用:
(x1 <- calculate_quotient_se(625, 22165, 2278, 15870))
(x2 <- calculate_quotient_se(180, 2451, 4742, 688))
(x3 <- calculate_quotient_se(210, 11610, 1115, 7172))
(x4 <- calculate_quotient_se(1753, 172968, 26892, 1908288))
关于如何在数据框中获取模拟 SE 以进行更多计算的任何建议?
【问题讨论】: