ฉันพยายามหาค่าสูงสุดในพื้นที่สำหรับฟังก์ชันความหนาแน่นของความน่าจะเป็น (พบได้โดยใช้density
วิธีของ R ) ฉันไม่สามารถใช้วิธี "ดูรอบ ๆ เพื่อนบ้าน" แบบง่าย ๆ (ที่จุดหนึ่งมองไปรอบ ๆ เพื่อดูว่าเป็นระดับสูงสุดในพื้นที่ที่เกี่ยวกับเพื่อนบ้าน) หรือไม่เนื่องจากมีข้อมูลจำนวนมาก นอกจากนี้ดูเหมือนว่ามีประสิทธิภาพและทั่วไปมากกว่าที่จะใช้การแก้ไข Spline แล้วค้นหารากของอนุพันธ์อันดับ 1 เมื่อเทียบกับการสร้าง "มองไปรอบ ๆ เพื่อนบ้าน" ด้วยการยอมรับข้อบกพร่องและพารามิเตอร์อื่น ๆ
ดังนั้นคำถามของฉัน:
- เมื่อพิจารณาจากฟังก์ชัน
splinefun
จะหาค่าสูงสุดในท้องถิ่นได้อย่างไร - มีวิธีง่าย ๆ / เป็นมาตรฐานในการค้นหาอนุพันธ์ของฟังก์ชันที่ส่งคืนโดยใช้
splinefun
หรือไม่? - มีวิธีที่ดีกว่า / มาตรฐานในการหาค่าสูงสุดในท้องถิ่นของฟังก์ชันความหนาแน่นของความน่าจะเป็นหรือไม่?
สำหรับการอ้างอิงด้านล่างเป็นพล็อตของฟังก์ชั่นความหนาแน่นของฉัน ฟังก์ชั่นความหนาแน่นอื่น ๆ ที่ฉันทำงานด้วยนั้นคล้ายกันในรูปแบบ ฉันควรจะบอกว่าฉันใหม่กับ R แต่ไม่ใช่เรื่องใหม่สำหรับการเขียนโปรแกรมดังนั้นอาจมีไลบรารีหรือแพ็คเกจมาตรฐานสำหรับการบรรลุสิ่งที่ฉันต้องการ
ขอบคุณสำหรับความช่วยเหลือของคุณ!!
msExtrema {msProcess}
) และสามารถระบุจำนวนสูงสุดได้เพียงไม่กี่อย่างเท่านั้นโดยไม่เล่นเลยด้วยการตั้งค่าความอดทน
msExtrema
มันเป็นเสื้อคลุมง่าย ๆpeaks
จากsplus2R
แพคเกจซึ่งคุณจะดีกว่าการใช้โดยตรงหากคุณต้องการ maxima ท้องถิ่นและไม่ใช่ minima ท้องถิ่น ฉันไม่เห็นสาเหตุที่ใช้ค่าเริ่มต้นspan=3
จะไม่พบ maxima ท้องถิ่นทั้งหมด และ 2 ^ 15 = 32768 ไม่ควรใหญ่พอสำหรับประสิทธิภาพที่จะต้องกังวลมาก
peaks
ดูเหมือนจะเป็นบั๊กกี้: มันเรียกmax.col
ด้วยการตั้งค่าเริ่มต้นties.method = "random"
ซึ่งไม่เพียง แต่ทำลายความสัมพันธ์ที่สุ่ม แต่ยังตั้งค่าความอดทนสัมพัทธ์ของ 1e-5 สำหรับการประกาศเสมอ อดีตกำลังสับสนอย่างหลังไม่ใช่สิ่งที่คุณต้องการที่นี่ peaks()
ยังใช้strict
พารามิเตอร์ที่มีเอกสารไม่ดีและเมื่อดูที่รหัสของฟังก์ชั่นก็ไม่ทำอะไรเลย อ๊ะความสุขของห้องสมุดซอฟต์แวร์ที่ผู้ใช้มอบให้! คุณอาจสามารถแก้ไขได้อย่างที่คุณบอกว่าคุณไม่ใหม่กับการเขียนโปรแกรม
density()
ไม่ได้ประเมินความหนาแน่นสำหรับทุกตัวเลขมันประมาณความหนาแน่นที่nค่าโดยที่nเป็นพารามิเตอร์ที่ผู้ใช้ระบุด้วยค่าเริ่มต้นn = 512