R中概率的计算

R中概率的计算,r,probability,R,Probability,我有两个问题,我想用R来解决 我有一个分布未知的值向量 我如何计算中某个值的概率 R中的向量 如何计算一个值的概率 通过模拟1000次发生 我的测试数据如下: values_all <- c(rep(1, 3), rep(2, 5), rep(3, 2), 4, rep(5, 4), rep(6, 2), rep(7, 3)) prob_to_find <- 5 values\u all对于问题1,您可以使用: values_all <- c(rep(1, 3), rep(2

我有两个问题,我想用R来解决


我有一个分布未知的值向量

  • 我如何计算中某个值的概率 R中的向量
  • 如何计算一个值的概率 通过模拟1000次发生
  • 我的测试数据如下:

    values_all <- c(rep(1, 3), rep(2, 5), rep(3, 2), 4, rep(5, 4), rep(6, 2), rep(7, 3))
    prob_to_find <- 5
    

    values\u all对于问题1,您可以使用:

    values_all <- c(rep(1, 3), rep(2, 5), rep(3, 2), 4, rep(5, 4), rep(6, 2), rep(7, 3))
    prob_to_find <- 5
    
    probability <- sum(values_all == prob_to_find) / length(values_all)
    

    值\u all要从未知分布计算值的概率,基本上可以计算值的概率:

    prop.table(table(values_all))
    values_all
    
    哪些产出:

    1    2    3    4    5    6    7 
    0.15 0.25 0.10 0.05 0.20 0.10 0.15
    
    或者,您需要在检查向量后假设一个分布,例如
    均匀(1,7)
    将是:

    > punif(3, min = 1, max = 7)
    [1] 0.3333333
    
    关于此决策过程,请参阅。 另外,请注意,对于连续分布,您应该计算两个双(数值)值之间的差值,因为根据定义,特定值的概率为零

    为了避免随意决定,运行模拟通常是更安全的选择。您只需更换样品即可:

    b <- vector("numeric", 1000)
    set.seed(1234)
    for (i in 1:1000){
        b[i] <- sample(values_all, size=1, replace = T)
    }
    prop.table(table(b))
    

    即:值3的概率=8.7%。

    您尝试了什么?在同一篇文章中问两个问题有点像是为我做的。你说你想模拟,但你没有提到你的数据是如何推导出来的。也许您可以使用
    sample()
    生成一组随机值,例如
    sample(1:10,size=20,replace=T)
    “我有一个分布未知的值向量。”那么,您的值是分布中的样本?关于这个分布有什么消息吗?例如,您的示例似乎表明它是正整数值的离散分布。如果没有额外的信息或假设,这是无法解决的。
    b
        1     2     3     4     5     6     7 
    0.144 0.251 0.087 0.053 0.207 0.099 0.159