【问题标题】: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))?

【问题讨论】:

    标签: r statistics simulation probability probability-density


    【解决方案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 &lt;- data.frame(x = runif(n, -1, 1), y = runif(n, -1, 1), h=1)
    • 很好!!现在我非常接近我发现的价值。在我的模拟之后,我只使用了with(X,{ v= log(y)&gt;sin(x) mean(v) }) mean(v)
    • 很好,平均功能也可以。这是一个很好的情节补充:points(X[ii, 1:2], pch='.', col="red") 将用红色标记感兴趣的区域。
    猜你喜欢
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多