※ 引述《yeuan (心要够坚定)》之铭言:
: [问题类型]:
: 一组数列 用R计算跟手算的不同
: [软件熟悉度]:
: 新手(刚开始摸索)
: [问题叙述]:
: 一组数列:-10,-6,-2,2,6,10 计算Q1与Q3
: Q1=0.25*6=1.5 →1.5不是整数 故找比1.5大的下一个整数为2
: 所以Q1应该为-6 以此类推Q3应该为6
: 但是R算出来Q1=-5 Q3=5
: 请问我有哪边弄错了吗@@ 不太明白为什么会不一样
: [程式范例]:
: y=c(-10,-6,-2,2,6,10)
: quantile(y,probs=c(0.25,0.75))
According to R manual (部分节录)
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
names = TRUE, type = 7, ...)
where type is an integer between 1 and 9 selecting one of the nine quantile
algorithms detailed below to be used.
For types 1, 2 and 3, quantile of type i at quantile p is a discontinuous
function of p. For types 4 through 9, it is a continuous function of p.
For R >= 2.0.0, the default type is 7.
接着实作type 7给你看
type 7: 利用内插找sample quantile,因此你要先决定每一个x是对应在哪
根据manual提供的公式,第k个x对应的p为 p[k] = (k - 1) / (n - 1)
f = function(k, n) (k-1) / (n-1)
f(1:6, 6)
# [1] 0.0 0.2 0.4 0.6 0.8 1.0
因此,当有6个sample时,分别对应到,0, 0.2,... , 1.0
你所求的0.25就是用x的第二个跟第三个资料做内插
假设所求是xx,0.25的quantile,资料同你的,是-10, -6, -2, 2, 6, 10
-2 - (-6) xx - (-6)