แสดงค่าเฉลี่ยแทนค่ามัธยฐานใน boxplot [ปิด]


15

เมื่อพล็อตพล็อต boxplot ด้วย python matplotblib บรรทัดที่ครึ่งทางของพล็อตคือค่ามัธยฐานของการแจกแจง

มีความเป็นไปได้ที่จะมีเส้นตรงแทนค่าเฉลี่ย หรือจะพล็อตติดกับมันในสไตล์ที่แตกต่าง

นอกจากนี้เนื่องจากเป็นเรื่องปกติที่บรรทัดจะเป็นค่ามัธยฐานมันจะทำให้ผู้อ่านสับสนหรือไม่ถ้าฉันทำให้มันเป็นค่าเฉลี่ย (นอกหลักสูตรฉันจะเพิ่มข้อความว่าเส้นกลางคืออะไร) หรือไม่

คำตอบ:


25

รหัสนี้ทำให้ boxplots แล้ววางวงกลมที่ทำเครื่องหมายค่าเฉลี่ยสำหรับแต่ละกล่อง คุณสามารถใช้สัญลักษณ์ที่แตกต่างกันโดยการระบุเครื่องหมายscatterอาร์กิวเมนต์ในการเรียกร้องให้

import numpy as np
import pylab

# 3 boxes
data = [[np.random.rand(100)] for i in range(3)]
pylab.boxplot(data)

# mark the mean    
means = [np.mean(x) for x in data]
pylab.scatter([1, 2, 3], means)

ข้อความแสดงแทน


3
ดูstackoverflow.com/questions/2492947/…สำหรับการแก้ปัญหาโดยใช้ R
James

1
@ เจมส์: ฉันไม่ได้พยายามที่จะเป็นคนกระตุกและเป็นโสดกับคุณ แต่ความคิดเห็นของคุณจะเป็นคำถามจากฉัน ทำไมเมื่อใดก็ตามที่ทุกคนในฟอรัมนี้ถามอย่างชัดเจนว่าจะทำอย่างไรโดยใช้ภาษาที่ไม่ใช่ R (เนื่องจาก R เป็นค่าเริ่มต้นโดยพฤตินัย ) ใครบางคนมักจะแนะนำให้ใช้ R ฉันไม่พบการสนทนามากนัก โดยทั่วไปโปรแกรมเมอร์ของ SAS ไม่แสดงความคิดเห็นใน "ฉันจะทำ X ใน R ได้อย่างไร" คำถามกับ "นี่คือวิธีทำใน SAS ... " ฉันรู้ว่าคนรักอาร์ (และฉันก็ทำเหมือนกัน) แต่ ...
Josh Hemann

20

เพื่อตอบคำถามที่สองของคุณ: ใช่ฉันคิดว่ามันจะทำให้สับสนในการตั้งค่าเฉลี่ยแทนที่จะเป็นค่ามัธยฐาน กฎที่แม่นยำในการควบคุมความยาวของ 'เครา' (ถ้ามี) และการรักษาค่าผิดปกติแตกต่างกันไป แต่ทุกคนยังคงใช้กล่อง Tukey เพื่อแสดงค่ามัธยฐานและควอไทล์ส่วนบนและล่าง สำหรับการแจกแจงแบบเบ้สูงค่าเฉลี่ยอาจอยู่นอกกรอบซึ่งจะดูแปลกมาก การใช้งานทั่วไปคือค่ามัธยฐานจะอยู่ในช่วงระหว่างควอไทล์ในขณะที่ค่าเฉลี่ยไปกับส่วนเบี่ยงเบนมาตรฐาน (หรือข้อผิดพลาดมาตรฐานของค่าเฉลี่ยหากคุณสนใจที่จะอนุมานมากกว่าคำอธิบายข้อมูล) หากคุณต้องการแสดงค่าเฉลี่ยที่มองเห็นได้ฉันจะใช้สัญลักษณ์อื่นเพื่อแสดงเพื่อหลีกเลี่ยงความสับสน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.