【问题标题】:Numpy bivariate normal distribution with correlation = 1相关性 = 1 的 Numpy 双变量正态分布
【发布时间】:2021-03-03 20:56:11
【问题描述】:

将 X 和 Y 视为相关性为 1.0 的边际标准正态。

当相关性为 1.0 时,二元正态分布未定义(从技术上讲,它是 y = x 线),但 numpy 仍会打印出值。为什么会这样?

【问题讨论】:

  • 您好,您的问题得到解答了吗?如果是这样,您能否接受并投票赞成答案?如果不是,可以澄清什么?

标签: numpy normal-distribution


【解决方案1】:

哦,但是分布是定义的!它只是没有明确定义的 density 函数。 (至少,不是关于 2D 空间上的 Lesbegue 度量。)(请参阅Mathematics Stack Exchange's discussion 了解更广泛的此类分布。)所以numpy 没有做错任何事情。

您所描述的是二元(或更一般地,多元)正态分布的degenerate case。当协方差矩阵不是正定的时,就会发生这种情况。然而,分布是为任何正的-正定协方差矩阵定义的。

例如,矩阵 [[1, 1], [1, 1]] is positive not definiteis positive semidefinite

分布仍然具有分布应该具备的许多其他属性:支撑(如您所记,实线:μ + span(Σ))、矩等等。

import numpy as np

np.random.multivariate_normal(mean=[0, 0], cov=[[1, 1], [1, 1]])
# array([0.61156886, 0.61156887])

总之,numpy 的行为没有被破坏。通过从正确指定的分布中返回样本来表现良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多