การหาจุดผันใน R จากข้อมูลที่ราบเรียบ


14

loessผมมีข้อมูลบางอย่างที่ผมเรียบใช้ ฉันต้องการหาจุดเบี่ยงเบนของเส้นที่เรียบ เป็นไปได้ไหม ฉันแน่ใจว่ามีคนทำวิธีแฟนซีเพื่อแก้ปัญหานี้ ... ฉันหมายถึง ... หลังจากทั้งหมดมันคือ R!

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

นี่คือรหัสที่ฉันใช้:

x = seq(1,15)
y = c(4,5,6,5,5,6,7,8,7,7,6,6,7,8,9)
plot(x,y,type="l",ylim=c(3,10))
lo <- loess(y~x)
xl <- seq(min(x),max(x), (max(x) - min(x))/1000)
out = predict(lo,xl)
lines(xl, out, col='red', lwd=2)

ป้อนคำอธิบายรูปภาพที่นี่


3
บางทีคุณอาจต้องการที่จะมีลักษณะที่การวิเคราะห์การเปลี่ยนแปลงจุด
โก้

ฉันพบรหัสบรรทัดนี้มีประโยชน์มาก: infl <- c (FALSE, diff (diff) (0)> 0)! = 0) แต่โค้ดนี้จะพบจุดเปลี่ยนทั้งหมดโดยไม่คำนึงว่ามันจะขึ้นหรือลง ฉันจะบอกได้อย่างไรว่าจุดใดที่โค้งงอและโค้งลงในไทม์ซีรี? ตัวอย่างเช่นพล็อตและสีจุดเปลี่ยนสีเขียวและจุดสีแดงขึ้นด้านบน
user3511894

คำตอบ:


14

จากมุมมองของการใช้ R เพื่อค้นหาการเบี่ยงเบนในโค้งที่ราบเรียบคุณเพียงแค่ต้องค้นหาสถานที่เหล่านั้นในค่า y ที่ปรับให้เรียบซึ่งการเปลี่ยนแปลงในเครื่องหมาย y สวิตช์

infl <- c(FALSE, diff(diff(out)>0)!=0)

จากนั้นคุณสามารถเพิ่มคะแนนลงในกราฟที่เกิดการผันเหล่านี้

points(xl[infl ], out[infl ], col="blue")

จากมุมมองของการค้นหาจุดโรคติดเชื้อที่มีความหมายทางสถิติฉันเห็นด้วยกับ @nico ว่าคุณควรพิจารณาการวิเคราะห์จุดเปลี่ยนบางครั้งก็เรียกว่าการถดถอยแบบแบ่งกลุ่ม


ดูเหมือนว่าจะทำงานได้ค่อนข้างดี ฉันเข้าใจว่ามันไม่เหมาะและผลลัพธ์ที่ได้ก็ไม่เหมาะอย่างแน่นอน ขอบคุณสำหรับการสนับสนุนแม้ว่า ครอบคลุมกรณีส่วนใหญ่ยกเว้นสิ่งต่าง ๆ เช่นเส้นตรง
user164846

3
ฉันไม่แน่ใจว่าฉันเข้าใจ @ user164846 เส้นตรงไม่มีจุดผัน
Jean V. Adams

นอกจากนี้คุณอาจต้องการดู smoothers ที่ให้อนุพันธ์ทันทีเช่น Savitzky-Golay-filters อย่างไรก็ตามการตัดสินใจเลือกที่ราบรื่นของข้อมูลและแอปพลิเคชั่นของคุณนั้นไม่ใช่ทางเลือกอื่น!
cbeleites ไม่มีความสุขกับ SX

4

มีปัญหาในหลายระดับที่นี่

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

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


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

ขออภัยฉันไม่เข้าใจความคิดเห็นของคุณ หากคุณมีประสบการณ์มากในการปรับให้เรียบคุณควรมีข้อโต้แย้งที่ทำให้การรักษา inflexions ราบรื่นที่สุดในขณะที่ลดเสียงรบกวน ดูเหมือนว่าจะเป็นเป้าหมายที่ขัดแย้งกับฉัน แต่ฉันยินดีที่จะได้ยินข้อโต้แย้งทางเทคนิคว่าทำไมฉันจึงผิด
Nick Cox

ขออภัยฉันไม่ได้ "ไม่มีประสบการณ์" haha
user164846

1
ฉันเห็น. ชีวิตนั้นสั้นและคุณไม่สามารถลองทุกวิธีที่เป็นไปได้ เราไม่เห็นข้อมูลจริงของคุณ แต่ตัวอย่างของเล่นของคุณเน้นย้ำว่าการปรับให้เรียบสามารถลบโครงสร้างที่ระบุตัวตนได้
Nick Cox

2

มีแนวทางที่ดีมากมายในการแก้ไขปัญหานี้ บางคนรวมถึง (1) - แพคเกจ changepoint- (2) - แบ่งเป็น - แพ็กเกจ แต่คุณต้องเลือกจำนวนการเปลี่ยนแปลง (3) MARS ตามที่นำมาใช้ในแพ็คเกจ - โลก -

ทั้งหมดจะให้ข้อมูลที่แตกต่างกันเล็กน้อยทั้งนี้ขึ้นอยู่กับอคติ / ความแปรปรวนของการแลกเปลี่ยน - แยกส่วน - ดีน่าดู จำนวนรุ่น changepoints ที่แตกต่างกันสามารถนำมาเปรียบเทียบกับ AIC / BIC


1

บางทีคุณอาจใช้ไลบรารี fda และเมื่อคุณประเมินฟังก์ชันต่อเนื่องที่เหมาะสมแล้วคุณสามารถค้นหาสถานที่ที่อนุพันธ์อันดับสองเป็นศูนย์ได้อย่างง่ายดาย

FDA CRAN

แนะนำองค์การอาหารและยา


ศูนย์ของอนุพันธ์อันดับแรกนิยาม minima และ maxima ฉันคิดว่าคุณหมายถึงที่สอง อะไรคือ "ง่าย ๆ " อะไรก็ได้? มีมากกว่าหนึ่งวิธีในการแยกความแตกต่างของตัวเลข
Nick Cox

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