วิธีการคำนวณควอนไทล์ตามกลุ่มใน r (พร้อมตัวอย่าง)


ในสถิติ ควอไทล์ คือค่าที่แบ่งชุดข้อมูลที่จัดประเภทออกเป็นกลุ่มเท่าๆ กัน

ในการคำนวณควอนไทล์ที่จัดกลุ่มตามตัวแปรบางตัวใน R เราสามารถใช้ฟังก์ชันต่อไปนี้จากแพ็คเกจ dplyr ใน R:

 library (dplyr)

#define quantiles of interest
q = c(.25, .5, .75)

#calculate quantiles by grouping variable
df %>%
  group_by(grouping_variable) %>%
  summarize(quant25 = quantile (numeric_variable, probs = q[1]), 
            quant50 = quantile (numeric_variable, probs = q[2]),
            quant75 = quantile (numeric_variable, probs = q[3]))

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ปริมาณตามกลุ่มใน R

รหัสต่อไปนี้แสดงวิธีคำนวณควอไทล์ของจำนวนชัยชนะที่จัดกลุ่มตามทีมสำหรับชุดข้อมูลใน R:

 library (dplyr)

#create data
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                        'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B',
                        'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C'),
                 wins=c(2, 4, 4, 5, 7, 9, 13, 13, 15, 15, 14, 13,
                        11, 9, 9, 8, 8, 16, 19, 21, 24, 20, 19, 18))

#view first six rows of data
head(df)

  team wins
1 TO 2
2 to 4
3 to 4
4 to 5
5 TO 7
6 to 9

#define quantiles of interest
q = c(.25, .5, .75)

#calculate quantiles by grouping variable
df %>%
  group_by(team) %>%
  summarize(quant25 = quantile (wins, probs = q[1]), 
            quant50 = quantile (wins, probs = q[2]),
            quant75 = quantile (wins, probs = q[3]))

  team quant25 quant50 quant75           
1 to 4 6 10  
2 B 9 12 14.2
3 C 17.5 19 20.2

โปรดทราบว่าเราสามารถระบุจำนวนควอไทล์ที่เราต้องการได้:

 #define quantiles of interest
q = c(.2, .4, .6, .8)

#calculate quantiles by grouping variable
df %>%
  group_by(team) %>%
  summarize(quant20 = quantile (wins, probs = q[1]), 
            quant40 = quantile (wins, probs = q[2]),
            quant60 = quantile (wins, probs = q[3]),
            quant80 = quantile (wins, probs = q[4]))

  team quant20 quant40 quant60 quant80
              
1 to 4 4.8 7.4 11.4
2 B 9 10.6 13.2 14.6
3 C 16.8 18.8 19.2 20.6

คุณยังสามารถเลือกที่จะคำนวณควอนไทล์เดี่ยวต่อกลุ่มได้ด้วย ตัวอย่างเช่น ต่อไปนี้คือวิธีคำนวณเปอร์เซ็นไทล์ที่ 90 ของจำนวนชัยชนะของแต่ละทีม:

 #calculate 90th percentile of wins by team
df %>%
  group_by(team) %>%
  summarize(quant90 = quantile (wins, probs = 0.9 ))

   team quant90
     
1 to 13  
2 B 15  
3 C 21.9

แหล่งข้อมูลเพิ่มเติม

วิธีการคำนวณควอไทล์ใน R
วิธีการคำนวณเดซิลใน R
วิธีการคำนวณเปอร์เซ็นไทล์ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *