R에서 Quartiles 찾기


33

R을 배우는 동안 통계 교과서를 통해 작업하고 있으며 다음 예제에서 걸림돌에 빠졌습니다.

여기에 이미지 설명을 입력하십시오

보고 ?quantile난 후에 다음과 같이 R에서 이것을 재현하려고 시도했습니다.

> nuclear <- c(7, 20, 16, 6, 58, 9, 20, 50, 23, 33, 8, 10, 15, 16, 104)
> quantile(nuclear)
   0%   25%   50%   75%  100% 
  6.0   9.5  16.0  28.0 104.0 

텍스트와 R의 결과가 서로 다르기 때문에 R이 1 사분 위와 3 사 분위수를 계산할 때 중간 값을 사용하고 있음을 모았습니다.

의문:

1 사분 위와 3 사 분위를 계산할 때 중간 값을 포함시켜야합니까?

보다 구체적으로, 교과서 또는 R에 이것이 올바른가? 교과서 에이가 올 바르면 R에서 올바르게 달성 할 수있는 방법이 있습니까?

미리 감사드립니다.

r  quantiles 

6
여기 몇 가지 스레드는 Quantile을 계산하거나 추정 할 수있는 많은 방법을 설명합니다. 다음은 권위있는 대답은 하나 , 그러나 다른 사람은 우리의 사이트를 검색하여 사용할 수 있습니다. 요컨대, 교과서는 비표준 사 분위 계산 방법을 제시하는 것으로 보이지만 quantile유형 1, 2 및 6 은이 특정 크기의 데이터 세트에 대해 이를 재생산합니다 . 교과서에 해당 하는 방법이 없습니다R . (이 텍스트의 품질에 대해 궁금해 ...)
whuber

@ whuber이 의견에 감사드립니다. 다른 유형의 작업을 정확하게 구분할 기술적 배경이 아직 없기 때문에 많은 도움이되었습니다 quantile.

@ whuber : 분명히 비표준 (아마도 책 어딘가에 언급되어 있음)이지만 직관적이지 않습니다. 수학적으로 잘못되었다고 생각하십니까?
Michael M

6
@Michael "사 분위수"를 원하는 것으로 정의 할 수 있으므로 수학적으로 잘못된 것은 없습니다. 이러한 정의 는 무의식적 으로 큰 대해 작동 한다는 것이 분명합니다 . 그러나 교과서에 새로운 정의를 도입하면 Chuck D.와 같은 사려 깊은 학생들은 소프트웨어, 출판물 또는 텍스트 이외의 다른 것에 동의하여 계산을 할 수 없다는 것을 알게됩니다.
whuber

1
R은 9 개의 다른 Quantile 정의를 사용합니다 (기본적으로 정의 7을 사용함). 참조?quantile
Glen_b-복지국 Monica

답변:


43

교과서가 혼란 스럽다. 사 분위수를 이런 식으로 정의하는 사람이나 소프트웨어는 거의 없습니다. (첫 번째 사 분위수를 너무 작게 만들고 세 번째 사 분위수를 너무 크게 만드는 경향이 있습니다.)

quantile함수는 Quantile을 계산 R하는 9 가지 방법을 구현합니다 ! 이 방법 중 어떤 것이이 방법에 해당하는지 알아 보려면 먼저이 방법을 구현해 보겠습니다. 설명에서 우리는 먼저 수학적으로 알고리즘을 작성할 수 있습니다 R.

  1. 데이터를 주문하십시오 .엑스1엑스2엑스

  2. 임의의 데이터 집합에 대해 중앙값 은 홀수의 값이있을 때 중간 값입니다. 그렇지 않으면 짝수의 값이있을 때 두 중간 값의 평균입니다. Rmedian함수가 이것을 계산합니다.

    중간 값의 인덱스는 입니다. 이 정수가 아닌 경우 평균이다 및 이다 내림 최대. 그렇지 않으면 이 정수이면 이 중앙값입니다. 이 경우 및 . 두 경우 모두 은 중앙값 바로 왼쪽의 데이터 값 인덱스 이고 는 중앙값 바로 오른쪽의 데이터 값 인덱스입니다.( x l + x u ) / 2 리터=(+1)/2(엑스+엑스)/2엑스=1=+1

  3. "첫 분위 '전체의 평균이다 하는 . 은 "제 분위"의 중간이다 하는 .엑스나는나는(엑스나는)나는

구현은 다음과 같습니다. 이 교재에서 연습을하는데 도움이 될 수 있습니다.

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


3
나 자신의 작업을 수행하고 다양한 방법을 평가할 수있는 도구를 제공하는 것과 같은 자세한 답변에 크게 감사드립니다. 나는 지금 그들을 발사하고 더 자세하게 살펴볼 것입니다.

2

통계 분야 (내가 가르치지 만 연구원은 아님)에서 사 분위수 계산은 특히 모호합니다 (더 이상 일반적으로 Quantile에는 해당되지 않는 방식으로). 이것은 표준 편차에 대한 점검 또는 대안으로 특이 치에 민감하지 않은 사 분위 간 범위 (IQR)의 사용 (및 남용)으로 인해 많은 역사를 가지고 있습니다. Q1과 Q3을 계산하는 세 가지 고유 한 방법이 공동 표준이되는 공개 콘테스트로 남아 있습니다.

종종 그렇듯이 Wikipedia 기사는 합리적인 요약을 가지고 있습니다 : https://en.m.wikipedia.org/wiki/Quartile 대부분의 기본 통계 텍스트와 마찬가지로 Larson 및 Farber 텍스트는 Wikipedia 기사에서 " 방법 1. " 위의 설명을 따르면 r은 "방법 3"을 사용합니다. 자신의 분야에서 정식으로 적합한 것을 스스로 결정해야합니다.


당신은 좋은 지적을합니다 (+1). 그러나 "방법 1"에 대한 참조는 TI-83 계산기 및 Excel (신뢰성 부족이 잘 알려져 있음)이며,이 방법은 명백하게 편향되어 있으며 Tukey의 경첩보다 더 계산하기 어렵지 않습니다. 사용을 정당화하거나 권장하기가 어렵습니다.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.