欢迎访问宙启技术站
智能推送

quantile()- 计算序列的分位数

发布时间:2023-05-30 11:43:45

介绍:

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的数值越小,结果就越接近于四分位数,反之则越接近于中位数。