You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算满足不同下限的事件序列的联合概率?

概率计算疑问与实现

数值分布

ValueN Cases%
06060
12020
21010
388
422

生成该分布的代码:

import pandas as pd
from math import factorial
from itertools import product

Value = [0,1,2,3,4]
N_freq = [60,20,10,8,2]
Perc = [0.60,0.20,0.10,0.08,0.02]

df = pd.DataFrame({"Value": Value, "N_freq":N_freq, "Perc":Perc})
df

已知累积概率:

  • X≥0的概率为100%
  • X≥1的概率为40%

问题描述

当计算无顺序且独立的事件序列X₁≥0、X₂≥0、X₃≥1的联合概率时,我最初计算为100%×100%×40%=40%,但实际上唯一不满足该序列的事件是(0,0,0),其概率为60%×60%×60%=21.6%,因此正确概率应为100%-21.6%=78.4%。

我在累积概率的加权计算中忽略了什么?有没有一种无需枚举所有事件再求和的高效方法(当数值数量极大时,枚举不可行)?

我的实现代码

from functools import reduce

def CombinationsVectorWithReplacementAndOrder(vect):
    """
    计算向量的可重复有序组合数
    公式:Result = D! / ∏(s∈S) n(s,d)!
    其中D是向量长度,n(s,d)是每个值在向量中出现的次数
    """
    d = len(vect) # 序列长度
    # 分子
    NumeratorFormula = factorial(d)
    
    # 分母
    df_vec = pd.DataFrame(vect, columns = ["vec_values"]).vec_values.value_counts().values
    
    # 若所有元素相同,直接取该元素出现次数的阶乘
    if len(df_vec)==1:
        DenominatorFormula = factorial(df_vec[0])
    else:
        DenominatorFormula = 1
        for val in df_vec:
            DenominatorFormula *= factorial(val)
    
    # 结果
    Formula = NumeratorFormula / DenominatorFormula
    return int(Formula)

def CumProbWithNoOrder(df, Vals):
    MaxVal = df["Value"].max()
    ValList = [list(range(Val, MaxVal+1, 1)) for Val in Vals]
    l = list(product(*ValList))
    AllComb = [list(elem) for elem in l]
    UniqueComb = []
    for i in AllComb:
        if sorted(i) not in UniqueComb:
            UniqueComb.append(sorted(i))
    TotalProb = 0         
    for Comb in UniqueComb :   
        Prob = float(pd.DataFrame([float(df["Perc"][df["Value"] == c]) for c in Comb]).prod())
        Combinations = CombinationsVectorWithReplacementAndOrder(Comb)
        TotalProb += Prob * Combinations 
    print(f'概率为', TotalProb )
    return TotalProb

# 要评估的“大于等于”阈值序列
Value_threshold = [0,0,1]
CumProbWithNoOrder(df, Value_threshold) # 输出0.7840000000000001

内容的提问来源于stack exchange,提问作者Carles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:48:07