การประมาณค่าพารามิเตอร์ LogLikelihood สำหรับตัวกรองคาลมานแบบเกาส์เชิงเส้น


13

ฉันได้เขียนโค้ดบางอย่างที่สามารถทำการกรองคาลมานได้ (โดยใช้ตัวกรองคาลมานที่แตกต่างกันจำนวนหนึ่ง [Information Filter et al.]) สำหรับการวิเคราะห์อวกาศรัฐเกาส์เชิงเส้นสำหรับเวกเตอร์สถานะ n- มิติ ตัวกรองทำงานได้ดีและฉันได้ผลลัพธ์ที่ดี อย่างไรก็ตามการประมาณค่าพารามิเตอร์ผ่านการประมาณ loglikelihood ทำให้ฉันสับสน ฉันไม่ใช่นักสถิติ แต่เป็นนักฟิสิกส์ดังนั้นโปรดเป็นคนใจดี

ขอให้เราพิจารณาโมเดลเชิงเส้น Gaussian State Space

yt=Ztαt+ϵt,
αt+1=Ttαt+Rtηt,

ที่เป็นเวกเตอร์ของเราสังเกตเวกเตอร์รัฐของเราในเวลาขั้นตอนทีปริมาณที่เป็นตัวหนาคือเมทริกซ์การแปลงสภาพของแบบจำลองพื้นที่ของรัฐซึ่งตั้งค่าตามลักษณะของระบบภายใต้การพิจารณา เรายังมีytαtt

ϵtNID(0,Ht),
ηtNID(0,Qt),
α1NID(a1,P1).

ที่n ตอนนี้ฉันได้รับและดำเนินการเรียกซ้ำสำหรับตัวกรองคาลมานสำหรับตัวแบบพื้นที่ว่างทั่วไปโดยคาดเดาพารามิเตอร์เริ่มต้นและเมทริกซ์ความแปรปรวนและฉันสามารถสร้างแปลงได้ ชอบt=1,,nH1Q1

ตัวกรองคาลมาน

จุดที่เป็นระดับน้ำของแม่น้ำไนล์ในเดือนมกราคมที่ผ่านมา 100 ปีเส้นคือสถานะโดยประมาณของ Kalamn และเส้นประคือระดับความเชื่อมั่น 90%

ทีนี้สำหรับข้อมูล 1D นี้จะตั้งค่าเมทริกซ์และเป็นสเกลาร์และตามลำดับ ดังนั้นตอนนี้ฉันต้องการรับพารามิเตอร์ที่ถูกต้องสำหรับสเกลาร์เหล่านี้โดยใช้เอาต์พุตจากตัวกรองคาลมานและฟังก์ชั่น loglikelihoodQ เสื้อ σ ε σ ηHtQtσϵση

logL(Yn)=np2log(2π)12t=1n(log|Ft|+vtTFt1vt)

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

ขอบคุณที่สละเวลา.


บันทึก. สำหรับกรณี 1Dและeta} นี่คือรูปแบบระดับท้องถิ่นที่ไม่เปลี่ยนแปลงHt=σϵ2Ht=ση2

คำตอบ:


11

เมื่อคุณเรียกใช้ตัวกรองคาลมานที่คุณมีกับค่ากำหนดของ และคุณจะได้รับลำดับของนวัตกรรม และ covariances ของพวกเขาเพราะฉะนั้นคุณสามารถคำนวณ ค่าของโดยใช้สูตรที่คุณให้ σ 2 ηเข้าพบทีσϵ2ση2νtFtlogL(Yn)

ในคำอื่น ๆ ที่คุณสามารถถือว่ากรองคาลมาเป็นวิธีการคำนวณฟังก์ชันนัยของและ\สิ่งเดียวที่คุณต้องทำก็คือการจัดแพคเกจการคำนวณนี้เป็นฟังก์ชั่นหรือย่อยและจัดการกับฟังก์ชั่นที่เพิ่มประสิทธิภาพประจำ --like ในอาร์ที่ฟังก์ชั่นควรจะยอมรับเป็นปัจจัยการผลิต และและผลตอบแทน (y_n)σϵ2ση2optimσϵ2ση2logL(Yn)

แพคเกจบางอย่างใน R (เช่นdlm) ทำสิ่งนี้เพื่อคุณ (ดูฟังก์ชันอินสแตนซ์dlmMLE)


ขอบคุณสำหรับการตอบกลับของคุณ. ฉันขอขอบคุณที่ฉันดูเหมือนจะมีองค์ประกอบทั้งหมดที่จำเป็นในการคำนวณ loglikelihood อย่างชัดเจนอย่างไรก็ตามการอ้างอิงทั้งหมดฉันดูเหมือนจะแนะนำว่าฉันใช้และเป็นสิ่งที่ไม่ทราบในฟังก์ชัน loglikelihood ประเภทวิธี นี่คือสิ่งที่ทำให้ฉันสับสน; "loglikelihood ขยายใหญ่สุดเป็นตัวเลขด้วยความเคารพเวกเตอร์สถานะที่ไม่รู้จัก" - อย่างไร σϵση
MoonKnight

การคำนวณของความเป็นไปไม่ได้ที่ชัดเจนในการที่และไม่ปรากฏอย่างชัดเจนในการแสดงออกของ(y_n) แต่พวกเขามีอิทธิพลต่อความเป็นไปได้ผ่านและ{} ดังนั้นคุณจำเป็นต้องเรียกใช้ตัวกรองคาลมานในการคำนวณสำหรับคู่ของค่าของแต่ละและ\เมื่อคุณโค้ดที่อยู่ในรูปแบบของฟังก์ชั่นคุณจัดการกับนิวตันประเภท (หรือวัตถุประสงค์ทั่วไป) ฟังก์ชั่นการเพิ่มสูงสุดและที่มัน σϵσηlogL(Yn)νtFtlogL(Yn)σϵση
F. Tusell

1
ฉันมีรหัสรายละเอียด (ใน R) แสดงวิธีการทำเช่นนี้อย่างแม่นยำสำหรับข้อมูลแม่น้ำไนล์ ฉันใช้มันเป็นภาพประกอบสำหรับนักเรียนของฉัน น่าเสียดายที่มันเป็นภาษาสเปน แต่ฉันหวังว่ารหัสนั้นค่อนข้างชัดเจน (และฉันสามารถแปลความคิดเห็นได้ถ้าไม่ใช่) คุณสามารถคว้าตัวอย่างนี้จากet.bs.ehu.es/~etptupaf/N4.html
F. Tusell

สิ่งนี้มีประโยชน์อย่างมาก ขอบคุณมากสำหรับเวลาของคุณ ความคิดเห็นของคุณช่วยได้มาก! บางครั้งมันเป็นเรื่องยากที่จะ "เห็นต้นไม้สำหรับต้นไม้" และมีบางสิ่งที่เรียบง่ายอธิบายอย่างชัดเจนว่าเป็นสิ่งที่จำเป็น ... ขอขอบคุณอีกครั้ง
MoonKnight

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