[R语言]boxplot绘图经验总结

Python09

[R语言]boxplot绘图经验总结,第1张

这里,我们采用了stripchart函数以及RColorBrewer包来添加数据点并调整颜色。

注意,此时应当利用boxplot函数里面的内置参数names设置每个箱线图的特征名。并且将stripchart函数里面的数据用列表并起来。

这里,我们使用了dplyr包,将数据按照不同类别(1,2,3,4)来分成新的数据,并且,在boxplot函数里,不同于上述几种方式,其数据的给定是以公式的方式给出,形如“特征~类别,数据名”的样式。

箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法。它也可以粗略地看出数据是否具有有对称性,分布的离散程度等信息;特别适用于对几个样本的比较。

注:四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。

  第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

  第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

  第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

  第三四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)。

R语言中计算方法:

quantile函数直接计算四分位:

例如:data = c(1,2,3,4,5,6.2,7,8,9,10)

quantile(data)   #其结果如下

0%       25%       50%       75%       100%

1.00      3.25       5.60        7.75      10.00

其中0%:最小值;25%:第一四分位数Q1;50%:中位数;75%:第三四分位数;100%:最大值。

其计算方法为:

1. 排序,从小到大排列data;

2. 计算分位数的位置;pos = 1+ (n-1)*p,n为数据的总个数,p为0-1之间的值

3. 给出分位数

注意:另一种分位数的计算方法为:其他与前面的一致。但是分位数位置的计算采用:pos = (n+1)*p,n为数据的总个数,p为0-1之间的值。

四分位数的计算方法没有一个统计的标准,如果对此计算有要求的,需要注意函数的具体算法。

另外,boxplot中存在异常值,其规定标准如下:

当数据中的值大于或小于箱体的四分位距IQR的1.5倍时,认定为异常值。

就是说当某值大于(Q3+1.5*IQR)或小于(Q1-1.5*IQR)时,处理时会认定为异常值。

一、boxcox变换不是万能的,本质上还是幂变换。而在x^(lambda)中,lambda取不同值在直方图上的表现主要就是将x上的大值是往左还是往右拉的问题。(PS:你可以自己多试几个lambda)

二、kolmogorov smirnov检验统计量是比较经验分布函数与累计分布函数间的极大值,这里用这个检验也没什么问题。当然,样本量越大,经验分布的可靠性就越强一些。(PS:其实好多时候直接简单粗暴地画QQ图来看正态性...)

三、看你这个变换后的直方图更像二元的高斯混合a1*N(mu1,sigma1)+a2*N(mu2,sigma2),毕竟有两个明显的峰。