Python 为什么正态分布的总和在numpy中是不同的?

Python 为什么正态分布的总和在numpy中是不同的?,python,numpy,Python,Numpy,我只是想看看为什么结果不同 假设X和Y是独立的标准正态分布 X~N(0,1) Y~N(0,1) 加起来就是 X+Y~N(0,√(2) )(根据 因此,如果我将代码创建为形状为(1,5)的numpy,它将是这样的 np.random.seed(100) k3 = np.random.normal(0, √(2), size=(1,5)) 结果如下 k3 = array([[-0.64774797, 0.61541411, -0.82532804, 1.15519621, 0.9513708

我只是想看看为什么结果不同

假设XY是独立的标准正态分布

X~N(0,1)

Y~N(0,1)

加起来就是 X+Y~N(0,√(2) )(根据

因此,如果我将代码创建为形状为(1,5)的numpy,它将是这样的

np.random.seed(100)
k3 = np.random.normal(0, √(2), size=(1,5))
结果如下

k3 = array([[-0.64774797,  0.61541411, -0.82532804,  1.15519621,  0.95137089]])
但是如果我尝试使用下面的代码

np.random.seed(100)
k1 = np.random.normal(0, 1, size=(1,5))
k2 = np.random.normal(0, 1, size=(1,5))
k = k1 + k2
结果就是这样

k = array([[-1.23554663,  0.56386007,  0.08299247, -0.44193187,  1.23632223]])


所以,我的问题是kk3有什么不同?它会有同样的结果吗?还是我在这里做了错误的解释?

这里相等的是两个变量的分布,这是可以证明的(参见示例)

为了确信这两种分布是相同的,您可以通过绘制阵列的直方图来查看
k
k1+k2
(注意样本来自相同的分布,但不相同!)

查看
k
k3
来自同一分布的另一种方法是使用一些统计检验,如t检验、斯皮尔曼秩相关等

N = 500 # num. samples
# generate data
import numpy as np
np.random.seed(100)

k1 = np.random.normal(0, 1, size=N)
k2 = np.random.normal(0, 1, size=N)
k3 = np.random.normal(0,np.sqrt(2), size=N)

# plot data
import matplotlib.pyplot as plt
import seaborn as sns
# side-by-side
plt.subplot(1, 2, 1)
sns.distplot(k1+k2)
plt.subplot(1, 2, 2)
sns.distplot(k3)
plt.show()
# overlayed
sns.distplot(k1+k2, hist=False)
sns.distplot(k3, hist=False)
plt.show()


# test
import scipy.stats
(k1+k2).sort()
k3.sort()
#stat, p = scipy.stats.ttest_ind(k1+k2, k3)
stat, p = scipy.stats.spearmanr(k1+k2, k3)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
    print('Same distributions (fail to reject H0)')
else:
    print('Different distributions (reject H0)')

# print statistics like mean, variance
scipy.stats.describe(k3)
scipy.stats.describe(k1+k2)

通过增加样本数量,我们可以越来越清楚地看到这两个分布是相同的(在您的示例中,您只看到5个样本,这太少了)。

um,什么是
√(2) 
?即2的平方根(正态分布的标准偏差)。我不知道如何在StackOverflow上写符号,我知道它在数学中的含义,但在Python中这并不意味着什么。您需要提供一个实际的代码示例,以获得所看到的输出。为什么您认为这些结果应该是相同的?你在随机抽取样本。虽然从第二个分布中抽取的两个样本的总和恰好与第一个分布相同,但为什么你会期望两个不同的随机样本给出相同的结果呢?我只是好奇。但是你的回答对我来说很有意义。还有一个问题,根据上面的代码,你认为k和k3位于相同的标准偏差上吗?