vlambda博客
学习文章列表

R语言入门之偏度(skewness)与峰度(kurtosis)

偏度(Skewness)与 峰度(Kurtosis)


第一部分:偏度(Skewness)


偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。在定义上,偏度是样本的三阶标准化矩:



偏度定义中包括右偏分布(也叫正偏分布,其偏度>0),正态分布(偏度=0),左偏分布(也叫负偏分布,其偏度<0),如下图所示:

 

R语言入门之偏度(skewness)与峰度(kurtosis)



R语言入门之偏度(skewness)与峰度(kurtosis)


R语言入门之偏度(skewness)与峰度(kurtosis)


用R语言基本函数可以实现:


d <- c(1,2,3,5) #将a去除NA值mean(((d-mean(d))/sd(d))^3) #计算偏度,结果和psych包的计算一致,是正偏态分布[1] 0.2823139describe.by(d)


R语言入门之偏度(skewness)与峰度(kurtosis)


e <- rnorm(500) #生成500个标准正态分布的随机数mean(((e-mean(e))/sd(e))^3)[1] -0.1323446describe.by(e)


R语言入门之偏度(skewness)与峰度(kurtosis)



第二部分:峰度(Kurtosis)


峰度(kurtosis),表征概率密度分布曲线在平均值处峰值高低的特征数。直观看来,峰度反映了峰部的尖度,计算方法为随机变量的四阶中心矩与方差平方的比值。公式上就是把偏度计算公式里的幂次改为4即可。峰度包括正态分布(峰度值=3),厚尾(峰度值>3),瘦尾(峰度值<3)。当然在pshcy包里是将计算出来的峰度减去3后输出,这样便可以直接通过正负来判断峰度了。


R语言入门之偏度(skewness)与峰度(kurtosis)


R语言基本代码实现如下:


mean(((d-mean(d))/sd(d))^4) [1] 1.038214mean(((d-mean(d))/sd(d))^4)-3 # 将结果减去3,变成和psych计算结果一致[1] -1.961786describe.by(d)



mean(((e-mean(e))/sd(e))^4)-3 # 将结果减去3,变成和psych计算结果一致[1] 0.05919889describe.by(e)



这一期的内容就分享到这里了,如果对偏度和峰度仍有不理解的朋友欢迎在后台留言!