2017-03-07 3 views
1

다음 코드에서 각 백분율 (1-25)이 4 개의 다른 백분위 값 아래에 4 회 나타납니다. 그러나 백분위 수 28과 56에서는 예상대로 결과가 나오지 않습니다. 28 백분위 7되어야 우리는 다른 크기의 벡터를 사용하는 경우 56 번째 백분위 수는 동일 (및 그 이상)의 백분위 수 값은 정확하지 않을 것이다 (14)quantile 함수의 예기치 않은 출력

> 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

을 보는 것이 더 간단 할 수 있습니다. 첫 번째 결과에 5 번 나타나지 않습니까? – Elin

답변

0

약간 다른 대답을 줄 수있는 quantile을 계산하는 다른 방법이 있습니다. 유형 1 또는 유형 4를 사용 중입니다.

자세한 내용은 ?quantile을 참조하십시오.

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

+0

그들은 저에게 정답을주지 않는 것 같습니다. 유형 3은 유형 1과 같고 유형 2는'quantile (1 : 5, seq (0,1,0.05), 유형 = 3)을 보간합니다. ' –

+0

내가 보는 것은 유형 3과 4가 동일한 결과를 제공한다는 것입니다 첫 번째 예는 참조하십시오 : quantile (1:25, seq (0,1,0.01), type = 3) – panterasBox

+0

내 시스템의 출력으로 편집 된 응답. 아마도 플랫폼에 따라 다릅니다. – neilfws

1

나는 당신이 대답이 말하는 잘못된 생각 "정확하지." 이것은 ECDF를 기반으로한다는 것을 의미합니다. 이론적 인 결과가 아니라 경험적 결과라는 의미이며, 9 가지 방법은 경험적 결과를 사용할 수 없을 때 수행해야 할 작업에 대한 것입니다. 그러나 보간을 위해 몇 가지 방법을 사용해야합니다. 우리 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 %를 나타내고, 우리가 종래의 누적 분포가 1 내지 25의 정수를 가지고 계산하는 경우 제 1 예를 사용. 28과 56은 공통점이 무엇입니까? 그것들은 모두 4의 배수이며, 값을위한 "quantile range"의 하위 경계를 나타내는 유일한 두 곳입니다. 그래서 그들은 밀려 나옵니다. 나는 타입 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

나는 이들이 quantile 범위의 낮은 경계를 나타내는 유일한 곳이라는 말을 이해하지 못합니다. 4의 배수 인 모든 백분위 수가 분수 범위의 하한을 나타내지는 않습니까? – panterasBox

+0

때로는 중간이나 위쪽에있을 수 없습니다. 예를 들어 4, 8 및 12를보십시오. – Elin