与 seaborn 中的标准偏差相比的置信区间
confidence intervals compared with standard deviation in 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 可以绘制更接近标准偏差等简单指标的误差条吗?
在底部图中,显示了 x 和 y 的标准误差,它们比 seaborn 的 x 和 y 置信区间(在顶部图中)大得多。
让我之前在下面的回答更精确, 因为均匀随机变量的标准差是 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),然后比较绘图。
当我在 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 可以绘制更接近标准偏差等简单指标的误差条吗?
在底部图中,显示了 x 和 y 的标准误差,它们比 seaborn 的 x 和 y 置信区间(在顶部图中)大得多。
让我之前在下面的回答更精确, 因为均匀随机变量的标准差是 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),然后比较绘图。