สิ่งที่เป็นทางเลือกให้กับ boxplot


20

ฉันกำลังสร้างเว็บไซต์ซึ่งแสดงข้อมูลการสำรวจสำมะโนประชากรสำหรับรูปหลายเหลี่ยมที่ผู้ใช้เลือก & ต้องการแสดงการกระจายตัวของพารามิเตอร์ต่างๆแบบกราฟิก (กราฟหนึ่งต่อพารามิเตอร์)

ข้อมูลมักจะมีคุณสมบัติดังต่อไปนี้:

  1. ขนาดตัวอย่างมีแนวโน้มที่จะใหญ่ (พูดประมาณ 10,000 จุดข้อมูล)
  2. ช่วงของค่ามักจะมีขนาดใหญ่ (ตัวอย่างเช่นจำนวนประชากรขั้นต่ำอาจน้อยกว่า 100 และสูงสุดอาจเท่ากับ 500,000)
  3. q1 มักจะใกล้เคียงกับค่าต่ำสุด (พูด 200) ในขณะที่ q2 & q3 จะอยู่ภายใน 10,000
  4. มันดูไม่เหมือนการแจกแจงแบบปกติ

ฉันไม่ใช่นักสถิติดังนั้นคำอธิบายของฉันอาจไม่ชัดเจน

ฉันต้องการแสดงการกระจายตัวนี้บนกราฟซึ่งพลเมืองจะมองเห็นได้ (คนธรรมดาถ้าคุณต้องการ)

ฉันชอบที่จะใช้ฮิสโตแกรมที่ดีที่สุด แต่มันเป็นไปไม่ได้เนื่องจากค่าที่หลากหลายเนื่องจากการทำถังขยะไม่ใช่เรื่องง่าย & ส่งตรงไปข้างหน้า

จากสิ่งที่ฉันรู้เกี่ยวกับสถิติพล็อตกล่องเป็นสิ่งที่มักใช้ในการแสดงข้อมูลประเภทนี้ แต่ฉันรู้สึกว่าสำหรับคนธรรมดาการถอดรหัสพล็อตบ็อกซ์นั้นไม่ใช่เรื่องง่าย

ตัวเลือกของฉันคืออะไรเพื่อแสดงข้อมูลนี้ในลักษณะที่เข้าใจง่าย


คุณกำลังแสดงอะไร ยังไม่ชัดเจนสำหรับฉันว่าจุดข้อมูลของคุณคืออะไร
mpiktas

1
พล็อตความหนาแน่นเคอร์เนลเป็นอย่างไร statmethods.net/graphs/density.html
Roman Luštrik

@mpiktas: ข้อมูลของฉันคือข้อมูลการสำรวจสำมะโนประชากรสำหรับหมู่บ้าน เว็บไซต์ของฉันจะอนุญาตให้ผู้ใช้เลือกพื้นที่บนแผนที่จากนั้นจะค้นหาหมู่บ้านทั้งหมดในพื้นที่นั้น ข้อมูลการสำรวจสำมะโนประชากรสำหรับหมู่บ้านประกอบด้วยค่าต่าง ๆ เช่น: ประชากรชายประชากรหญิงรายได้ครัวเรือนเฉลี่ย ฯลฯ สำหรับหมู่บ้านนั้น ฉันหวังว่าจะแสดงการกระจายข้อมูลสำหรับค่าเฉพาะ (เช่น: ประชากรทั้งหมด) สำหรับหมู่บ้านทั้งหมดที่อยู่ในพื้นที่ที่ผู้ใช้เลือก
Devdatta Tengshe

คำตอบ:


13

boxplot นั้นไม่ซับซ้อน ท้ายที่สุดคุณเพียงแค่คำนวณควอไทล์ทั้งสามและนาทีและสูงสุดที่กำหนดช่วง ความบอบบางเกิดขึ้นเมื่อเราต้องการวาดหนวดและวิธีการต่าง ๆ ได้รับการเสนอ ตัวอย่างเช่นในค่าboxukot ของ Tukeyนอก 1.5 เท่า inter-quartile จากควอไทล์แรกหรือที่สามจะถือว่าเป็นค่าผิดปกติและแสดงเป็นคะแนนแบบง่าย ดูวิธีการในการนำเสนอข้อมูลสถิติ: The Box Plot สำหรับภาพรวมที่ดีโดย Kristin Potter Rซอฟต์แวร์ใช้กฎแตกต่างกันเล็กน้อย แต่รหัสที่มาสามารถใช้ได้ถ้าคุณต้องการที่จะศึกษามัน (ดูboxplot()และboxplot.stats()ฟังก์ชั่น). อย่างไรก็ตามมันไม่ได้มีประโยชน์มากนักเมื่อความสนใจในการระบุค่าผิดปกติจากการแจกแจงที่เบ้มาก (แต่ดู, boxplot ที่ปรับปรุงแล้วสำหรับการแจกแจงแบบเบ้โดย Hubert และ Vandervieren, CSDA 2008 52 (12))

สำหรับเรื่องการสร้างภาพออนไลน์นั้นผมขอแนะนำให้ดูที่Protovisซึ่งเป็นกล่องเครื่องมือ js ที่ไม่ต้องใช้ปลั๊กอินสำหรับการแสดงผลบนเว็บแบบโต้ตอบ ตัวอย่างหน้ามีภาพประกอบมากของสิ่งที่สามารถทำได้กับมันในไม่กี่บรรทัดมาก


3
ฉันทำงานวิจัยทางชีววิทยา ฉันรู้จักเพื่อนร่วมงานบางคน (ฉันหมายถึงคนที่มีปริญญาเอก) ซึ่งไม่สามารถเข้าใจแผนการของกล่องได้ ฉันจะไม่ใช้พวกเขาเพื่อกำหนดกลุ่มเป้าหมายทั่วไป
โก้

1
@nico นั่นเป็นประเด็นที่ยุติธรรม แต่นี่ไม่ใช่เหตุผลที่จะไม่ใช้การสรุปแบบกราฟิกที่มีประสิทธิภาพ ภาพประกอบแผนผังของสิ่งที่ boxplot จริงอาจช่วยผู้อ่าน
chl

1
มันขึ้นอยู่กับว่ากลุ่มเป้าหมายคืออะไรและเป้าหมายของเว็บไซต์คืออะไร การอธิบายถึงบ็อกซ์พล็อตจะช่วยได้แน่นอน แต่บางคนก็ต้องดิ้นรนมากกับแนวคิดเรื่องการกระจาย
โก้

@nico ใช่ฉันเห็นด้วย แม้ว่า boxplot ไม่ได้กล่าวถึงในA Tour ผ่าน Visualization Zoo - แต่สำหรับชุดข้อมูลขนาดใหญ่และซับซ้อนฉันก็ชอบมันและฉันเสียใจที่เห็นว่ามันไม่ได้ใช้ในวิทยาศาสตร์เชิงทดลองมากนัก การวางข้อมูลดิบเป็นวิธีหนึ่งที่จะช่วยให้ผู้อ่านมองเห็นการกระจาย
chl

1
ฉันรู้ว่า! ฉันมักจะพยายาม "แปลง" เพื่อนร่วมงานของฉันไปเป็น boxplots อย่างน้อยก็เมื่อมันมาถึงการเขียนบทความการนำเสนอ ฯลฯ แต่บางครั้งก็เป็น!
โก้


7

ฉันขอแนะนำให้คุณอดทนกับฮิสโตแกรม พวกมันเข้าใจกันอย่างกว้างขวางมากกว่าทางเลือกอื่น ใช้สเกลบันทึกเพื่อรับมือกับช่วงของค่าขนาดใหญ่ นี่คือตัวอย่างที่ฉันทำขึ้นในไม่กี่นาทีใน Stata: ฮิสโตแกรมที่มีสเกลบันทึกบนแกนค่า
ฉันยอมรับว่าป้ายกำกับตัวเลขแกน x ไม่ตรงไปตรงมาหรือโดยอัตโนมัติ แต่เมื่อคุณสร้างเว็บไซต์ฉันมั่นใจว่าทักษะการเขียนโปรแกรมของคุณขึ้นอยู่กับ ท้าทาย!


จุดดี. ฮิสโทแกรม (หรือแปลงความหนาแน่นพร้อมการทดสอบด้วยแบนด์วิดท์) เป็นโซลูชันที่ยอดเยี่ยมสำหรับที่นี่
suncoolsu

คุณพูดถูกแล้วว่าฮิสโตแกรมเป็นวิธีที่เข้าใจได้ดีที่สุดในการแสดงการแจกแจง ฉันจะพยายามสร้างฮิสโตแกรมกับแกนทั้งสองในระดับสเกล
Devdatta Tengshe

2
ฉันแนะนำให้ใช้สเกลบันทึกสำหรับแกน x เท่านั้น ฉันไม่คิดว่ามาตราส่วนบันทึกสำหรับแกนความถี่จะเป็นความคิดที่ดีเนื่องจากพื้นที่แรเงาของแท่งกราฟแต่ละแท่งจะไม่เป็นสัดส่วนกับจำนวนการสังเกต
onestop

5

นี่คือฟังก์ชั่น matlabสำหรับการพล็อตฮิสโทแกรมหลาย ๆ แบบเคียงข้างกันในแบบ 2D เป็นทางเลือกแทนพล็อตแบบกล่อง ดูภาพด้านบน และนี่คืออีกหนึ่ง

แถบความหนาแน่นเป็นอีกทางเลือกสำหรับพล็อตเรื่องของกล่อง มันเป็นแถบขาวดำที่แรเงาซึ่งความมืด ณ จุดหนึ่งเป็นสัดส่วนกับความหนาแน่นของความน่าจะเป็นของปริมาณ ณ จุดนั้น นี่คือการนำR ไปใช้กับแถบความหนาแน่น


1
(+1) ลืมเรื่องนั้น มันอาจจะมีประโยชน์
chl

1
พบเพียงรุ่น PDF ungated ของแสดงความไม่แน่นอนด้วยการแรเงา
chl

@chl: ลิงก์นั้นใช้งานไม่ได้
kjetil b halvorsen

4

x%x=0,10,20,...,100


3
การอ้างถึงเพื่อนของฉัน: หากคุณต้องการ "ซ่อน" บางสิ่งในกระดาษให้ใส่ไว้ในข้อความแทนที่จะเป็นรูป หากคุณต้องการให้แน่ใจว่าไม่มีใครอ่านได้เลยวางไว้ในตาราง! ;) เพียงแค่ล้อเล่น แต่มีเว็บไซต์ที่มีแผนที่แบบอินเทอร์แอคทีฟสำหรับผู้ใช้ในการคลิกและอื่น ๆ ทั้งหมดนี้เพื่อรับตาราง ... ดีที่น่าผิดหวัง!
โก้

@ นิโก้ใช่ แต่บางครั้งตารางมีข้อมูลมากกว่ากราฟ ยกตัวอย่างเช่นฉันชอบตารางมากกว่ากราฟที่ไม่ดี ในกรณีนี้ตารางยังสามารถแสดงเป็นกราฟได้และฉันแนะนำปริมาณเนื่องจากไม่มีปัญหากับค่าผิดปกติ
mpiktas

นั่นคือสิ่งที่ฉันกำลังทำอยู่ (แสดง decile บนกราฟ) แต่หลังจากแสดงให้ผู้ชมกลุ่มเป้าหมายของเราได้รับข้อเสนอแนะแล้วกราฟก็ไม่ง่ายที่จะเข้าใจ
Devdatta Tengshe

2

หากคุณกำหนดเป้าหมายไปยังประชากรทั่วไป (เช่นผู้ชมที่ไม่เข้าใจทางสถิติ) คุณควรมุ่งเน้นไปที่อาหารตามากกว่าความถูกต้องทางสถิติ

ลืมเรื่องบ็อกซ์พล็อตเถอะทำไวโอลิน (โดยส่วนตัวแล้วฉันพบว่ามันอ่านยากมาก)! หากคุณถามคนเดินถนนโดยเฉลี่ยว่าอะไรคือควอไทล์คุณจะได้รับความเงียบงอกว้าง ...

คุณควรใช้ barplots แผนภูมิฟองบางทีแผนภูมิวงกลม (brrrr) ลืมแถบข้อผิดพลาด (แม้ว่าฉันจะใส่ SD ลงในข้อความที่ไหนก็ได้)

ใช้สีรูปร่างเส้นหนา 3D คุณควรทำให้แต่ละแผนภูมิไม่ซ้ำกันและเข้าใจง่ายได้ทันทีโดยไม่ต้องอ่านตำนาน / แกนทั้งหมดเป็นต้นใช้ประโยชน์จากแผนที่อย่างชาญฉลาดด้วยการระบายสี

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

และแน่นอนดูงานของ Edward Tufte


หมายเหตุฉันไม่ได้แนะนำให้เขาใช้พล็อตไวโอลินสำหรับแอปพลิเคชันของเขา แต่ฮิสโตแกรมที่มีช่องว่างแบบลอการิทึม แผนการของไวโอลินคือคำตอบของคำถามในหัวข้อ (ซึ่งค่อนข้างแตกต่างจากคำถามในโพสต์เอง)
Dikran Marsupial

3
คุณอาจจะชอบMany Eyes , dataviz , datavisualization.chและIdeas2evidenceเพื่อบอกชื่อ
chl

2

ฉันชอบไวโอลินที่มีแผนการของตัวเองเพราะนี่เป็นแนวคิดเกี่ยวกับการกระจายตัว อย่างไรก็ตามถ้าช่วงของค่าขนาดใหญ่เป็นปัญหาดังนั้นอาจเป็นการดีที่สุดที่จะพล็อตการบันทึกของข้อมูลแทนที่จะเป็นค่าดิบซึ่งจะทำการเลือกขนาดของกล่องสำหรับฮิสโทแกรมเป็นต้น ไม่พูดถึงบันทึกและทำเครื่องหมายแกน 10, 100, 1,000, 10000, 100000, 1000000 เป็นต้น

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