วิธีจัดการกับซีรี่ส์หลายต่อหลายครั้งพร้อมกัน?


14

ฉันมีชุดข้อมูลรวมถึงความต้องการของผลิตภัณฑ์ต่าง ๆ (1200 ผลิตภัณฑ์) เป็นระยะเวลา 25 ระยะและฉันจำเป็นต้องทำนายความต้องการของแต่ละผลิตภัณฑ์สำหรับงวดถัดไป ตอนแรกฉันต้องการใช้ ARIMA และฝึกอบรมแบบจำลองสำหรับแต่ละผลิตภัณฑ์ แต่เนื่องจากจำนวนของผลิตภัณฑ์และการปรับพารามิเตอร์ (p, d, q) ทำให้ใช้เวลานานมากและไม่สามารถใช้งานได้จริง แนะนำให้ใช้การถดถอยที่ความต้องการก่อนหน้าเป็นตัวแปรอิสระ (Autoregressive) หรือไม่?

ฉันจะรู้ได้อย่างไรว่ามีวิธีใดที่จะฝึกอบรมแบบจำลองเดียวสำหรับการทำนายความต้องการผลิตภัณฑ์ทั้ง 1200 รายการ ฉันจะขอบคุณถ้าคุณสามารถแนะนำห้องสมุดใด ๆ ใน Python เพราะฉันใช้ Python


3
แพคเกจที่ทันสมัยที่สุดสำหรับการวิเคราะห์อนุกรมเวลาแบบมิติสูงที่ฉันทราบอยู่bigtimeใน R บางทีคุณอาจเรียก R จาก Python เพื่อให้สามารถใช้งานได้
Richard Hardy

คำตอบ:


11

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

ฉันขอแนะนำให้เริ่มต้นด้วยแบบจำลองเวกเตอร์ที่ใช้ง่าย (เช่น VAR, VMA, VARMA) ที่มีระดับต่ำและข้อ จำกัด พารามิเตอร์ง่าย ๆ สำหรับความสัมพันธ์ข้าม ดูว่าคุณสามารถหารูปแบบที่เหมาะสมซึ่งรวมความสัมพันธ์ข้ามไปสู่ความล่าช้าอย่างน้อยหนึ่งระดับแล้วไปจากที่นั่น แบบฝึกหัดนี้จะต้องมีการอ่านข้อมูลเกี่ยวกับตัวแบบอนุกรมเวลาแบบเวกเตอร์ MTSแพคเกจและbigtimepacakageในRมีความสามารถบางอย่างสำหรับการจัดการกับหลายตัวแปรอนุกรมเวลาดังนั้นมันก็จะมีมูลค่าการทำความคุ้นเคยกับแพคเกจเหล่านี้


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

@ Richard Hardy: ขอบคุณ --- ฉันได้แก้ไขคำตอบของฉันเพื่อรวมนี้
Reinstate Monica

1
วิธีที่ดีในการไปเกี่ยวกับเรื่องนี้คือการพิจารณา Bayesian VAR หรือมากกว่าโดยเฉพาะกับตัวแบบ Bayesian VAR ขนาดใหญ่
แกรมวอลช์

6

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

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

แนวคิดคือการมีรายการสินค้าแบบลำดับชั้นของผลิตภัณฑ์ที่แตกต่างกันของคุณจากนั้นทำการพยากรณ์ทั้งในระดับพื้นฐาน (เช่นสำหรับแต่ละชุดเวลา) และระดับรวมที่กำหนดโดยลำดับชั้นผลิตภัณฑ์ของคุณ (ดูกราฟิกที่แนบมา) จากนั้นคุณปรับยอดการคาดการณ์ในระดับต่างๆ (โดยใช้ Top Down, Botton Up, การกระทบยอดที่เหมาะสมที่สุด, ฯลฯ ... ) ขึ้นอยู่กับวัตถุประสงค์ทางธุรกิจและเป้าหมายการพยากรณ์ที่ต้องการ โปรดทราบว่าคุณจะไม่เหมาะสมกับโมเดลหลายตัวแปรขนาดใหญ่หนึ่งแบบในกรณีนี้ แต่จะมีหลายโมเดลที่โหนดที่ต่างกันในลำดับชั้นของคุณซึ่งจะกระทบยอดโดยใช้วิธีการปรับยอดที่คุณเลือก

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

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

วิธีการที่ทันสมัยกว่า แต่มีความคล้ายคลึงกันในจิตวิญญาณนั้นถูกใช้โดย Amazon และ Uber ซึ่งเครือข่าย Neural RNN / LSTM ขนาดใหญ่แห่งหนึ่งได้รับการฝึกฝนในซีรีส์เวลาทั้งหมดในคราวเดียว มันมีความคล้ายคลึงกันในเรื่องจิตวิญญาณกับการพยากรณ์แบบลำดับชั้นเพราะมันยังพยายามเรียนรู้รูปแบบจากความคล้ายคลึงกันและความสัมพันธ์ระหว่างอนุกรมเวลาที่เกี่ยวข้อง มันแตกต่างจากการพยากรณ์แบบลำดับชั้นเนื่องจากพยายามเรียนรู้ความสัมพันธ์ระหว่างอนุกรมเวลาเองเมื่อเทียบกับการกำหนดความสัมพันธ์นี้ไว้ล่วงหน้าและคงที่ก่อนที่จะทำการพยากรณ์ ในกรณีนี้คุณไม่จำเป็นต้องจัดการกับการสร้างการคาดการณ์อัตโนมัติอีกต่อไปเนื่องจากคุณกำลังปรับรูปแบบเพียงรูปแบบเดียว แต่เนื่องจากรูปแบบนั้นซับซ้อนมากกระบวนการปรับตั้งจึงไม่เป็นงานลดขนาด AIC / BIC ที่ง่ายอีกต่อไปและคุณต้องการ เพื่อดูโพรซีเดอร์การปรับพารามิเตอร์ไฮเปอร์ขั้นสูงเพิ่มเติม

ดูการตอบสนองนี้ (และความคิดเห็น)สำหรับรายละเอียดเพิ่มเติม

สำหรับแพ็คเกจ Python นั้นPyAFนั้นมีให้บริการ แต่ไม่เป็นที่นิยม คนส่วนใหญ่ใช้แพ็คเกจHTSใน R ซึ่งมีการสนับสนุนจากชุมชนมากมาย สำหรับแนวทางที่ใช้ LSTM นั้นมีโมเดล DeepAR และ MQRNN ของ Amazon ซึ่งเป็นส่วนหนึ่งของบริการที่คุณต้องจ่าย มีหลายคนที่ใช้ LSTM สำหรับการพยากรณ์อุปสงค์โดยใช้ Keras คุณสามารถค้นหาสิ่งเหล่านี้ได้


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

อเมซอนเพิ่งเปิดอัลกอริทึม DeepAR ที่มาภายใต้กรอบ GluonTS ซึ่งใช้ประโยชน์จากกรอบ MxNet แม้ว่าฉันจะพบว่าเอกสารไม่เพียงพอในจุดนี้ aws.amazon.com/blogs/opensource/…
hardikudeshi

5

ปัญหาเกี่ยวกับแพคเกจมวลเหมาะสมที่ได้รับการแนะนำที่ถูกพวกเขาเหมือนกันล้มเหลวในการจัดการกับโครงสร้างที่กำหนดแฝงเช่นพัระดับ / กะขั้นตอนพัลส์ตามฤดูกาลและแนวโน้มเวลาหรือมีประสิทธิภาพจัดการกับ causals ใช้ปัญหาเป็นต่อhttps: // autobox.com/pdfs/SARMAX.pdf

นอกจากนี้เวลาในการคำนวณอาจเป็นภาวะแทรกซ้อนที่ร้ายแรง AUTOBOX (ซึ่งฉันช่วยในการพัฒนา) มีขั้นตอนการสร้างแบบจำลองที่ซับซ้อนมากซึ่งเก็บแบบจำลองและตัวเลือกการคาดการณ์ที่รวดเร็วมากที่นำแบบจำลองที่พัฒนาแล้วก่อนหน้านี้มาใช้ใหม่ลดเวลาการพยากรณ์ให้เหลือเพียงเล็กน้อย ข้อมูลที่สังเกตได้หลังจากตัวแบบได้รับการพัฒนาและจัดเก็บ สิ่งนี้ถูกนำไปใช้กับโครงการพยากรณ์ร้านค้าของ Annheuser-Busch กว่า 600,000 รายการสำหรับสินค้ากว่า 50 รายการโดยคำนึงถึงราคาและสภาพอากาศ

สามารถอัปเดตโมเดลได้ในแบบที่กำลังเปลี่ยนแทนที่รุ่นก่อนหน้าตามต้องการ

ไม่จำเป็นต้องมีข้อ จำกัด เชิงพารามิเตอร์หรือละเว้นผลที่เกิดขึ้นพร้อมกันของตัวแปรเชิงสาเหตุเช่นเดียวกับใน VAR และ VARIMA ในขณะที่อาศัยเพียงอดีตที่ผ่านมาของทุกชุด a la ARIMA

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

น่าเสียดายที่ยังไม่มีวิธีการแก้ปัญหาของงูหลาม แต่หวังว่าจะเกิดขึ้นตลอดไป


1
ฟังดูน่าสนใจ. แค่เล่นลิ้นเล็ก ๆ : แม้ในบางสิ่งที่ง่ายเหมือน VAR แต่ละชุดจะได้รับสมการของตัวเองดังนั้นความจำเป็นที่จะต้องมีเพียง 1 โมเดลที่มีพารามิเตอร์ 1 ชุดไม่ได้เป็นข้อกังวล เว้นแต่คุณจะแนะนำรุ่นหลายรุ่นสำหรับชุดเดียวกันซึ่งอาจเป็นแนวคิดที่ดีจากมุมมองของชุดค่าผสมการคาดการณ์
Richard Hardy

วัตถุประสงค์: "เพื่อฝึกอบรมแบบจำลองเดียวสำหรับการคาดการณ์ความต้องการของผลิตภัณฑ์ทั้งหมด 1,200 รายการ" ฉันใช้สมการนี้เป็นตัวพิมพ์ 1 แบบโดยมีพารามิเตอร์คงที่ / ทั่วโลก 1 ชุดที่ประเมินจากอนุกรมเวลา 1200 ทั้งหมด "บางทีฉันก็อ่านมากเกินไป
IrishStat

หรือบางทีฉันผิด
Richard Hardy

3

ผลิตภัณฑ์ 1200 เป็นตัวขับเคลื่อนหลักของมิติของปัญหาของคุณ ตอนนี้คุณมี 25 งวดเท่านั้น นี่เป็นข้อมูลน้อยมากไม่เพียงพอที่จะทำการวิเคราะห์ความสัมพันธ์แบบครอบคลุมใด ๆ คุณไม่มีข้อมูลที่จะคาดการณ์ผลิตภัณฑ์ทั้งหมดพร้อมกันโดยไม่ลดขนาดข้อมูล การกำจัด VARMA และแบบจำลองเชิงทฤษฎีอื่น ๆ เป็นไปไม่ได้ที่จะจัดการกับสัมประสิทธิ์ของโมเดลเหล่านี้มีจำนวนมากเกินไปที่จะประเมินได้

พิจารณาการวิเคราะห์ความสัมพันธ์อย่างง่าย คุณต้องการ (1200x1200 + 1200) / 2 เซลล์ในเมทริกซ์ความแปรปรวนร่วม / สหสัมพันธ์ คุณมีเพียง 25 จุดข้อมูล เมทริกซ์จะถูกจัดอันดับอย่างมีประสิทธิภาพจนถึงระดับมหาศาล คุณกำลังจะทำอะไร? ในวงกว้างคุณมีสองวิธีง่าย ๆ : แยกการพยากรณ์และตัวแบบแฟคเตอร์

วิธีแรกชัดเจน: คุณเรียกใช้แต่ละผลิตภัณฑ์อย่างอิสระ รูปแบบคือการจัดกลุ่มพวกเขาด้วยคุณสมบัติบางอย่างเช่นภาคเช่น "ปิดบุรุษ"

di=jFjβji+eiFj

หากเป็นปัจจัยภายนอกคุณจะต้องได้รับ betas โดยการถดถอยซีรีส์จากปัจจัยเหล่านี้แยกกัน สำหรับ PCA คุณสามารถทำ PCA ที่แข็งแกร่งและรับปัจจัยสองสามประการแรกกับน้ำหนักของพวกเขาที่คุณเป็น betas

F^j


ฉันเห็นประเด็นของคุณเกี่ยวกับช่วงเวลาประมาณ 25 ช่วงสำหรับช่วงเวลาสั้น ๆ แต่ถ้าเป็นค่ารายเดือน จากนั้น OP มีข้อมูลรายเดือนสองปีซึ่งเพียงพอที่จะบันทึกตามฤดูกาลหรืออย่างน้อยก็ใช้การปรับให้เรียบแบบเอ็กซ์โพเนนเชียลเรียบง่ายใช่ไหม?
Skander H.

@SkanderH., 25 คะแนนอาจเพียงพอที่จะเรียกใช้หนึ่งชุด (เช่นแต่ละชุดด้วยตัวเอง) หรือรวม ประเด็นของฉันคือว่ามันไม่เพียงพอที่จะเรียกใช้ในฐานะระบบ
Aksakal

หรืออาจเป็นปัจจัยภายนอกเช่นที่คุณได้รับจากการวิเคราะห์ PCA บางทีภายนอก ?
Richard Hardy

1

ผมไม่แน่ใจว่าถ้าคุณมีความสนใจในการแก้ปัญหาเมฆตาม แต่ Amazon ทำให้ขั้นตอนวิธีการที่พวกเขาเรียกว่า "DeepAR" สามารถใช้ได้ผ่าน AWS SageMaker เท่าที่เห็นนี่

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

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

น่าเสียดายที่ฉันสามารถบอกได้ว่าพวกเขาไม่ได้ใช้อัลกอริทึมนี้สำหรับการใช้งานแบบออฟไลน์ / แบบโฮสต์ด้วยตนเอง

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