首页 > 解决方案 > R中的四分位变异系数

问题描述

我正在尝试计算每 3 次连续测量的 R 的四分位变异系数。

cqv_versatile(
    Q, 
    na.rm = TRUE, 
    digits = 3)
    Q
    49
    44
    34
    33
    37
    48
    20
    48
    37
    42
    44
    35
    40

有人知道如何计算cqv_versatile这个连续间隔吗?

标签: rvariationsquartile

解决方案


这是使用基数 R 的一种方法,将hst变量更改为所需的子长度(为了清楚起见,第一个系数是根据索引 1、2、3 的值估计的;第二个系数是根据索引为 4、5 的值估计的,6)

Q=as.numeric(read.table(text="49 44 34 33 37 48 20 48 37 42 44 35 40"))

hst=3

sapply(seq(1,length(Q),hst),function(x){
  tmp=x:(pmin(x+hst-1,length(Q)))
  q1=quantile(Q[tmp],0.25)
  q3=quantile(Q[tmp],0.75)
  as.numeric((q3-q1)/(q3+q1))
})

[1] 0.08771930 0.09677419 0.19718310 0.05521472 0.00000000

正如评论中提到的,你应该在估计系数时使用更多的数据。

如果您想根据滚动窗口进行估计,那么索引 1,2,3 -> 2,3,4 -> ... 只需替换seq(1,length(Q),hst)seq(1,length(Q),1).


推荐阅读