找到概率的近似值 ??????(????????????(????)>????????????(????)) 使用模拟
Posted
技术标签:
【中文标题】找到概率的近似值 ??????(????????????(????)>????????????(????)) 使用模拟【英文标题】:Find approximate value for the probability ????(????????????(????)>????????????(????)) using simulation 【发布时间】:2022-01-08 23:18:54 【问题描述】:我对以下分布进行了模拟:
在统计程序 R 中,现在我必须找到概率 P(log(Y) > sin(X)) 的近似值。我怎么能在 R 中做到这一点?谁能帮帮我?
我隐藏了自己的模拟,而其他有相同问题的模拟则不应该 复制它。但是我从另一篇文章中得到了这个模拟,它也可以工作:
n <- 1e4
X <- data.frame(x = runif(n, -1, 1), y = runif(n, 0, 1), z = runif(n, 0, 3/2))
i <- with(X, 0 < y & x^2 + y^2 < 1 & z <= (3/2)*y)
X <- X[i, ]
例如,我如何使用此模拟来找到 R 中的概率 P(log(Y ) > sin(X))?
【问题讨论】:
【参考方案1】:我不知道如何发布解决方案,没有你的伙伴也会看到它...... ;-)
# part 1: prepare probability density distribution on rect -1,...1
n <- 1e4
X <- data.frame(x = runif(n, -1, 1), y = runif(n, -1, 1), h=1)
X$h <- 3/2*X$y # set probability density h = 3/2*y
head(X)
# part 2: restrict to half disk and normalize probability h to equal 1
i <- with(X, 0 < y & x^2 + y^2 < 1)
X <- X[i, ]
X$h <- X$h / sum(X$h)
plot(X[, 1:2], asp=1, pch='.')
# measure probability for points with log(y) > sin(x)
ii <- with(X, log(y) > sin(x))
points(X[ii, 1:2], pch='.', col="red")
p <- sum(X[ii, "h"])
p
【讨论】:
很好,谢谢,这是有道理的。我自己发现了一个更快的技巧,但很高兴检查它给我的结果与你的代码相同,我想我理解你的代码中发生了什么,谢谢! 现在我很好奇这个更快的技巧可能是什么......? 编辑:第 2 行有一个小错误。更正它:X <- data.frame(x = runif(n, -1, 1), y = runif(n, -1, 1), h=1)
很好!!现在我非常接近我发现的价值。在我的模拟之后,我只使用了with(X, v= log(y)>sin(x) mean(v) ) mean(v)
很好,平均功能也可以。这是一个很好的情节补充:points(X[ii, 1:2], pch='.', col="red")
将用红色标记感兴趣的区域。以上是关于找到概率的近似值 ??????(????????????(????)>????????????(????)) 使用模拟的主要内容,如果未能解决你的问题,请参考以下文章
Redis 基础 -- HyperLogLog概率算法(计算集合的近似基数)和HyperLogLog的常用命令
人工智能数学基础--概率与统计2:排列组合的表示方法二项式系数及斯特林近似