置信区间与seaborn的标准差相比较

时间:2016-03-08 16:33:33

标签: python matplotlib statistics seaborn

当我在pointplot中使用seaborn的置信区间时,与标准错误相比,我得到了看似小的值。例如:

import seaborn as sns
import matplotlib.pylab as plt
import pandas
import numpy as np

x = np.random.rand(100)
y = np.random.rand(100)
df = pandas.DataFrame({"x": x,
                       "y": y})
data = pandas.melt(df)
print "data: ", data
plt.figure()
plt.subplot(2, 1, 1)
sns.pointplot(x="variable", y="value", data=data)
plt.ylim([0, 0.9])
ax = plt.subplot(2, 1, 2)
m = [df["x"].mean(), df["y"].mean()]
e = [df["x"].std(), df["y"].std()]
plt.errorbar(range(1,3), m, yerr=e)
plt.ylim([0, 0.9])
plt.xlim([0, 4])
plt.xticks([1, 2])
ax.set_xticklabels(["x", "y"])

标准偏差明显更大。对此有何解释?可以更接近标准偏差的简单度量的seaborn plot误差条?

enter image description here

在底部图中,显示了x和y的标准误差,它们比seaborn对x和y的置信区间大得多(在顶部图中)。

1 个答案:

答案 0 :(得分:-1)

让我之前的答案更精确,因为均匀随机变量的标准差是1 / sqrt(12)〜= 0.2887,所以第二个图中的条形覆盖大小的间隔大致[ 0.5-0.2887,0.5 + 0.2887] = [0.2113,0.7887]。

另一方面,根据中心极限定理,100个均匀随机变量的经验均值的95% - 置信区间将大致为[0.5-1.96 * 0.2887 / sqrt(100),0.5 + 1.96 * 0.2887 / SQRT(100)]〜= [0.443,0.557]。这相当于你的第一张图中seaborn绘制的置信区间。

总而言之,对于统计置信区间的计算,样本大小起着关键作用,不可忽视!

以前的简短回答 Seaplot的置信区间考虑了用于估计平均值的样本数。鉴于你给了seaplot一个相当数量的100个样本点,100个样本点的经验均值的95% - 置信区间确实非常小。

为了实现公平比较,您应该将标准误差缩放1 / sqrt(100),然后比较这些图。