绘制清晰的图表以显示偏度和峰度
Posted
技术标签:
【中文标题】绘制清晰的图表以显示偏度和峰度【英文标题】:plot a clear graph to show the skewness and kurtosis 【发布时间】:2017-02-16 09:54:49 【问题描述】:我试图了解数值变量的偏度和峰度,以了解数据的形状。
我首先用这样的偏度命令计算:
skewness(data$responsetime)
[1] 26.56731
还有峰度:
kurtosis(data$responsetime)
[1] 3723.961
偏度为正,因此尾部应向右移动,峰度 >= 3。
现在我想用一个图来确认偏度和峰度。我尝试这样:
plot(density(data$responsetime)
)
我得到了一个像下面这样的情节,很难得出一些结论。我是 R 新手,我试图让这个图表更清晰,比如调整 x 大小或其他东西,但我没有找到执行此操作的命令。 oyu 知道怎么做吗?
使用直方图,如下所示:
hist(data$responsetime,breaks=100)
我也得到了一个难以理解的图表:
有了 plot(data$responsetime, xlim=c(0, 20000)) 我明白了:
with: plot(density(data$responsetime), xlim=c(0, 20000))
我得到下面的图表。但我不明白,在 x 轴上我有响应时间。 max(data$responsetime)的响应时间最大值为320000,那么tail如何在18000附近停止?
【问题讨论】:
尝试使用 break 参数的直方图函数。查看 ?hist 感谢您的提示,但我也得到了一个奇怪的图表。plot(density(data$responsetime), xlim=c(0, 20000))
或 plot(density(data$responsetime), log = "x")
? (我的表情可能不好)。
【参考方案1】:
关于 hist() 函数:
hist(data$responsetime, breaks='FD')
我发现“breaks='FD'”通常会在直方图中返回足够的断点来解决这个问题。另外,从图中看起来你确实有一条很长的尾巴。
侧边栏: 如果您的数据偏斜,您可以考虑在使用它们之前转换数据。
【讨论】:
【参考方案2】:将 qqnorm 与 qqline 一起使用 - 可以非常清楚地显示偏度和峰度。
代码:
qqnorm(数据$响应时间)
qqline(data$responsetime)
右斜通常呈现凸面外观,左斜通常呈凹面。过度峰度 0 时,通常一个或两个尾部比 qqline 预测的更极端(远离水平中线)。
您应该在数据的 qq 图中看到一个凹形外观,右尾远高于 qq 线。这表明您的分布产生的异常值大大超过了右尾正态分布所预测的值。
峰度测量异常值,而不是分布的峰值。在将峰度统计数据与直方图相关联时,这可能是一些人混淆的根源。
理解为什么峰度测量异常值(不是峰值)的逻辑很简单:大 |Z| 值表示异常值。峰度是 Z^4 值的平均值。因此,接近零(峰值所在的位置)的 |Z| 值实际上对峰度统计量没有任何贡献,因此峰度统计量对峰值没有信息。当峰值很尖时,您可能会有高峰度,而当峰值平坦时,您可能会有高峰度。这完全取决于异常值的处理方式。
【讨论】:
How do I format my posts using Markdown or html?以上是关于绘制清晰的图表以显示偏度和峰度的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用moments包计算偏度(Skewness)和峰度(Kurtosis)实战:计算偏度(Skewness)和峰度(Kurtosis)确定样本数据是否具有与正态分布匹配的偏度和峰度(假设检验)