geom_smooth () มีวิธีอะไรบ้าง?


93

ฉันใช้geom_smooth()จากggplot2.

ในหนังสือของ Hadley Wickham ("ggplot2 - Elegant Graphics for Data Analysis") มีตัวอย่าง (หน้า 51) ที่method="lm"ใช้ ในคู่มือออนไลน์ไม่มีการพูดถึงmethodข้อโต้แย้ง ผมเห็นผลอื่น ๆ ของ Google (และคำถามที่นี่) method='loess'คนที่ใช้

มีรายการแบบละเอียดที่อธิบายตัวเลือกหรือไม่?

จากสิ่งที่ฉันเห็น'lm'วาดเส้นตรงและ'loess'วาดเส้นโค้งที่ราบรื่นมาก ฉันคิดว่ามีคนอื่นที่ลากเส้นหยักระหว่างจุดอ้างอิงมากกว่า?

seโต้แย้งจากตัวอย่างยังไม่ได้อยู่ในความช่วยเหลือหรือเอกสารออนไลน์

FWIW นี่คือรหัสของฉัน

p <- ggplot(output8, aes(age, myoutcome, group=id, colour=year_diag_cat2)) +
  geom_line() + scale_y_continuous(limits = c(lwr,upr))
p + geom_smooth(aes(group=year_diag_cat2), method="loess", size=2, se=F)


2
คำถามและคำตอบล้าสมัย เอกสารปัจจุบันแสดงรายการอาร์กิวเมนต์: ggplot2.tidyverse.org/reference/geom_smooth.html
ม.ค.

ลิงก์ของ @ StéphaneLaurentถูกย้าย (เนื่องจากตอนนี้มีอายุ 5 ปีขึ้นไป): stats.idre.ucla.edu/r/faq/…
MokeEire

คำตอบ:


38

บางครั้งมันก็ถามคำถามที่ทำให้คำตอบโดดเด่น วิธีการและข้อโต้แย้งพิเศษมีการระบุไว้ในggplot2 วิกิพีเดียหน้า

ซึ่งพาดพิงถึงในgeom_smooth()หน้าด้วย:

"ดู stat_smooth สำหรับตัวอย่างการใช้การติดตั้งโมเดลในตัวหากคุณต้องการความยืดหยุ่นมากกว่านี้ตัวอย่างนี้จะแสดงวิธีการวางพล็อตความพอดีจากรุ่นใด ๆ ที่คุณเลือก"

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


4
ใช่เอกสารค่อนข้างยุ่งเล็กน้อย ฉันไม่ชอบที่ Springer เรียกเก็บเงินมากกว่า 40 เหรียญสำหรับหนังสือของ Hadley ซึ่งมีข้อมูลที่ขาดจากเว็บไซต์
wespiserA

@wespiserA ข้อมูลที่หายไปจากเว็บไซต์ (หรือวิธีใช้แพ็คเกจ) ในแง่ใด nzcoops มองผิดที่ นั่นไม่ได้หมายความว่าความช่วยเหลือสำหรับgeom_smooth()ไม่สามารถปรับปรุงได้พูดโดยการกล่าวถึงอย่างชัดเจนmethodและเพื่อดูstat_smooth()- ในขณะนี้สิ่งนี้เกิดขึ้นในความคิดเห็นในตัวอย่างเท่านั้นและอีเมลที่สุภาพถึง Hadley จะทำให้ฉันมั่นใจได้ สิ่งมหัศจรรย์. การเขียนเอกสารเป็นเรื่องยากโดยเฉพาะอย่างยิ่งเมื่อคุณอยู่ใกล้กับรหัสมาก ในฐานะผู้พัฒนาคุณไม่ใช่ผู้ใช้อีกต่อไปและจะพบว่าการเขียนเอกสารสำหรับผู้ใช้นั้นยาก
Gavin Simpson

1
@nzcoops เหตุผลที่ไม่ได้บันทึกเป็นอาร์กิวเมนต์geom_smooth()คือฟังก์ชันนั้นไม่มีหรือใช้อาร์กิวเมนต์นั้น รหัส geom ใช้สำหรับการสร้างวัตถุที่เมื่อพิมพ์ออกมาแล้วให้ทำการวาดภาพ หลักการใน ggplot คือการมีstat_foo()ฟังก์ชั่นแม้ว่าstat_identity()คุณจะไม่ต้องการคำนวณอะไรก็ตาม ที่กล่าวว่า Hadley ยินดีต้อนรับความคิดเห็น / คำติชมเกี่ยวกับรหัส / แพ็คเกจของเขาดังนั้นโปรดส่งอีเมลและแนะนำลิงก์โปรไฟล์ที่สูงขึ้นระหว่างgeom_เอกสารและเอกสารที่เกี่ยวข้องstat_
Gavin Simpson

2
@Gavin ใช่ฉันเคยส่งอีเมลถึง Hadley สองสามครั้งในอดีตคิดว่าคำถามยังคงมีค่าที่นี่เนื่องจากฉันไม่ต้องสงสัยเลยว่าคนอื่นจะใช้ Google ในบางจุด ความคิดเห็นของคุณเกี่ยวกับ 'ไม่มีหรือรับข้อโต้แย้งนั้น' นั้นไม่ถูกต้อง มัน. มันอาจส่งผ่านไปยัง stat_smooth () ได้ดี แต่มันจะ 'ใช้เวลา' ตามตัวอย่างที่แสดง ฉันไม่ต้องการที่จะดักฟัง Hadley ในสิ่งที่ฉันรู้ว่ามีคนตอบได้อย่างรวดเร็วแม้ว่าตัวฉันเอง: /
nzcoops

23

อาร์กิวเมนต์วิธีการระบุพารามิเตอร์ของสถิติที่ราบรื่น คุณสามารถดูstat_smoothรายการอาร์กิวเมนต์ที่เป็นไปได้ทั้งหมดของอาร์กิวเมนต์เมธอด


คำตอบหน้าด้านเปลี่ยนไป @wespiser: P ฉันจะปล่อยให้มันผ่านไป;)
nzcoops

ใช่คุณจับบลัฟของฉันครั้งแรก หลังจากนั้นฉันก็ตัดสินใจทำการวิจัยเล็กน้อยและพบว่าเกิดอะไรขึ้น!
wespiserA

1

อาร์กิวเมนต์ se จากตัวอย่างยังไม่ได้อยู่ในวิธีใช้หรือเอกสารออนไลน์

เมื่อ 'se' ใน geom_smooth ถูกตั้งค่าเป็น 'FALSE' จะมองไม่เห็นขอบเขตการแรเงาของข้อผิดพลาด

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