การค้นหาควอไทล์ใน R


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 ใช้ประโยชน์จากค่ามัธยฐานในการคำนวณควอไทล์อันดับที่หนึ่งและสาม

คำถาม:

ฉันควรจะรวมค่ามัธยฐานในการคำนวณควอไทล์ที่หนึ่งและสามหรือไม่?

โดยเฉพาะตำราหรือ R มีความถูกต้องหรือไม่? หากหนังสือเรียนนั้นถูกต้องมีวิธีใดบ้างที่จะบรรลุถึงสิ่งนี้ใน R

ขอบคุณล่วงหน้า.

r  quantiles 

6
สองสามกระทู้ในที่นี้จะพูดคุยถึงวิธีการคำนวณหรือประมาณปริมาณที่สามารถทำได้หลายวิธี นี่คือข้อหนึ่งที่มีคำตอบที่เชื่อถือได้แต่คนอื่น ๆ สามารถหาได้โดยการค้นหาเว็บไซต์ของเรา โดยสังเขปตำราเรียนของคุณจะแสดงวิธีการที่ไม่ได้มาตรฐานในการคำนวณควอไทล์ แต่quantileประเภท 1, 2 และ 6 จะทำซ้ำสำหรับชุดข้อมูลที่มีขนาดเฉพาะนี้ ไม่มีของRวิธีการที่สอดคล้องกับตำราเรียนของคุณ (หนึ่งสงสัยเกี่ยวกับคุณภาพของข้อความนี้ ... )
whuber

@whuber ขอบคุณสำหรับความคิดเห็นนี้มันช่วยได้มากเพราะฉันกลัวว่าฉันยังไม่มีพื้นฐานด้านเทคนิคที่จะแยกแยะสิ่งที่แตกต่างกันquantileอย่างชัดเจน

@whuber: เห็นได้ชัดว่าไม่ได้มาตรฐาน (ซึ่งอาจกล่าวถึงบางแห่งในหนังสือ) แต่ไม่ได้ใช้งานง่าย คุณคิดว่ามันผิดทางคณิตศาสตร์หรือไม่?
Michael M

6
@Michael คุณสามารถกำหนด "ควอไทล์" ให้เป็นอะไรก็ได้ที่คุณต้องการดังนั้นจึงไม่มีอะไรผิดปกติทางคณิตศาสตร์ เป็นที่ชัดเจนว่าasymptoticallyคำนิยามเหล่านี้ทำงานให้มีขนาดใหญ่nแต่การแนะนำคำนิยามนวนิยายลงในตำราเรียนนั้นเป็นการก่อความเสียหายให้กับนักเรียนที่มีน้ำใจเช่น Chuck D. ซึ่งสังเกตเห็นว่าพวกเขาไม่สามารถคำนวณเพื่อเห็นด้วยกับซอฟต์แวร์สิ่งพิมพ์หรือสิ่งอื่นใดนอกจากข้อความของพวกเขา n
whuber

1
R ใช้คำจำกัดความที่แตกต่างกันเก้าของปริมาณ (โดยค่าเริ่มต้นจะใช้คำจำกัดความ 7) ดู?quantile
Glen_b

คำตอบ:


43

ตำราเรียนของคุณสับสน คนน้อยมากหรือซอฟต์แวร์กำหนดควอไทล์ด้วยวิธีนี้ (มันมีแนวโน้มที่จะทำให้ควอไทล์แรกมีขนาดเล็กเกินไปและควอไทล์ที่สามมีขนาดใหญ่เกินไป)

quantileฟังก์ชั่นในRการดำเนินเก้าวิธีต่างๆในการคำนวณ quantiles! หากต้องการดูว่ามีวิธีใดบ้างที่สอดคล้องกับวิธีนี้เรามาเริ่มต้นด้วยการนำไปใช้ จากคำอธิบายที่เราสามารถเขียนอัลกอริทึมแรกทางคณิตศาสตร์แล้วในR:

  1. สั่งซื้อข้อมูลx_nx1x2xn

  2. สำหรับชุดข้อมูลใด ๆ ค่ามัธยฐานคือค่ากลางเมื่อมีค่าจำนวนคี่ มิฉะนั้นจะเป็นค่าเฉลี่ยของค่ากลางสองค่าเมื่อมีค่าเป็นเลขคู่ Rของmedianฟังก์ชั่นคำนวณนี้

    ดัชนีของค่ากลางคือ 2 เมื่อไม่ใช่จำนวนเต็มคือค่ามัธยฐานโดยที่และเป็นปัดเศษลงและขึ้น มิฉะนั้นเมื่อเป็นจำนวนเต็มคือค่ามัธยฐาน ในกรณีที่ใช้เวลาและ 1 ไม่ว่าในกรณีใดคือดัชนีของค่าข้อมูลทางด้านซ้ายของค่ามัธยฐานและคือดัชนีของค่าข้อมูลทันทีทางด้านขวาของค่ามัธยฐาน( x l + x u ) / 2 l u m m x m l = m - 1 u = m + 1 l uม.=(n+1)/2(xล.+xยู)/2ล.ยูม.ม.xม.ล.=ม.-1ยู=ม.+1ล.ยู

  3. "การควอไทล์ครั้งแรก" เป็นค่าเฉลี่ยของทุกที่ลิตร "การที่สามควอไทล์" เป็นค่ามัธยฐานของที่ยู i l ( x i ) i uxผมผมล.(xผม)ผมยู

นี่คือการดำเนินการ มันสามารถช่วยคุณออกกำลังกายในหนังสือเรียนเล่มนี้

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การส่งออกทั้งสามขนาดตัวอย่าง (รูปแบบของความขัดแย้งยังคงดำเนินต่อไปในรอบระยะเวลาสามแสดงว่าปัญหายังคงมีอยู่ไม่ว่าตัวอย่างจะมีขนาดใหญ่เพียงใด)

หนังสือเรียนอาจมีวิธีการคำนวณที่ผิดพลาดของ John Tukey ในการคำนวณ "บานพับ" (aka "Fourths") ความแตกต่างคือเมื่อแบ่งชุดข้อมูลรอบมัธยฐานเขาจะรวมค่ามัธยฐานในครึ่งทั้งสอง นั่นจะสร้างและสำหรับชุดข้อมูลตัวอย่าง289.528


3
ขอบคุณมากสำหรับคำตอบอย่างละเอียดพร้อมกับมอบเครื่องมือในการทำงานด้วยตนเองและประเมินวิธีการที่แตกต่างกัน ฉันจะยิงพวกเขาตอนนี้และทำสิ่งต่างๆให้ละเอียดยิ่งขึ้น

2

ภายในสาขาสถิติ (ซึ่งฉันสอน แต่ที่ฉันไม่ใช่นักวิจัย) การคำนวณควอไทล์นั้นมีความคลุมเครือเป็นพิเศษ (ในลักษณะที่ไม่จำเป็นต้องเป็นจริงของควอนไทล์โดยทั่วไป) สิ่งนี้มีประวัติมากมายเบื้องหลังส่วนหนึ่งเป็นเพราะการใช้ (และอาจเป็นการละเมิด) ของช่วง inter-quartile (IQR) ซึ่งไม่สำคัญต่อค่าผิดปกติเนื่องจากเป็นการตรวจสอบหรือทางเลือกในการเบี่ยงเบนมาตรฐาน มันยังคงเป็นการแข่งขันแบบเปิดที่มีสามวิธีที่แตกต่างสำหรับการคำนวณไตรมาสที่ 1 และไตรมาสที่ 3 ซึ่งเป็นแบบมาตรฐาน

บทความ Wikipedia มีข้อสรุปที่สมเหตุสมผลเช่น https://en.m.wikipedia.org/wiki/Quartile ข้อความ The Larson และ Farber เช่นข้อความสถิติเบื้องต้นส่วนใหญ่ใช้สิ่งที่อธิบายไว้ในบทความ Wikipedia เป็น " วิธีที่ 1 " ถ้าฉันทำตามคำอธิบายข้างต้น r ใช้ "วิธีที่ 3" คุณจะต้องตัดสินใจด้วยตัวเองซึ่งเหมาะสมตามแบบแผนในสาขาของคุณเอง


คุณทำคะแนนได้ดี (+1) แต่เนื่องจากการอ้างอิงสำหรับ "วิธีที่ 1" เป็นเครื่องคิดเลข TI-83 และ Excel (ซึ่งขาดความน่าเชื่อถือเป็นที่รู้จักกันดี) ว่าวิธีนี้มีอคติชัดเจนและไม่ยากที่จะคำนวณกว่าบานพับของ Tukey ดูเหมือนจะพิสูจน์ได้ยากหรือแนะนำให้ใช้
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.