【问题标题】:Interpreting the Y values of a normal distribution解释正态分布的 Y 值
【发布时间】:2017-08-15 01:08:36
【问题描述】:

我编写了这段代码来生成一组值 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)

返回:

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

读取http://www.stat.yale.edu/Courses/1997-98/101/normal.htm Y 值的计算方法是:

正态分布有一条钟形的密度曲线,由其描述 均值和标准差。密度曲线是对称的, 以均值为中心,散布由其标准决定 偏差。给定点 x 处的正态密度曲线的高度为 由提供

这个公式是什么意思?

【问题讨论】:

标签: pandas dataframe histogram normal-distribution


【解决方案1】:

我认为您在这里混淆了两个概念。直方图只会绘制某个值出现的次数。因此,对于您的[1,2,3] 列表,1 的值将出现一次,并且对于23 相同。如果你设置了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。如果堆叠也是 True,直方图之和归一化为 1。

所以它就在那里为您提供了公式。所以在你的情况下,你有三点,即 len(x)=3。如果您查看您的绘图,您会看到您的 bin 的宽度为 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

【讨论】:

  • 谢谢我确实混淆了两个概念。使用 Normed=True 归一化时遵循钟形曲线的一组值可以解释为正态分布 ?我认为这个问题的答案是肯定的,因为如果我们将值标准化并且这些值形成钟形曲线,那么进一步将这些值缩放到 > 0 和
  • 是的,没错。如果您的一组值来自正态分布,则直方图将代表钟形曲线。当 normed=True 时,所有条的总面积(宽度*高度)将加起来为 1。类似于贝尔曲线上的积分是一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 2016-08-03
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多