【发布时间】:2021-04-18 15:31:26
【问题描述】:
我在一袋 50 个硬币中将每个硬币翻转 100 次,然后我想使用最大统计方法来确定家庭明智错误率。但是,我一直得到 1 的 FWER,这感觉不对。
coins <- rbinom(50, 100, 0.5)
所以我首先定义了一个新函数,在该函数中我们输入我们进行随机化的次数、硬币本身以及我们翻转它们的次数。
simulate_max <- function(n_number_of_randomizations, input_coins, N_number_of_tosses, alpha = 0.05) {
maxList <- NULL
然后我们为每次指定的时间做一个 for 循环。
for (iteration in 1:n_number_of_randomizations){
现在我们将硬币列表洗牌
CoinIteration <- sample(input_coins)
现在我们将二进制测试应用于袋子中的每一个硬币
testresults <- map_df(CoinIteration, function(x) tidy(binom.test(x,N_number_of_tosses,p=alpha)) )
现在我们要将每个测试的最大结果添加到最大列表中。
thisRandMax <- max(testresults$statistic)
maxList <- c(maxList, thisRandMax)
}
最后,我们遍历最大列表的每个成员以减去正面的预期值(即 50 表示 50% 的机会 * 100 次抛掷。
for (iterator2 in 1:length(maxList)){
maxList[iterator2]<-maxList[iterator2]-(0.5*N_number_of_tosses)
}
返回函数的输出
return(data.frame(maxList))
}
现在我们为每个请求的迭代应用这个模拟。
repsmax = map_df(1:Nreps, ~simulate_max(Nrandomizations,coins,Ntosses))
现在我们通过将增加的数量除以单元格总数来计算较小的值。
fwer = sum(repsmax>0) / (Nreps*Nrandomizations)
【问题讨论】:
-
我不熟悉家庭明智错误率的概念。
coins代表什么? -
@RonakShah 感谢您查看硬币是已被翻转的硬币列表以及它是正面的次数,例如,对于 100 次公平硬币,它看起来像 [50, 53, 48 , 52...]
-
你能解释一下你想做什么吗?还有一些常量没有在帖子中定义,例如
Nrandomizations、Nreps和Ntosses。 -
Nrandomizations Nreps Ntosses 每个都只是数字。例如,5 次随机化、100 次重复和 100 次投掷。
-
我认为如果您可以使您的示例可重现,那么您将更有可能让人们解决这个问题,以便他们可以从您的问题中复制代码,将其粘贴到 R 脚本中,然后运行。现在很难弄清楚代码的结构,有些对象是未定义的。
标签: r statistics