สนับสนุนการถดถอยเวกเตอร์สำหรับการทำนายอนุกรมเวลาหลายตัวแปร


22

มีใครพยายามทำนายอนุกรมเวลาโดยใช้การถดถอยแบบเวกเตอร์สนับสนุนหรือไม่

ฉันเข้าใจการสนับสนุนเวกเตอร์แมชชีนและเข้าใจการสนับสนุนการถดถอยเวกเตอร์เป็นบางส่วน แต่ฉันไม่เข้าใจว่าจะสามารถใช้โมเดลอนุกรมเวลาโดยเฉพาะอนุกรมเวลาหลายตัวแปรได้อย่างไร

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

แก้ไข: เพื่ออธิบายรายละเอียดเล็กน้อยขอให้ฉันพยายามอธิบายด้วยตัวอย่างราคาหุ้น

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


คุณสามารถโพสต์เอกสารที่คุณอ้างถึงได้หรือไม่?
Ram Ahluwalia

1
การทำนายอนุกรมเวลาด้วยเครื่องถดถอยเวกเตอร์สนับสนุนท้องถิ่น, Rodrigo Fernandez, svms.org/regression/Fern.pdf สนับสนุน Vector Regression สำหรับการพยากรณ์อนุกรมเวลาทางการเงิน Wei Hao และ Songnian Yu, springerlink.com/index/946802600u4552m8.pdf
raconteur

คำตอบ:


18

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

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

xxผมYผมxเสื้อYเสื้อคือ (พูด) ผลตอบแทนต่อสัปดาห์ของหุ้นดังกล่าว ดังนั้น SVR ของคุณเรียนรู้วิธีทำนายผลตอบแทนของสัปดาห์ต่อไปนี้โดยพิจารณาจากสเปรด MA และกระแส 20 วัน (กลยุทธ์นี้ใช้งานไม่ได้ดังนั้นอย่าตื่นเต้นเกินไป))

หากเอกสารที่คุณอ่านนั้นยากเกินไปคุณอาจไม่ต้องการลองใช้ SVM ด้วยตัวเองเพราะมันอาจซับซ้อน IIRC มีแพ็คเกจ "kernlab" สำหรับ R ที่ใช้ Kernel SVM พร้อมด้วยจำนวนของเคอร์เนลที่รวมอยู่ด้วยดังนั้นจะช่วยให้สามารถเริ่มต้นใช้งานได้อย่างรวดเร็ว


@ Jason ขอบคุณสำหรับการตอบสนอง ฉันสับสนว่าจะทำให้ข้อมูลเก่ามีความสำคัญน้อยลงในระหว่างการฝึกอบรมอย่างไรเช่นจะให้ความสำคัญกับตัวอย่าง 100 ตัวอย่างล่าสุดแทนที่จะเป็น 10,000 ตัวอย่าง นอกจากนี้ฉันมีประสบการณ์การทำงานกับ SVM ใน Python ดังนั้นฉันจึงต้องการใช้มัน
raconteur

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

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

2
โอ้ฉันเห็นสิ่งที่คุณหมายถึงตอนนี้ คำตอบสั้น ๆ คือคุณทำไม่ได้อย่างน้อยก็ไม่ใช่ถ้าไม่มีการปรับโครงสร้าง SVM เพื่อทำความเข้าใจแนวคิดเรื่องความใหม่ SVM ถูกกำหนดในรูปแบบของคู่ xy, ไม่ได้สั่งคู่ xy, และฟังก์ชันวัตถุประสงค์มันย่อเล็กสุดเป็นฟังก์ชันของคู่ดังกล่าว OTOH คุณสามารถใช้ SVM แยกกันหลายตัวได้หนึ่งรายการในเดือนที่ผ่านมาหนึ่งปีที่ผ่านมาและอีกสองปีที่ผ่านมา - จากนั้นทำค่าเฉลี่ยถ่วงน้ำหนักของการตอบกลับที่คุณได้รับตามความชอบส่วนตัวของคุณสำหรับ vs ล่าสุด . ข้อมูลเก่า (เช่น 0.7 * เดือนที่ผ่านมา + 0.2 * ปีที่ผ่านมา + 0.1 * 2 ปีที่ผ่านมา)
วิลเลียม

@ วิลเลียม .. คุณมีข้อเสนอแนะใดเกี่ยวกับอัลกอริทึมการเรียนรู้ของเครื่องที่จะดีที่สุดสำหรับการทำนายอนุกรมเวลา (ปัญหาเดียวกับที่ raconteur ถาม) นอกเหนือจาก SVM หรือไม่ คำตอบจะแตกต่างกันหรือไม่เมื่อใช้กับโดเมนอื่น เช่นราคาหุ้นเทียบกับการคาดการณ์ห่วงโซ่อุปทาน (การคาดการณ์อุปสงค์ของผลิตภัณฑ์ที่เรากำลังขาย) ..
Lam

1

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

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

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

โชคดี!


ยินดีต้อนรับสู่เว็บไซต์ของเรา!
kjetil b halvorsen

0

มีตัวอย่างของQuantum Financier ที่ใช้ SVM ในการคาดการณ์ชุดการเงิน มันสามารถแปลงได้อย่างง่ายดายจากระบบการจำแนก (ยาว / สั้น) เป็นระบบการถดถอย


1
เรียนพระเจ้าโปรดไม่มีใครใช้กลยุทธ์นั้น! นั่นเป็นวิธีที่ผู้เริ่มต้นได้รับการรมควันโดย Wall St :( เคล็ดลับที่เก่าแก่ที่สุดในหนังสือเล่มนี้คือการดัดแปลงรูปแบบสถิติโดยใช้การวิเคราะห์ทางเทคนิคพื้นฐานบางอย่างเช่น RSI ดังนั้น newbs คิดว่าพวกเขาได้หลงทอง
William

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