代码之家  ›  专栏  ›  技术社区  ›  cephalopod

计算R中的概率

  •  -1
  • cephalopod  · 技术社区  · 8 年前

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

    1. R中的向量
    2. 如何计算一个值的概率

    我的测试数据如下:

    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
    

    2 回复  |  直到 8 年前
        1
  •  0
  •   P1storius    8 年前

    对于问题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)
    

    values_all == prob_to_find )除以集合中的值总数。

    对于问题2,我对你的问题发表了评论,因为我需要一些额外的信息

        2
  •  0
  •   000andy8484    8 年前

    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
    

    或者,你需要在检查向量后假设一个分布,例如 uniform(1,7) 将是:

    > punif(3, min = 1, max = 7)
    [1] 0.3333333
    

    关于这个决策过程,请参考 StackExchange answer .

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

    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))
    

    返回:

    b
        1     2     3     4     5     6     7 
    0.144 0.251 0.087 0.053 0.207 0.099 0.159
    

    一、 e:值3的概率=8.7%。