作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制卡方检验中的零分布图。在 R 中,使用代码进行蒙特卡洛模拟以获得经验 p 值是可行的:
chisq.test(d,simulate.p.value=TRUE,B=10000)
但它不返回分布图。有什么方法可以让 R 返回测试的模拟值吗?
最佳答案
如果您查看 chisq.test
的函数定义(capture.output(chisq.test)
的第 56 行左右),您将看到模拟部分:
if (simulate.p.value && all(sr > 0) && all(sc > 0)) {
setMETH()
tmp <- .Call(C_chisq_sim, sr, sc, B, E)
STATISTIC <- sum(sort((x - E)^2/E, decreasing = TRUE))
PARAMETER <- NA
PVAL <- (1 + sum(tmp >= almost.1 * STATISTIC))/(B +
1)
}
这是调用 C 函数。首先生成一些虚拟数据
## Some data
x <- as.table(rbind(c(762, 327, 468), c(484, 239, 477)))
dimnames(x) <- list(gender = c("F", "M"),
party = c("Democrat","Independent", "Republican"))
然后捕获你需要的位
sr <- rowSums(x)
sc <- colSums(x)
n <- sum(x)
E <- outer(sr, sc, "*")/n
v <- function(r, c, n) c * r * (n - r) * (n - c)/n^3
V <- outer(sr, sc, v, n)
dimnames(E) <- dimnames(x)
B = 2000
tmp <- .Call(stats:::C_chisq_sim, sr, sc, B, E)
STATISTIC <- sum(sort((x - E)^2/E, decreasing = TRUE))
almost.1 <- 1 - 64 * .Machine$double.eps
PVAL <- (1 + sum(tmp >= almost.1 * STATISTIC))/(B + 1)
变量 tmp
包含您想要的输出。变量 PVAL
匹配
chisq.test(x, simulate.p.value = T, B=2000)$p.value
请注意,我使用了 :::
,因为函数 C_chisq_sim
不是从 stats 中导出的。
关于检索卡方检验的蒙特卡洛模拟值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763010/
我应该在一些蒙特卡洛模拟中计算标准偏差函数。公式是这样的: 我认为我的结果与应有的结果相去甚远。我的函数使用来自 boost 库的元组,它看起来像这样: double add_square(doubl
我需要使用 R 代码执行股票价格模拟。问题是代码有点慢。基本上我需要模拟每个时间步长(每天)的股票价格并将其存储在矩阵中。 假设股票过程是几何布朗运动的例子 for(j in 1:100000){
如何在卷积神经网络中使用 Keras 实现 Monte Carlo dropout 以估计 YARIN GAL 建议的预测不确定性?我正在使用 R。R-Code is here 我正在小批量地拟合模型
我是一名优秀的程序员,十分优秀!