การติดตั้งโมเดล ARIMAX ด้วยการทำให้เป็นปกติหรือการลงโทษ (เช่นกับเชือก, ตาข่ายยางยืดหรือการถดถอยสัน)


29

ฉันใช้ฟังก์ชั่นauto.arima ()ในแพ็คเกจพยากรณ์เพื่อให้พอดีกับรุ่น ARMAX ที่มีตัวแปรหลากหลาย อย่างไรก็ตามฉันมักจะมีตัวแปรจำนวนมากให้เลือกและมักจะจบลงด้วยรูปแบบสุดท้ายที่ทำงานกับชุดย่อยของพวกเขา ฉันไม่ชอบเทคนิค ad-hoc สำหรับการเลือกตัวแปรเพราะฉันเป็นมนุษย์และมีอคติ แต่อนุกรมเวลาการตรวจสอบข้ามเป็นเรื่องยากดังนั้นฉันจึงไม่พบวิธีที่ดีในการลองชุดย่อยที่แตกต่างกันของตัวแปรที่มีอยู่โดยอัตโนมัติและ ฉันกำลังปรับโมเดลของฉันโดยใช้วิจารณญาณที่ดีที่สุดของฉันเอง

เมื่อฉันพอดีกับโมเดล glm ฉันสามารถใช้ elastic net หรือ lasso สำหรับการทำให้เป็นปกติและการเลือกตัวแปรผ่านแพ็คเกจglmnet มีชุดเครื่องมือที่มีอยู่ใน R สำหรับใช้ net elastic ในโมเดล ARMAX หรือฉันจะต้องหมุนเอง นี่เป็นความคิดที่ดีใช่ไหม

แก้ไข: มันสมเหตุสมผลหรือไม่ที่จะคำนวณเงื่อนไข AR และ MA ด้วยตนเอง (พูดถึง AR5 และ MA5) และใช้ glmnet เพื่อให้พอดีกับโมเดลหรือไม่

แก้ไข 2: ดูเหมือนว่าแพ็กเกจFitARทำให้ฉันเป็นส่วนหนึ่ง แต่ไม่ใช่ทั้งหมดในนั้น


2
ฉันอยากรู้ว่าคุณสามารถทำอะไรบางอย่างเกี่ยวกับปัญหานี้ได้หรือไม่ ฉันได้ทำเครื่องหมายสำหรับการอัพเดทใด ๆ - ดังนั้นเพียงแค่แตะที่ฐานที่นี่
Vishal Belsare

ไม่เคยจัดการเพื่อแก้ปัญหานี้ ฉันคิดเกี่ยวกับการเขียนการใช้งานของตัวเอง แต่ไม่ได้ไป บางทีคุณสามารถคำนวณคำศัพท์ AR และ MA ด้วยตนเองจากนั้นใช้ glmnet กับข้อมูลนั้นได้หรือไม่
ซัค

1
สวัสดีซัคฉันสงสัยว่าคุณได้ทำสิ่งนี้ต่อไปหรือไม่หรือยังจอดอยู่ ฉันมีความต้องการอัลกอริทึมดังกล่าวในการคาดการณ์ชุดข้อมูลจำนวนมาก
Matt Weller

3
@ MattWeller ฉันได้พูดคุยกับ Rob Hyndman ผู้เขียนforecastแพ็คเกจที่ยอดเยี่ยมสำหรับ R. เขาบอกว่ามันคงยากกับ ARIMA แบบเต็มเพราะคุณจะต้องล้อมรอบเชือกด้วยเครื่องมือเพิ่มประสิทธิภาพ ARIMA แบบไม่เชิงเส้น วิธีการแก้ปัญหาบางส่วนจะให้พอดีกับแบบจำลอง AR โดยใช้glmnetกับตัวแปรที่ล้าหลัง เท่าที่ฉันรู้ยังไม่มีใครทำสิ่งนี้ด้วยแบบจำลอง ARIMA ที่สมบูรณ์
Zach

คำตอบ:


7

นี่ไม่ใช่วิธีแก้ปัญหา แต่มีการสะท้อนความเป็นไปได้และความยากลำบากที่ฉันรู้

เมื่อใดก็ตามที่เป็นไปได้ที่จะระบุรูปแบบอนุกรมเวลาเป็น ด้วยx tคำนวณได้จาก covariates และการสังเกตแบบ Time-lagged ก็เป็นไปได้ที่จะคำนวณตาข่ายยืดหยุ่นน้อย ตัวประมาณของβโดยใช้ glmnet ใน R มันต้องการให้คุณเขียนโค้ดเพื่อคำนวณx tเพื่อจัดทำเมทริกซ์โมเดลที่จะถูกระบุใน glmnet ใช้งานได้กับรุ่น AR แต่ไม่ตรงกับรุ่น ARMA โดยตรง นอกจากนี้ขั้นตอนการตรวจสอบข้ามของ glmnet นั้นไม่สมเหตุสมผลสำหรับข้อมูลอนุกรมเวลา

Yเสื้อ+1=xเสื้อβ+εเสื้อ+1
xเสื้อβxเสื้อ

สำหรับรุ่นทั่วไปมากขึ้น การดำเนินการของอัลกอริทึมสำหรับการคำนวณที่ไม่ใช่เชิงเส้นอย่างน้อยสี่เหลี่ยมยืดหยุ่นสุทธิประมาณการการลงโทษของβเป็นสิ่งจำเป็น เท่าที่ทราบแล้วไม่มีการดำเนินการในอาร์ฉันกำลังเขียนการดำเนินการเพื่อแก้ไขกรณีที่Y t + 1 = x t g ( β ) + ϵ t + 1

Yเสื้อ+1=(xเสื้อ,β)+εเสื้อ+1
β
Yเสื้อ+1=xเสื้อก.(β)+εเสื้อ+1
จุดเป็นว่ามันเป็นสิ่งสำคัญยิ่งสำหรับการเลือกรูปแบบที่ปรับไหมเชือกอยู่บนและไม่กรัม( β ) ถ้าฉันจำ ARIMA-parametrization ได้อย่างถูกต้องก็จะใช้แบบฟอร์มนี้-แต่ฉันไม่สามารถให้รหัสใด ๆ ในขณะนี้ มันคือ (จะเป็น) ขึ้นอยู่กับวิธีการลาดตระเวนประสานงานการไล่ระดับสีสำหรับการย่อขนาดแบบแยกไม่ได้βก.(β)-

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


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

2

ฉันได้รับการท้าทายจากลูกค้าในการแก้ปัญหานี้โดยอัตโนมัติเช่นวิธีแบบครบวงจร ฉันใช้วิธีการที่สำหรับแต่ละคู่ (เช่น y และ a x ผู้สมัคร) ก่อนหน้านี้คำนวณความสัมพันธ์ข้ามของชุดสีขาวก่อนระบุ PDL (หรือ ADL AUTOREGRESSIVE LAG MODEL แบบกระจายรวมถึงเวลา DEAD TIME) ให้ผลการประมาณการที่แข็งแกร่งพัฒนา "วัด" สำหรับโครงสร้างนี้ หลังจากดำเนินการนี้สำหรับผู้สมัครทั้งหมด regressors อันดับพวกเขาโดย "วัด" แล้วเลือก K regressors ด้านบนตาม "วัด" บางครั้งสิ่งนี้เรียกว่าการกรองแบบเชิงเส้น เราประสบความสำเร็จในการรวมฮิวริสติกนี้เข้ากับแพ็คเกจอนุกรมเวลาที่มีขายทั่วไป คุณควรจะสามารถ "ม้วนของคุณเอง"


ฉันต้องการรวมเครือข่าย lasso หรือ elastic elastic ไว้ในแบบจำลอง ARIMA โดยเฉพาะ
ซัค

3
ฉันไม่ได้มองหาตัวกรองเชิงเส้น (แม้ว่าจะมีประโยชน์) ฉันต้องการวิธีที่จะรวม lasso, ridge regression หรือ elastic net เข้าไว้ในโมเดล ARIMAX โดยเฉพาะ
Zach

2
ในขณะนี้ฉันไม่สนใจการเลื่อนระดับแนวโน้มเวลาท้องถิ่นการเปลี่ยนแปลงค่าสัมประสิทธิ์หรือความแปรปรวนข้อผิดพลาดที่ไม่คงที่ ฉันสนใจเป็นพิเศษในการประยุกต์ใช้ lasso, ridge, หรือ normalization net elastic ในโมเดล ARIMAX
ซัค

2
หากคุณสามารถรวม lasso, ridge หรือ normalization net elastic ในวิธีการข้างต้นและโพสต์โค้ดตัวอย่างในภาษาโปรแกรมโอเพนซอร์ซฉันยินดีที่จะมอบรางวัลให้คุณ
ซัค

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