【发布时间】:2019-08-15 08:18:28
【问题描述】:
我有一对变量(x,y),每个变量都有一个可能的值范围(xmin,xmax 和 ymin,ymax)。我正在寻找这样的对,它们基于一个函数会产生相同的概率。
这是我的函数,它会返回概率。
f <- function(x, y) 1-exp(-(x^(1/0.9)+y^(1/0.9))^0.9)
现在假设我想知道对于某个概率,比如 0.01,产生该概率的 x 和 y 的可能变量对是什么(考虑到它们的约束、最小值和最大值)。
(我已经尝试过反过来做整个事情,首先为 x 和 y 创建一个矩阵,然后为每个组合计算概率,但是我需要在矩阵中找到相同的概率,这似乎更加困难。)
【问题讨论】:
-
我认为您仍然需要计算所有概率才能找出具有一定值(0.01)的概率。如果
matrix2是所有概率组合的矩阵,你可以做mat <- which(matrix2 == 0.01, arr.ind = TRUE)并得到组合做data.frame(comb1 = rownames(matrix2)[mat[, 1]], comb2 = colnames(matrix2)[mat[, 2]])这对你有用吗? -
我明白你的意思,这是个好主意,我认为它会起作用,唯一的问题是我的矩阵中的概率不是整数,所以 R 不会找到 0.01。我想在那里指出一个范围,比如 0.01 加负 0.0001。如何将其添加到第一个命令?感谢您的帮助!
-
如果给定 x(好的旧纸和铅笔),您可以通过分析找到 y 产生所需的概率,然后以小步长在 min 和 max 之间循环 x 值并找到相应的 y。最后检查 y 是否在所需范围内,以了解您是否保留该对。这可能真的更快,因为您在计算矩阵时只求解一维而不是二维。
标签: r