2017-03-07 68 views
1

對於下面的代碼,我期望看到每個數字(1-25)在4個不同百分位數值下出現4次。然而,在百分點28和56,結果並不如預期。第28百分位數應爲7和第56百分位數應爲14來自分位數函數的意外輸出

> quantile(1:25, seq(0,1,0.01), type=1) 
    0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21% 22% 23% 24% 25% 26% 27% 28% 
    1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 8 
29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43% 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54% 55% 56% 57% 
    8 8 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 14 14 14 15 15 
58% 59% 60% 61% 62% 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 
    15 15 15 16 16 16 16 17 17 17 17 18 18 18 18 19 19 19 19 20 20 20 20 21 21 21 21 22 22 
87% 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98% 99% 100% 
    22 22 23 23 23 23 24 24 24 24 25 25 25 25 

如果我們使用不同大小的矢量,是相同的(和更多)百分比值將不正確。

另一個例子,其中7日,14日,28日,第55和56百分位值是錯誤的:

> quantile(1:100, seq(0,1,0.01), type=1) 
    0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21% 22% 23% 24% 25% 26% 27% 28% 
    1 1 2 3 4 5 6 8 8 9 10 11 12 13 15 15 16 17 18 19 20 21 22 23 24 25 26 27 29 
29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43% 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54% 55% 56% 57% 
    29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 
58% 59% 60% 61% 62% 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 
    58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 
87% 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98% 99% 100% 
    87 88 89 90 91 92 93 94 95 96 97 98 99 100 

,這是什麼原因呢?這是一個錯誤?

+0

這可能更容易看到'quantile(1:5,seq(0,1,0.05),type = 1)' –

+0

在你的第一個結果中不是1出現5次? – Elin

回答

0

有不同的計算分位數的方法可以給出略微不同的答案。您正在使用類型1.類型3或4提供您所期望的答案。

查看?quantile瞭解詳情。

quantile(1:25, seq(0, 1, 0.01), type = 4)[29] 28% 7

+0

他們似乎沒有給我正確的答案。類型3與類型1相同,並且類型2插入'分位數(1:5,seq(0,1,0.05),類型= 3)' –

+0

我看到的是類型3和4提供了相同的結果第一個例子。看到這個:分位數(1:25,seq(0,1,0.01),type = 3) – panterasBox

+0

編輯答案與我的系統輸出。也許它是平臺依賴的。 – neilfws

1

,我認爲你是錯的說,答案是「不正確的。」請記住,這是基於ECDF,這意味着它是一個經驗性的結果,而不是理論性的結果,而9種不同的方法只是當實證結果不能使用但是您需要使用某種方法進行插值時要做什麼。使用第一個例子,如果我們取從1到25整數和計算的常規累積分佈我們GE

Values Freq Percent Cum. Percent 
1  1 4  4   
2  1 4  8   
3  1 4  12   
4  1 4  16   
5  1 4  20   
6  1 4  24   
7  1 4  28   
8  1 4  32   
9  1 4  36   
10  1 4  40   
11  1 4  44   
12  1 4  48   
13  1 4  52   
14  1 4  56   
15  1 4  60   
16  1 4  64   
17  1 4  68   
18  1 4  72   
19  1 4  76   
20  1 4  80   
21  1 4  84   
22  1 4  88   
23  1 4  92   
24  1 4  96   
25  1 4  100 

因此,每個觀測值代表你的樣品的4%。 28和56有什麼共同之處?它們都是4的倍數,它們是唯一兩個代表「分位數範圍」的下限的值。所以他們被推高。我認爲類型2實際上最能說明這一點。

a<-quantile(y, seq(0,1,0.01), type=1) 
b<-quantile(y, seq(0,1,0.01), type=2) 
c<-quantile(y, seq(0,1,0.01), type=3) 
quantiles<-data.frame(a,b,c) 
quantiles[1:30,] 

     a b c 
0% 1 1.0 1 
1% 1 1.0 1 
2% 1 1.0 1 
3% 1 1.0 1 
4% 1 1.5 1 
5% 2 2.0 1 
6% 2 2.0 2 
7% 2 2.0 2 
8% 2 2.5 2 
9% 3 3.0 2 
10% 3 3.0 2 
11% 3 3.0 3 
12% 3 3.5 3 
13% 4 4.0 3 
14% 4 4.0 4 
15% 4 4.0 4 
16% 4 4.5 4 
17% 5 5.0 4 
18% 5 5.0 4 
19% 5 5.0 5 
20% 5 5.5 5 
21% 6 6.0 5 
22% 6 6.0 6 
23% 6 6.0 6 
24% 6 6.5 6 
25% 7 7.0 6 
26% 7 7.0 6 
27% 7 7.0 7 
28% 8 8.0 7 
29% 8 8.0 7 
30% 8 8.0 8 
31% 8 8.0 8 
32% 8 8.5 8 
33% 9 9.0 8 

類型3出現在不同的行星與奇數/偶數的事情。

+0

我不明白你的意思,說這些是他們代表分位範圍下限的唯一地方。是不是每個4的倍數代表分位範圍的下限? – panterasBox

+0

有時他們不在中間或頂部。以4,8和12爲例。 – Elin