เป็นไปได้ไหมที่จะทำการพยากรณ์อนุกรมเวลาโดยอัตโนมัติ


17

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

เป็นไปได้ไหมที่จะทำอะไรแบบนี้ ถ้าใช่คุณสามารถให้คำแนะนำกับฉันเกี่ยวกับวิธีการนี้ได้หรือไม่?


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

3
ไม่ไม่มีวิธีพิจารณาว่ารูปแบบใดดีที่สุด Python ไม่เกี่ยวข้องในการสนทนานี้ อย่างไรก็ตามมีความพยายามกับผลลัพธ์ที่ดี ตัวอย่างเช่นโครงการgithub.com/facebook/prophet นอกจากนี้ยังมีการผูก Python
Cagdas Ozgenc

3
ฉันลงคะแนนให้เปิดทิ้งไว้เพราะฉันคิดว่ามันเป็นคำถามที่สมเหตุสมผลแม้ว่าคำตอบคือ "ไม่" ฉันขอแนะนำให้ลบไพ ธ อนออกจากชื่อเนื่องจากไม่เกี่ยวข้องหรือโดยเฉพาะอย่างยิ่งในหัวข้อที่นี่
mkt - Reinstate Monica

1
ฉันลบไพ ธ อนออกจากชื่อตามที่แนะนำแล้ว ขอบคุณสำหรับคำตอบ
StatsNewbie123

2
ดูทฤษฎีบท "ไม่มีอาหารกลางวันฟรี"
AdamO

คำตอบ:


19

ก่อนอื่นคุณต้องทราบว่าวิธีการที่อธิบายโดย IrishStat นั้นมีความเฉพาะเจาะจงกับรุ่นของ ARIMA ไม่ใช่รุ่นทั่วไป

หากต้องการตอบคำถามหลักของคุณ "เป็นไปได้ไหมที่จะใช้การพยากรณ์อนุกรมเวลาโดยอัตโนมัติ":

ใช่แล้ว. ในการพยากรณ์อุปสงค์ของฉันแพ็คเกจการพยากรณ์เชิงพาณิชย์ส่วนใหญ่ทำเช่นนั้น แพคเกจโอเพ่นซอร์สหลายตัวทำเช่นกันโดยเฉพาะอย่างยิ่งที่สำคัญที่สุดของ Rob Hyndman auto.arima () (การคาดการณ์อัตโนมัติ ARIMA) และ ETS () (ฟังก์ชั่นการคาดการณ์การปรับให้เรียบแบบเอกซ์โปเนนเชียลอัตโนมัติ) จากแพ็คเกจพยากรณ์โอเพ่นซอร์สใน R ดูที่นี่ . นอกจากนี้ยังมีการใช้งาน Python ของ auto.arima ที่ชื่อว่าPyramidแม้ว่าในประสบการณ์ของฉันมันไม่ได้พัฒนาเต็มที่เท่ากับแพ็คเกจ R

ทั้งผลิตภัณฑ์เชิงพาณิชย์ที่ฉันพูดถึงและแพคเกจโอเพนซอร์ซที่ฉันพูดถึงทำงานตามแนวคิดของการใช้เกณฑ์ข้อมูลเพื่อเลือกการคาดการณ์ที่ดีที่สุด: คุณพอดีกับโมเดลหลายรุ่นจากนั้นเลือกโมเดลที่มี AIC ต่ำสุด BIC, AICc ฯลฯ .... (โดยทั่วไปจะทำแทนการตรวจสอบความถูกต้องของตัวอย่าง)

อย่างไรก็ตามมีข้อแม้ที่สำคัญคือ: วิธีการเหล่านี้ทั้งหมดทำงานภายในตระกูลเดียวของแบบจำลอง พวกเขาเลือกรูปแบบที่ดีที่สุดเท่าที่จะเป็นไปได้ในกลุ่มชุดของ ARIMA หรือรูปแบบที่ดีที่สุดเท่าที่จะเป็นไปได้ในกลุ่มชุดปรับความเรียบแบบเอ็กซ์โปเนนเชียล

มันเป็นเรื่องที่ท้าทายมากกว่าหากคุณต้องการเลือกจากตระกูลที่แตกต่างกันของตัวอย่างเช่นถ้าคุณต้องการเลือกรุ่นที่ดีที่สุดจาก ARIMA, การทำให้เรียบแบบเอ็กซ์โปเนนเชียลและวิธี Theta ในทางทฤษฎีคุณสามารถทำได้ในลักษณะเดียวกับที่คุณทำในตระกูลรุ่นเดียวคือโดยใช้เกณฑ์ข้อมูล อย่างไรก็ตามในทางปฏิบัติคุณต้องคำนวณ AIC หรือ BIC ด้วยวิธีเดียวกันกับทุกรุ่นที่ได้รับการพิจารณาและนั่นเป็นความท้าทายที่สำคัญ อาจเป็นการดีกว่าที่จะใช้การตรวจสอบข้ามอนุกรมเวลาหรือตรวจสอบตัวอย่างแทนเกณฑ์ข้อมูล แต่จะต้องใช้การคำนวณมากขึ้น (และน่าเบื่อกับรหัส)

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

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


ขอบคุณสำหรับคำตอบที่ลึกซึ้งเช่นนี้ ความคิดเริ่มต้นของฉันจริง ๆ แล้วเมื่อถามคำถามนี้คือสามารถเลือกจากรุ่นครอบครัวที่แตกต่างกัน
StatsNewbie123

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

2
@ JoanaClaudino ใช่ว่าจะง่ายกว่านั่นคือส่วนสำคัญของแพ็คเกจการพยากรณ์ความต้องการในเชิงพาณิชย์ แต่จะง่ายกว่าเพราะโดยทั่วไปเมื่อคุณ จำกัด ตัวเองให้อยู่ในโดเมนธุรกิจที่เฉพาะเจาะจงคุณสามารถ จำกัด ตัวเองให้อยู่ในตระกูลเดียวของโมเดล (ชุดเวลาที่มาจากโดเมนธุรกิจเดียวกันจะมีลักษณะคล้ายกันในแง่ของฤดูกาลความหนาแน่นของข้อมูล ฯลฯ ... . ดังนั้นจึงปลอดภัยที่จะสมมติว่าครอบครัวหนึ่งจะเหมาะกับพวกเขาทั้งหมด)
Skander H. - Reinstate Monica

โอเคฉันเข้าใจแล้ว ขอบคุณอีกครั้งสำหรับความช่วยเหลือที่ยอดเยี่ยม
StatsNewbie123

10

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

คุณขอคำแนะนำและฉันเชื่อว่านี่อาจเป็นวิธีที่ดีในการเริ่มต้นใช้งาน

ฉันขอแนะนำให้คุณเขียนโค้ดเพื่อติดตาม / เลียนแบบผังงาน / เวิร์กโฟลว์นี้ "โมเดลที่ดีที่สุด" สามารถพบได้โดยการประเมินเกณฑ์ที่คุณระบุ ... อาจเป็น MSE / AIC ของข้อมูลที่ถูกติดตั้งหรืออาจเป็น MAPE / SMAPE ของข้อมูลที่ถูกระงับหรือเกณฑ์ที่คุณเลือก

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

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

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

ฉันถูกขอให้ระบุทิศทางเพิ่มเติมว่าควรทำอย่างไรในการสร้างแบบจำลองอนุกรมเวลาอัตโนมัติ (หรือการสร้างแบบจำลองโดยทั่วไป) /stats//search?q=peeling+an+onionมีคำแนะนำของฉันเกี่ยวกับ "การปอกหัวหอม" และงานที่เกี่ยวข้อง

AUTOBOX ให้รายละเอียดและแสดงขั้นตอนชั่วคราวในรูปแบบที่มีประโยชน์และอาจเป็นครูที่มีประโยชน์ในเรื่องนี้ แนวคิดทางวิทยาศาสตร์ทั้งหมดคือ "เพิ่มสิ่งที่ดูเหมือนจะต้องการ" และ "ลบสิ่งที่ดูเหมือนจะมีประโยชน์น้อยกว่า" นี่เป็นกระบวนการวนซ้ำที่แนะนำโดยกล่องและเบคอนในครั้งก่อนหน้า

โมเดลต้องมีความซับซ้อนเพียงพอ (แฟนซีเพียงพอ) แต่ไม่ซับซ้อนเกินไป (แฟนซี) สมมติว่าวิธีการง่าย ๆ ที่ทำงานกับปัญหาที่ซับซ้อนไม่สอดคล้องกับวิธีการทางวิทยาศาสตร์ต่อไปนี้ Roger Bacon และสาวกของ Bacon มากมาย ดังที่โรเจอร์เบคอนเคยพูดและฉันถอดความบ่อย: การทำวิทยาศาสตร์คือการค้นหารูปแบบซ้ำ ๆ ในการตรวจสอบความผิดปกติคือการระบุค่าที่ไม่เป็นไปตามรูปแบบซ้ำ ๆ สำหรับใครก็ตามที่รู้วิธีของธรรมชาติจะสังเกตเห็นความเบี่ยงเบนของเธอได้ง่ายขึ้นและในทางกลับกันใครก็ตามที่รู้ว่าการเบี่ยงเบนของเธอจะอธิบายวิถีชีวิตของเธอได้แม่นยำกว่า หนึ่งเรียนรู้กฎโดยการสังเกตเมื่อกฎปัจจุบันล้มเหลวใน spirt pf เบคอนโดยการระบุเมื่อปัจจุบันระบุว่า "รูปแบบที่ดีที่สุด / ทฤษฎี" เป็น inadeqaute หนึ่งสามารถย้ำให้ "ตัวแทนที่ดีกว่า"

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

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


ขอบคุณมาก. คำตอบของคุณมีประโยชน์อย่างยิ่ง!
StatsNewbie123

ขอบคุณ IrishStat นี่มันลึกซึ้ง เราเคยจัดทำพารามิเตอร์เพื่อให้ตรงข้ามกับ "ลบพารามิเตอร์" แม้ว่าพารามิเตอร์จะไม่สำคัญทางสถิติหรือไม่?
ColorStatistics

1
ใช่. ถ้ามันให้คำตอบที่คุณพอใจมากกว่านี้ ค่าสัมประสิทธิ์ความชันที่ไม่ต่างจาก 0.0 อาจให้การคาดการณ์ที่สมจริงมากขึ้น (หากไม่มีนัยสำคัญทางสถิติ) มิฉะนั้นการถือค่าสัมประสิทธิ์ส่วนที่เกินนั้นไม่มีเหตุผลและทำให้เกิดความไม่แน่นอนเพิ่มขึ้นในการพยากรณ์ความแปรปรวน ผู้เขียนบางคนไม่สามารถจัดการกับการทดสอบความจำเป็นและความพอเพียงอย่างสุ่มสี่สุ่มห้า / ไร้เดียงสาคิดว่าการระบุตัวตนของแบบจำลองนั้นเป็นกระบวนการที่มีขั้นตอนเดียวในขณะที่ Box and Jenkins (และคนอื่น ๆ !) เกี่ยวข้องกับการสร้างแบบจำลอง อัลเบิร์ตอี, JW Tukey et al สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
IrishStat

3
"วิธีการพยากรณ์แบบอัตโนมัติที่แนะนำนี้จะหาโมเดลที่ดีที่สุดสำหรับแต่ละชุดเวลาโดยการปรับแต่งรูปแบบของโมเดลนั่นคือการปรับแต่งมันให้เหมาะกับชุดที่กำหนดเอง" นั่นเป็นแถลงการณ์ที่แข็งแกร่ง - หากแม่นยำหมายถึงวิธีการนี้จะชนะการแข่งขัน M3, M4 มันได้หรือไม่
Skander H. - Reinstate Monica

1
@ joana-claudino ฉันสนใจโครงการ ISEG ของคุณเป็นพิเศษเพราะฉันสนใจที่จะพัฒนาโพรซีเดอร์ที่แนะนำของฉันใน Python แน่นอนว่านี่จะเป็นการปิดเว็บไซต์จาก SE
IrishStat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.