绘制清晰的图表以显示偏度和峰度

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)确定样本数据是否具有与正态分布匹配的偏度和峰度(假设检验)

数据的偏度和峰度——df.skew()df.kurt()

在 stargazer 中计算偏度和峰度

偏度和峰度的计算

应用统计学分布的偏度和峰度

应用统计学分布的偏度和峰度