quantile()- 计算序列的分位数
介绍:
quantile()是一个很有用的函数,用来计算序列的分位数。分位数是将一个数据集合分成等份的数值点。常见的分位数有中位数,四分位数等。quantile()函数的返回值是一个数组,其中包含指定分位数的值。该函数在数据分析、统计学、金融和经济学等领域中广泛应用。
语法:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE, names = TRUE, type = 7)
参数解释:
x:要计算分布的数组。
probs:采用0至1之间的实数,通过此参数指定要计算的分位数,默认包括0,0.25,0.5,0.75,1五个点。
na.rm:可选参数,逻辑值默认为FALSE。指定为TRUE表示在计算前忽略丢失值NA,否则,NA将记为结果与 NA。
names:可选参数, 默认为TRUE, 如果指定,则返回的数组将带有类似1,2,3,4,5这样的名称。如果未指定,则返回的数组将不带有这些标签。
type:可选参数,决定计算分位数的方式,具体为哪几种平均数的计算方法。
例子:
假设我们有一个分数数据的向量,用quantile()函数来计算此向量的分位数。首先,创建向量并存储它们在一个名为score的变量中。
score <- c(30, 50, 70, 80, 90, 95, 99)
现在,可以使用quantile()函数来计算该向量的分位数。我们将要获取0.25、0.5和0.75的分位数。
quantile(x=score, probs=c(0.25,0.5,0.75))
结果:
25% 50% 75%
57.5 80.0 92.5
输出结果表明,我们的数据向量中的 个四分位数为57.5,代表25%的分数是低于57.5的;第二个中位数为80,代表50%的分数低于80;第三个四分位数为92.5,代表75%的分数低于92.5。
补充说明:
type参数常见的有多种取值,如type=1、type=2、type=3、type=4、type=5、type=6、type=7。
type=1时,是取平均数法。在这种情况下,事实上会变成求第k和第k+1个数据的平均值的中位数,其中第k个数据是第(n+1)p个观测值的序列数(向上取整取整),p是指定的分位点。
type=2是线性插补法。即在已知(k/2)和(n+1)p的位置上的两个观测值之间,通过线性插值得到p分位情况的样品值,同时,此处k-1 是一个非常特殊的情况。
type=3 进行单调线性插值。即上一个取值方式的另一种插值方式,若数据的分布是均匀的,此种方式会产生丫形或n形的分布。此方式下如果数据分布不均匀,计算上的话不是很方便。
type=4 类似于type=3,为实现反向简历一致性而设计。
type=5 反向加权平均数法。计算公式为:(1-p)*x[k]+p*x[k+1]。其中k=[(n+1)*p],p是指定的分位点,x[k]是第k个最小观测值,x[k+1]是紧接于x[k]之后的 个观测值。
type=6 进行相邻的两个数据的平均数插值。即在已知倒数第二名和倒数 名时,按均匀分布,可将排名为n的位置估计为ext(n)=(n-0.5)/N),此时可以使用线性插值得到p分位点上的样本值,计算公式为:x(n,p)=x(k,p)+ext(n)(x(k+1,p)-x(k,p))。如此可以得到一个非常平滑的估计线。
type=7 与type=5类似,多用于统计学中。计算公式为:x[k+(1-alpha)] + alpha*x[k+1-alpha]
总体来说,type的数值越小,结果就越接近于四分位数,反之则越接近于中位数。
