解释正态分布的Y值

时间:2017-03-22 18:20:23

标签: pandas dataframe histogram normal-distribution

我编写了这段代码来生成一组值1,2,3的正态分布:

import pandas as pd
import random
import numpy as np

df = pd.DataFrame({'col1':[1,2,3]})
print(df)
fig, ax = plt.subplots(1,1)
df.plot(kind='hist', normed=True, ax=ax)

返回:

enter image description here

X值是可能值的范围,但Y值是如何解释的?

阅读http://www.stat.yale.edu/Courses/1997-98/101/normal.htm Y值使用以下公式计算:

  

正态分布具有由其描述的钟形密度曲线   平均值和标准差。密度曲线是对称的,   以其平均值为中心,其标准由其标准决定   偏差。给定点x处的正常密度曲线的高度为   由enter image description here

提供

这个公式的含义是什么?

1 个答案:

答案 0 :(得分:1)

我认为你在这里混淆了两个概念。直方图将仅显示某个值出现的次数。因此,对于您的[1,2,3]列表,12的值3将出现一次,相同。如果您设置了Normed=False,那么您将获得高度为1.0的情节。

但是,当您设置Normed=True时,您将启用规范化。请注意,这与正态分布无关。请查看hist的文档,您可以在此处找到它:http://matplotlib.org/api/pyplot_api.html?highlight=hist#matplotlib.pyplot.hist 在那里,您可以看到Normed选项的作用,即:

  

如果为True,则返回元组的第一个元素将是规范化以形成概率密度的计数,即n /(len(x)`dbin),即直方图的积分将总和为1。 stacked也是True,直方图的总和标准化为1。

所以它在那里为你提供了公式。所以在你的情况下,你有三个点,即len(x)= 3。如果你看你的情节你可以看到你的箱子宽度为0.2,所以dbin = 0.2。对于123,每个值只显示一次,您将得到n = 1。因此,条形图的高度应为1 /(3 * 0.2)= 1.67,这正是您在直方图中看到的。

现在对于正态分布,这只是一个特定的概率函数,定义为您给出的公式。它在许多领域都很有用,因为它与不确定性有关。例如,你会在统计数据中看到很多。 Wikipedia article on it有很多信息。

如果想要生成符合正态分布的值列表,我建议您阅读numpy.random.normal的文档,该文档将为您执行此操作:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html