교과서가 혼란 스럽다. 사 분위수를 이런 식으로 정의하는 사람이나 소프트웨어는 거의 없습니다. (첫 번째 사 분위수를 너무 작게 만들고 세 번째 사 분위수를 너무 크게 만드는 경향이 있습니다.)
의 quantile
함수는 Quantile을 계산 R
하는 9 가지 방법을 구현합니다 ! 이 방법 중 어떤 것이이 방법에 해당하는지 알아 보려면 먼저이 방법을 구현해 보겠습니다. 설명에서 우리는 먼저 수학적으로 알고리즘을 작성할 수 있습니다 R
.
데이터를 주문하십시오 .엑스1≤ x2≤ ⋯ ≤ x엔
임의의 데이터 집합에 대해 중앙값 은 홀수의 값이있을 때 중간 값입니다. 그렇지 않으면 짝수의 값이있을 때 두 중간 값의 평균입니다. R
의 median
함수가 이것을 계산합니다.
중간 값의 인덱스는 입니다. 이 정수가 아닌 경우 평균이다 및 이다 내림 최대. 그렇지 않으면 이 정수이면 이 중앙값입니다. 이 경우 및 . 두 경우 모두 은 중앙값 바로 왼쪽의 데이터 값 인덱스 이고 는 중앙값 바로 오른쪽의 데이터 값 인덱스입니다.( x l + x u ) / 2 리터m = ( n + 1 ) / 2( x엘+ x유) / 2엘유엠엠엑스엠l = m - 1u = m + 1엘유
"첫 분위 '전체의 평균이다 하는 . 은 "제 분위"의 중간이다 하는 .엑스나는나는 ≤ l( x나는)나는 ≥ u
구현은 다음과 같습니다. 이 교재에서 연습을하는데 도움이 될 수 있습니다.
quart <- function(x) {
x <- sort(x)
n <- length(x)
m <- (n+1)/2
if (floor(m) != m) {
l <- m-1/2; u <- m+1/2
} else {
l <- m-1; u <- m+1
}
c(Q1=median(x[1:l]), Q3=median(x[u:n]))
}
예를 들어의 출력은 quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))
다음 텍스트와 일치합니다.
Q1 Q3
9 33
열 가지 방법 모두를 사용하여 일부 작은 데이터 집합에 대한 사 분위수를 계산해 보겠습니다 R
.
y <- matrix(NA, 2, 10)
rownames(y) <- c("Q1", "Q3")
colnames(y) <- c(1:9, "Quart")
for (n in 3:5) {
j <- 1
for (i in 1:9) {
y[, i] <- quantile(1:n, probs=c(1/4, 3/4), type=i)
}
y[, 10] <- quart(1:n)
cat("\n", n, ":\n")
print(y, digits=2)
}
당신이 이것을 실행하고 검사 할 때, 당신은 발견 할 것이다 교과서 값이 동의하지 않는 임의 의 R
세 가지 샘플 크기 출력. (불일치 패턴은 3주기마다 계속되며, 샘플 크기에 상관없이 문제가 지속됨을 나타냅니다.)
교과서는 John Tukey의 "경첩"(일명 "네번째") 계산 방법을 잘못 해석했을 수 있습니다. 차이점은 중앙값을 중심으로 데이터 세트를 분할 할 때 중앙값을 양쪽 절반에 포함한다는 것입니다. 예제 데이터 세트에 대해 및 이 생성 됩니다.9.528
quantile
유형 1, 2 및 6 은이 특정 크기의 데이터 세트에 대해 이를 재생산합니다 . 교과서에 해당 하는 방법이 없습니다R
. (이 텍스트의 품질에 대해 궁금해 ...)