seaborn violinplots 中的内部箱线图不准确
Inner boxplots in seaborn violinplots not accurate
我在生成 seaborn violinplots 时获得的内部箱线图(通过 inner='box' 的规范)对于我的实际数据并不准确。请参见下面的示例图。实际数据延伸到细尾的尖端。但是箱线图在小提琴区域内结束得很好。
假设这些箱线图应该代表四分位数,而不是标准偏差或其他东西,那么它们是不准确的。
我调用 seaborn violinplot 的代码如下。如您所见,我设置了选项 cut=0,这应该意味着小提琴图的尾部完全没有超出我的极端数据,事实上,从检查中我可以看出小提琴图的范围是在正确的地方。但我也可以从检查中看到内部箱线图甚至不接近正确。
sns.violinplot(x='Policy', y='LMP', order=cat_order, data=df, inner='box', scale='area', bw=0.2, cut=0, linewidth=0.5, ax = axes)
有人了解 seaborn 在这里做什么吗?他们是否决定(仅出于箱线图的目的)我的某些数据是异常值,并将它们排除在外?关于如何控制它有什么想法吗?
好的,我找到了我自己问题的答案。虽然我习惯于基于严格四分位数的箱线图,但 Seaborn 使用另一种(显然很常见)方法,其中箱线图上的箱子尖端仅延伸到 "interquartile range" 或 IQR 的 1.5 倍。
有关 Seaborn 箱线图的信息,请参见此处:
http://seaborn.pydata.org/tutorial/categorical.html#distributions-of-observations-within-categories
请参阅此处了解 IQR 的定义:
http://stattrek.com/statistics/dictionary.aspx?definition=Interquartile%20range
我在生成 seaborn violinplots 时获得的内部箱线图(通过 inner='box' 的规范)对于我的实际数据并不准确。请参见下面的示例图。实际数据延伸到细尾的尖端。但是箱线图在小提琴区域内结束得很好。
假设这些箱线图应该代表四分位数,而不是标准偏差或其他东西,那么它们是不准确的。
我调用 seaborn violinplot 的代码如下。如您所见,我设置了选项 cut=0,这应该意味着小提琴图的尾部完全没有超出我的极端数据,事实上,从检查中我可以看出小提琴图的范围是在正确的地方。但我也可以从检查中看到内部箱线图甚至不接近正确。
sns.violinplot(x='Policy', y='LMP', order=cat_order, data=df, inner='box', scale='area', bw=0.2, cut=0, linewidth=0.5, ax = axes)
有人了解 seaborn 在这里做什么吗?他们是否决定(仅出于箱线图的目的)我的某些数据是异常值,并将它们排除在外?关于如何控制它有什么想法吗?
好的,我找到了我自己问题的答案。虽然我习惯于基于严格四分位数的箱线图,但 Seaborn 使用另一种(显然很常见)方法,其中箱线图上的箱子尖端仅延伸到 "interquartile range" 或 IQR 的 1.5 倍。
有关 Seaborn 箱线图的信息,请参见此处: http://seaborn.pydata.org/tutorial/categorical.html#distributions-of-observations-within-categories
请参阅此处了解 IQR 的定义: http://stattrek.com/statistics/dictionary.aspx?definition=Interquartile%20range