การทำนายอนุกรมเวลาโดยใช้ ARIMA กับ LSTM


64

ปัญหาที่ฉันจัดการคือการทำนายค่าอนุกรมเวลา ฉันกำลังดูซีรีส์ครั้งเดียวในแต่ละครั้งและตามตัวอย่างเช่น 15% ของข้อมูลอินพุตฉันต้องการทำนายค่าในอนาคต จนถึงตอนนี้ฉันเจอสองรุ่น:

  • LSTM (หน่วยความจำระยะสั้นระยะยาวคลาสของเครือข่ายประสาทที่เกิดขึ้นอีก)
  • ARIMA

ฉันลองทั้งสองและอ่านบทความเกี่ยวกับพวกเขา ตอนนี้ฉันพยายามทำความเข้าใจให้ดีขึ้นเกี่ยวกับวิธีเปรียบเทียบทั้งสอง สิ่งที่ฉันได้พบจนถึง:

  1. LSTM ทำงานได้ดีขึ้นหากเราจัดการกับข้อมูลจำนวนมากและมีข้อมูลการฝึกอบรมเพียงพอในขณะที่ ARIMA จะดีกว่าสำหรับชุดข้อมูลขนาดเล็ก (ถูกต้องหรือไม่)
  2. ARIMA ต้องการชุดพารามิเตอร์(p,q,d)ที่ต้องคำนวณตามข้อมูลในขณะที่ LSTM ไม่ต้องการตั้งค่าพารามิเตอร์ดังกล่าว อย่างไรก็ตามมีพารามิเตอร์หลายอย่างที่เราต้องปรับแต่งสำหรับ LSTM
  3. แก้ไข:หนึ่งความแตกต่างที่สำคัญระหว่างสองที่ฉันสังเกตเห็นในขณะที่อ่านบทความที่ดีที่นี่คือ ARIMA สามารถทำงานได้ดีในซีรีส์เวลานิ่ง (ที่ไม่มีฤดูกาลแนวโน้มและอื่น ๆ ) และคุณต้องดูแลว่าถ้า ต้องการใช้ ARIMA

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

ฉันต้องพูดถึงว่าตอนแรกฉันกำลังจัดการกับข้อมูลสตรีมมิ่ง แต่ตอนนี้ฉันกำลังใช้ชุดข้อมูล NABซึ่งรวมถึง 50 ชุดข้อมูลที่มีขนาดสูงสุด 20k จุดข้อมูล



คุณจะช่วยกรุณาแบ่งปันรหัสของ LSTM ได้ไหม และขอบคุณ.
ช่วย

คำตอบ:


25

Statement 1 ถูกต้อง Statement 2 ถูกต้อง แต่ต้องการรายละเอียดเพิ่มเติมและ Statement 3 ไม่ถูกต้องสำหรับ ARIMA ตามฤดูกาล:

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

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

อนุกรมเวลาโดยทั่วไป:

โดยทั่วไปอนุกรมเวลานั้นยากที่จะคาดการณ์ หากพวกเขาคาดการณ์ได้ง่ายนักวิทยาศาสตร์ด้านข้อมูลทั้งหมดก็จะร่ำรวยโดยการทำนายมูลค่าของหุ้นทั้งหมดอย่างแม่นยำ ความจริงก็คือกองทุนเฮดจ์ฟันด์โดยเฉลี่ยแล้วไม่ได้มีประสิทธิภาพสูงกว่าตลาดและโดยทั่วไปการคาดการณ์อนุกรมเวลานั้นแย่มากและใช้กับระยะเวลาสั้น ๆ เท่านั้น ปัญหาหลักคือว่ามีจำนวนมากของเสียงมีอิทธิพลที่ซ่อนอยู่มากมายแบบจำลองง่ายเกินไปผู้มีอิทธิพลไม่ทำงานตามที่เราคิดว่าพวกเขาควรมีอิทธิพลซึ่งกันและกันระหว่าง linearity และ nonlinearity เป็นบอบบางและสับสน ... ad infinitum

ARIMA

คุณไม่ถูกต้องในการประเมินของคุณว่า ARIMA ต้องการให้อนุกรมเวลาอยู่กับที่เพื่อคาดการณ์ ARIMA ที่ไม่มีฤดูกาลมีค่าอินพุตสามค่าเพื่อช่วยควบคุมการปรับให้เรียบ, ความคงที่และการพยากรณ์ ARIMA (p, d, q) โดยที่:

  • p คือจำนวนเงื่อนไขการตอบโต้อัตโนมัติ
  • d คือจำนวนของความแตกต่างที่ไม่ใช่ฤดูกาลที่จำเป็นสำหรับ stationarity และ
  • q คือจำนวนข้อผิดพลาดที่คาดการณ์ล่าช้าในสมการทำนาย

ตามฤดูกาล ARIMA มีค่าอินพุตหกค่า ARIMA (p, d, q, P, D, Q) โดยที่:

  • P คือจำนวนคำศัพท์อัตโนมัติตามฤดูกาล
  • D คือจำนวนของความแตกต่างตามฤดูกาลและ
  • Q คือจำนวนคำศัพท์เฉลี่ยเคลื่อนที่ตามฤดูกาล

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

LSTM

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

  • อาจใช้เวลานานในการรัน
  • มักต้องใช้ข้อมูลในการฝึกอบรมมากกว่ารุ่นอื่นและ
  • มีพารามิเตอร์อินพุตจำนวนมากเพื่อปรับแต่ง

การตรวจสอบความถูกต้องและการเปรียบเทียบรูปแบบ:

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

หวังว่านี่จะช่วยและขอให้โชคดี!


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

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

ฉันรู้ว่านี่เป็นอายุมาก แต่ฉันไม่เห็นด้วยที่นี่ d, D พารามิเตอร์ต่างกันอย่าง @ AN6U5 พูด แต่เหตุผลที่ทำให้เกิดความแตกต่างเหล่านี้ในตอนแรกคือการบังคับใช้ปัญหาที่คงที่ ในความเป็นจริงการตีความหนึ่งของแบบจำลอง ARIMA นั้นเป็นเพียงแค่การถดถอยเชิงเส้นพร้อมเงื่อนไขในการบังคับใช้ความคงที่ในอนุกรมเวลา
Ryan

6

กำลังเพิ่มการตอบกลับของ @ AN6U5

จากมุมมองทางทฤษฎีล้วนๆบทความนี้แสดงให้เห็นว่า RNN เป็นผู้ประมาณที่เป็นสากล ฉันยังไม่ได้อ่านรายละเอียดกระดาษดังนั้นฉันไม่รู้ว่าสามารถใช้หลักฐานกับ LSTM ได้หรือไม่ แต่ฉันสงสัย ปัญหาที่ใหญ่ที่สุดกับ RNN โดยทั่วไป (รวมถึง LSTM) ก็คือพวกเขายากที่จะฝึกอบรมเนื่องจากการไล่ระดับสีสำรวจและปัญหาการไล่ระดับสีหายไป ขีด จำกัด ในทางปฏิบัติสำหรับ LSTM ดูเหมือนจะอยู่ที่ประมาณ 200 ~ ขั้นตอนโดยมีการไล่ระดับสีมาตรฐานและการเริ่มต้นแบบสุ่ม และตามที่กล่าวไว้โดยทั่วไปสำหรับรูปแบบการเรียนรู้ลึก ๆ เพื่อให้ทำงานได้ดีคุณต้องมีข้อมูลจำนวนมากและการปรับแต่งมากมาย

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


2

แบบจำลอง ARIMA เป็นแบบเชิงเส้นและแบบ LSTM ไม่เชิงเส้น โมเดลอนุกรมเวลาแบบไม่เชิงเส้นแบบ Parametric อื่น ๆ ที่นักสถิติได้ศึกษาคือแบบจำลอง Threshold Autoregressive (TAR) และแบบจำลองการเปลี่ยนภาพอัตโนมัติแบบเปลี่ยนผ่านอย่างราบรื่น (STAR) tsDyn ของแพ็คเกจ R ใช้โมเดลเหล่านี้

ฉันสงสัยว่ารุ่นของ STAR ทำอย่างไรกับ LSTM


2

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


1

เป็นกรณีที่รุนแรงฉันมีโอกาสได้ศึกษาเกี่ยวกับการพยากรณ์ Forex (อัตราแลกเปลี่ยนเงินตราต่างประเทศ) และเปรียบเทียบการแสดงอย่างเข้มข้นของ LSTM, windowed-MLP และ ARIMA บทความหลาย ๆ เรื่องบอกว่าอนุกรมเวลาของ Forex อยู่ใกล้กับซีรีย์เดินสุ่ม (มันไม่หยุดนิ่งอย่างสิ้นเชิง) อัลกอริธึมเหล่านี้ไม่สามารถทำนายอัตราสปอตของวันถัดไปได้ ตัวอย่างเช่นหากไม่มีการเปลี่ยนแปลง (หรือเล็กน้อย) แล้วมันจะรักษามูลค่าปัจจุบันและดูเหมาะสม อย่างไรก็ตามหากมีการเปลี่ยนแปลงอย่างฉับพลัน (เป็นกอบเป็นกำ) ในอัตราสปอตของวันพรุ่งนี้มันก็จะล้มเหลวในการทำนาย ปัญหาคือไม่มีข้อมูลใด ๆ ที่จะเรียนรู้จากข้อมูลการฝึกอบรม (บอกว่าประวัติอัตราสปอตในอดีต 10 ปี) ไม่ว่าจะมีขนาดใหญ่พอหรือไม่เพราะมันเป็นการสุ่มอย่างสมบูรณ์ (อาจเป็นเพราะความรู้สึกของผู้ค้าแลกเปลี่ยน ... ) .

ในความเป็นจริง LSTM ที่มีเพียง '1' lag หรือ ARIMA ที่มี (1,0,0) จะทำงานได้ดีที่สุดเนื่องจากการเก็บข้อมูลที่มีมากกว่า 1 time lag นั้นไม่ได้ช่วยอะไรเลย สำหรับอนุกรมเวลาแบบนี้ฉันจะบอกว่าในแง่ของประสิทธิภาพการติดตาม 1) ARIMA, 2) LSTM, 3) MLP ความคิดเห็นล่าสุด ... MLP ที่มีพารามิเตอร์เศรษฐกิจมหภาค / จุลภาค (เช่นความแตกต่างของ GDP อัตราพันธบัตรราคาน้ำมันดิบดัชนีดอลลาร์และอื่น ๆ ) เนื่องจากคุณสมบัติเพิ่มเติมไม่ได้ผลเช่นกัน

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