如何用Scipy获取条件多元高斯分布以实现混合PDF与CDF计算
关于Scipy中条件多元高斯分布的生成问题
对于多元高斯分布,给定单个点时计算PDF(概率密度函数)或CDF(累积分布函数)十分简单:
rv = scipy.stats.multivariate_normal(mean, cov) # 计算指定点的PDF rv.pdf(point) # 计算以上限为边界的CDF rv.cdf(upper)
但我的需求较为特殊:部分维度已知具体取值(需计算这部分的PDF),其余维度仅给定上限(需通过CDF积分计算)。
我将问题拆分为两步处理:
- 基于已知取值的维度,得到对应的条件多元高斯分布;
- 对剩余维度应用CDF函数,计算上限对应的积分值。
请问Scipy中是否存在可基于指定维度生成条件多元高斯分布的函数?
补充参考内容:
- 多元正态CDF的Scipy实现:Scipy的
multivariate_normal.cdf默认支持全维度的累积分布计算,但针对混合已知维度与上限的场景,需要结合条件分布的逻辑来实现需求。 - 条件多元高斯分布的推导:多元正态分布的条件分布仍为正态分布。若将变量划分为已知取值的子集X₁和待积分的子集X₂,对应均值拆分为μ₁、μ₂,协方差矩阵拆分为Σ₁₁(X₁的协方差)、Σ₁₂(X₁与X₂的协方差)、Σ₂₁(Σ₁₂的转置)、Σ₂₂(X₂的协方差),则X₂在X₁=x₁条件下的分布参数为:
- 条件均值:$\mu_2 + \Sigma_{21}\Sigma_{11}^{-1}(x_1 - \mu_1)$
- 条件协方差:$\Sigma_{22} - \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}$
内容的提问来源于stack exchange,提问作者j13r
相关产品推荐
相关产品推荐

