一维情况下方差的等效协方差矩阵是多少?

What is the equivalent covariance matrix to the variance in the 1D case?

我正在尝试生成一个三维多元正态分布,其每个维度的值范围大约为 0 到 100。

当我生成均值为 50、方差为 16 的一维正态分布时:

data = random.normal(50, 16, 1000)

结果分布的值范围大约为 0 到 100。但是当我将其扩展到多变量情况时,值的范围仅为 35 到 65:

covar = [[16, 0, 0], [0, 16, 0], [0, 0, 16]]
data = random.multivariate_normal([50, 50, 50], covar, 1000)

当对三个维度使用 random.normal 时,我得到了预期的结果,值范围从 0 到 100。

data = random.normal(50, 16, size=(3,1000))

这种差异从何而来?为了在多变量情况下获得每个维度中我想要的值范围,我必须像这样制作协方差矩阵:

covar = [[300, 0, 0], [0, 300, 0], [0, 0, 300]]

这对于均值为 50 的正态分布来说似乎完全不合理。

非常感谢任何帮助!

您混淆了方差和标准差。

np.random.normalscale= 参数指定 标准差 (即方差的平方根),而协方差矩阵的对角线传递给 np.random.multivariate_normal 对应于每个维度中的 方差

尝试将协方差矩阵的对角线设置为 16**2 == 256