2017-10-26 13 views
1

quantreg 패키지를 사용하여 quantiles 및 해당 신뢰 구간을 예측합니다. 예측 된 분위수가 quantile()을 사용하여 데이터에서 직접 계산 된 분위수와 다른 이유를 이해할 수 없습니다.R quantit 모델은 quantiles를 재생하지 않습니다. 이유가 무엇입니까?

library(tidyverse) 
library(quantreg) 

data <- tibble(data=runif(10)*10) 
qr1 <- rq(formula=data ~ 1, tau=0.9, data=data) # quantile regression 
yqr1<- predict(qr1, newdata=tibble(data=c(1)), interval='confidence', level=0.95, se='boot') # predict quantile 
q90 <- quantile(data$data, 0.9) # quantile of sample 

> yqr1 
     fit lower higher 
1 6.999223 3.815588 10.18286 
> q90 
    90% 
7.270891 

답변

1

당신은 만 10 항목 데이터 세트의 90 번째 백분위 수를 예측 정말이 개 가장 높은 값만을 기반으로 실현해야한다. 용어의 정의가 여러 개인 quantile에 대한 도움말 페이지를 검토해야합니다.

yqr1<- predict(qr1, newdata=tibble(data=c(1))) 
yqr1 
     1 
8.525812 

을 그리고이 데이터를 볼 때 나는 다음을 참조하십시오 :

내가 이것을 실행하면, 내가 볼

data 
# A tibble: 10 x 1 
     data 
     <dbl> 
1 8.52581158 
2 7.73959380 
3 4.53000680 
4 0.03431813 
5 2.13842058 
6 5.60713159 
7 6.17525537 
8 8.76262959 
9 5.30750304 
10 4.61817190 

그래서 rq 기능이 90 퍼센트로 두 번째로 높은 값을 추정한다 , 이것은 매우 합리적인 것처럼 보입니다. quantile 결과는 실제로 다음과 같이 예측되지 않습니다.

quantile(data$data, .9) 
#  90% 
#8.549493 
?quantile 
+0

우수. 나는'quantile()'이'type' 인자를 가지고 있다는 것을 잊었습니다. 'type = 1'을 설정할 때 두 가지 방법 모두에서 동일한 대답을 얻습니다. 이는 제 목적에 충분합니다. –