关于numpy.random.multivariate_normal官方示例标准差取值的疑问
问题解答
阈值计算矛盾的原因
你对标准差的计算完全正确:示例给出的协方差矩阵为单位矩阵,两个维度的边缘分布方差均为1,对应标准差为1,两倍标准差对应的阈值应为2,而非文档中标注的0.6。
该表述属于Numpy官方文档的历史笔误,后续版本已对该错误进行修正,原说明中的0.6应为2,修正后符合单变量正态分布的68-95-99.7经验法则:约95%的采样结果会落在均值±2倍标准差的范围内,因此list((x[0,0,:] - mean) < 2)大概率为真。
经验法则的适用范围说明
你的判断逻辑成立:68-95-99.7经验法则本质是单变量正态分布的统计性质,不能直接套用到多元正态分布的联合概率判断中。
但本示例的判断逻辑并不涉及多元联合概率:np.random.multivariate_normal(mean, cov, (3, 3))生成的数组形状为(3,3,2),最后一个维度对应2个随机变量的输出,x[0,0,:]就是取空间位置为(0,0)的两个变量的采样值,(x[0,0,:] - mean) < 阈值是逐元素计算的,本质是对两个独立的单变量正态分布采样结果分别做阈值判断,因此完全可以使用单变量的经验法则,不存在误用问题。
内容的提问来源于stack exchange,提问作者Shayan
相关产品推荐
相关产品推荐

