r - chisq.test() 和 Fisher.test() 中的 p 值模拟如何工作
问题描述
我有应急表 RxC。chisq.test
使用参数调用时函数和fisher.test
函数如何 工作simulate.p.value = TRUE, B = 5000
?
我正在使用下面的代码来验证列联表中的关联(或独立性)DATA
:
chisq.test(DATA, simulate.p.value = TRUE, B = 5000, correct = FALSE)
fisher.test(DATA,hybrid = TRUE, simulate.p.value = TRUE)
我知道测试可以执行蒙特卡罗模拟来估计测试的p值,我想知道的是这些模拟是如何在内部完成的,也就是说,如果模拟是为了达到正态分布还是另一个分布在测试结束时提供 p 值?
解决方案
Inchisq.test
和fisher.test
p 值模拟以非参数方式进行,没有先验分布假设。请参阅源代码摘录chisq.test
:
if (simulate.p.value) {
setMETH()
nx <- length(x)
sm <- matrix(sample.int(nx, B * n, TRUE, prob = p),
nrow = n)
ss <- apply(sm, 2L, function(x, E, k) {
sum((table(factor(x, levels = 1L:k)) - E)^2/E)
}, E = E, k = nx)
PARAMETER <- NA
PVAL <- (1 + sum(ss >= almost.1 * STATISTIC))/(B + 1)
}
推荐阅读
- reactjs - 对象在严格模式下可能为空
- java - 了解插入排序算法
- python - Pytorch 多 GPU 问题
- android - Android:使用 kotlin 流时,Firebase 对象为空
- c++ - 根据运行时值取模板
- flutter - 颤振 | 使用音频播放器最小化时停止音乐
- c++ - 转换 CppAD::AD
cpp翻倍 - wordpress - 如何使用 wordpress 插件中的 JS 文件从 wordpress 数据库中访问 usermeta 表?
- angular - 角材料 | 如何在网格图块中添加不同的组件?
- python - 带有 ETag 缓存的异步 http 请求