Menemukan Kuartil di R

33

Saya sedang mengerjakan buku teks statistik sambil belajar R dan saya mengalami batu sandungan pada contoh berikut:

masukkan deskripsi gambar di sini

Setelah melihat ?quantilesaya mencoba untuk membuat ulang ini di R dengan yang berikut:

> 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 

Mengingat bahwa teks dan R memiliki hasil yang berbeda, saya mengumpulkan bahwa R menggunakan median dalam perhitungan kuartil pertama dan ketiga.

Pertanyaan:

Haruskah saya memasukkan median dalam menghitung kuartil pertama dan ketiga?

Lebih khusus lagi, apakah buku teks atau R sudah benar? Jika buku teks ini sudah benar, apakah ada cara untuk mencapai ini dengan benar di R?

Terima kasih sebelumnya.


sumber
6
Beberapa utas di sini membahas banyak cara kuantil dapat dihitung atau diperkirakan. Ini adalah satu dengan jawaban resmi, tetapi yang lain tersedia dengan mencari di situs kami. Secara singkat, buku teks Anda tampaknya menyajikan metode kuartil komputasi yang tidak standar, tetapi quantiletipe 1, 2, dan 6 akan mereproduksi mereka untuk dataset dengan ukuran khusus ini . Tak satu pun dari Rmetode sesuai dengan buku Anda. (Orang bertanya-tanya tentang kualitas teks ini ...)
whuber
@whuber Terima kasih atas komentar ini, sangat membantu karena saya khawatir saya belum memiliki latar belakang teknis untuk membedakan secara tepat apa yang dilakukan berbagai tipe berbeda quantile.
@whuber: ini jelas tidak standar (yang mungkin disebutkan di suatu tempat di buku ini), tetapi tidak tidak intuitif. Apakah menurut Anda itu salah secara matematis?
Michael M
6
@Michael Anda dapat mendefinisikan "kuartil" untuk menjadi apa pun yang Anda suka, jadi tidak ada yang salah secara matematis. Jelas bahwa asimtotik definisi ini bekerja untuk besar . Tetapi memperkenalkan definisi baru ke dalam buku teks tidak merugikan siswa yang berpikir seperti Chuck D. yang memperhatikan bahwa mereka tidak dapat membuat perhitungan mereka setuju dengan perangkat lunak, publikasi, atau apa pun selain teks mereka. n
Whuber
1
R menggunakan sembilan definisi kuantil yang berbeda (secara default menggunakan definisi 7). Lihat?quantile
Glen_b -Reinstate Monica

Jawaban:

43

Buku teks Anda bingung. Sangat sedikit orang atau perangkat lunak yang mendefinisikan kuartil dengan cara ini. (Itu cenderung membuat kuartil pertama terlalu kecil dan kuartil ketiga terlalu besar.)

The quantilefungsi dalam Rmengimplementasikan sembilan cara yang berbeda untuk quantiles menghitung! Untuk melihat yang mana dari mereka, jika ada, yang sesuai dengan metode ini, mari kita mulai dengan mengimplementasikannya. Dari deskripsi kita dapat menulis suatu algoritma, pertama secara matematis dan kemudian di R:

  1. Pesan data .x1x2xn

  2. Untuk setiap set data median adalah nilai tengahnya ketika ada sejumlah nilai ganjil; jika tidak, ini adalah rata-rata dari dua nilai tengah ketika ada nilai genap. R's medianfungsi menghitung ini.

    Indeks nilai tengah adalah . Bila tidak integer, adalah median, di mana dan adalah dibulatkan ke bawah dan ke atas. Kalau tidak, ketika adalah bilangan bulat, adalah median. Dalam hal ini, ambil dan . Dalam kedua kasus, adalah indeks nilai data segera di sebelah kiri median dan adalah indeks nilai data segera di sebelah kanan median.( x l + x u ) / 2 l u m m x m l = m - 1 u = m + 1 l um=(n+1)/2(xl+xu)/2lummxml=m1u=m+1lu

  3. "Kuartil pertama" adalah median dari semua yang . "Kuartil ketiga" adalah median dari yang . i l ( x i ) i uxiil(xi)iu

Berikut ini adalah implementasinya. Ini dapat membantu Anda melakukan latihan Anda di buku pelajaran ini.

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]))
}

Misalnya, output quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))setuju dengan teks:

Q1 Q3 
 9 33 

Mari kita hitung kuartil untuk beberapa dataset kecil menggunakan semua sepuluh metode: sembilan di Rdan buku teks:

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)
}

Ketika Anda menjalankan ini dan cek, Anda akan menemukan bahwa nilai-nilai buku tidak setuju dengan salah satu Routput untuk semua tiga ukuran sampel. (Pola ketidaksepakatan berlanjut dalam siklus periode tiga, menunjukkan bahwa masalah tetap ada, tidak peduli seberapa besar sampel itu.)

Buku teks itu mungkin telah salah mengartikan metode komputasi "engsel" John Tukey (alias "perempat"). Perbedaannya adalah bahwa ketika memisahkan dataset di sekitar median, ia memasukkan median di kedua bagian. Itu akan menghasilkan dan untuk dataset contoh.289.528

whuber
sumber
3
Terima kasih banyak atas jawaban yang begitu mendetail dan memberi saya alat untuk mengerjakan sendiri dan mengevaluasi metode yang berbeda. Saya akan memecat mereka sekarang dan membahas hal-hal lebih detail.
2

Dalam bidang statistik (yang saya ajarkan, tetapi di mana saya bukan seorang peneliti), perhitungan kuartil khususnya ambigu (dengan cara yang tidak selalu berlaku untuk kuantil, lebih umum). Ini memiliki banyak sejarah di belakangnya, sebagian karena penggunaan (dan mungkin penyalahgunaan) rentang antar-kuartil (IQR), yang tidak sensitif terhadap pencilan, sebagai pengecekan atau alternatif untuk standar deviasi. Ini tetap merupakan kontes terbuka, dengan tiga metode berbeda untuk menghitung Q1 dan Q3 menjadi ko-kanonik.

Seperti yang sering terjadi, artikel Wikipedia memiliki ringkasan yang masuk akal: https://en.m.wikipedia.org/wiki/Quartile Teks Larson dan Farber, seperti kebanyakan teks statistik dasar, menggunakan apa yang dijelaskan dalam artikel Wikipedia sebagai " Metode 1. " Jika saya mengikuti deskripsi di atas, r menggunakan "Metode 3". Anda harus memutuskan sendiri mana yang sesuai secara kanonik di bidang Anda sendiri.

James Klock
sumber
Anda mendapat poin bagus (+1). Tetapi mengingat bahwa referensi untuk "Metode 1" adalah kalkulator TI-83 dan Excel (yang kurang dikenal kredibilitasnya), bahwa metode ini terbukti bias, dan bahwa tidak lebih sulit untuk dihitung daripada engsel Tukey, itu akan tampaknya sulit untuk dibenarkan atau merekomendasikan penggunaannya.
whuber