วิธีการทำนายอนุกรมเวลาหนึ่งครั้งจากอนุกรมเวลาอื่นหากสัมพันธ์กัน


14

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

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

แต่หนึ่งเดือนในเดือนเมษายนคุณสังเกตเห็นว่าเรือดำน้ำลืมที่จะซ่อนตัวเองดังนั้นคุณจึงมีชุดพิกัดสำหรับทั้งเรือดำน้ำและเรือตลอดการเดินทาง 1,000 ครั้ง เมื่อใช้ข้อมูลนี้คุณต้องการสร้างแบบจำลองเพื่อทำนายเส้นทางของเรือดำน้ำที่ซ่อนอยู่ซึ่งเป็นเพียงการเคลื่อนไหวของเรือ พื้นฐานที่ไร้เดียงสาคือการพูดว่า "ตำแหน่งเรือดำน้ำเดา =" ตำแหน่งปัจจุบันของเรือ "แต่จากข้อมูลเดือนเมษายนที่มองเห็นเรือดำน้ำคุณสังเกตเห็นว่ามีแนวโน้มที่เรือดำน้ำจะอยู่หน้าเรือสักหน่อยดังนั้น" ตำแหน่งเรือดำน้ำ guess = ตำแหน่งของเรือใน 1 นาที "เป็นการคาดการณ์ที่ดียิ่งขึ้นนอกจากนี้ข้อมูลเมษายนแสดงว่าเมื่อเรือหยุดในน้ำเป็นระยะเวลานานเรือดำน้ำน่าจะลาดตระเวนน่านน้ำชายฝั่งไกลออกไป แน่นอน.

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

ขอบคุณที่อ่านทั้งหมดนี้และฉันยินดีที่จะชี้แจงอะไร


5
วิธีหนึ่งที่อาจทำให้การสร้างแบบจำลองของคุณง่ายขึ้นคือการใช้พิกัดเชิงขั้วแทนแบบคาร์ทีเซียน หากคุณตั้งจุดเริ่มต้นเท่ากับเรือศัตรูและมีเรือหันหน้าไปทางทิศเหนือเสมอแล้วคุณอาจจะบอกว่าบางอย่างเช่นตำแหน่งของย่อยในเวลาเป็น( R ( ทีเจ ) , θ ( ทีเจ ) )กับRเป็นอยู่ ระยะทางและมุมθเป็น ตอนนี้เราคาดหวัง| θ | มีขนาดเล็กเนื่องจากย่อยมักจะอยู่ด้านหน้าของเรือและrควรมีขนาดเล็ก แต่ไม่ใกล้เคียงกับศูนย์ คุณยังมีtj(r(tj),θ(tj))rθ|θ|rกำลังใหญ่ขึ้นสำหรับเรือที่หยุดชั่วคราว r
ความน่าจะเป็นทาง

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

ขอบคุณสำหรับคำแนะนำ สิ่งหนึ่งที่ฉันกำลังดิ้นรนกับพิกัดเชิงขั้วสำหรับคือถ้าฉันลองและทำนายตัวแปรมุมมันจะ "วนรอบ" ดังนั้น 0 == 360 ซึ่งไม่สมเหตุสมผลในมุมมองการทำนาย ข้อเสนอแนะวิธีการจัดการกับมัน?
Cargoship และ Submarine

@probabilityislogic หลังจากคิดเกี่ยวกับเรื่องนี้อีกเล็กน้อยมันจะสมเหตุสมผลหรือไม่ที่จะใช้พิกัดเชิงขั้ว แต่ใช้ sin (theta) แทน theta เป็นตัวแปรในการทำนาย แม้ว่ามันจะทำตัวเหมือน delta_y มากกว่า
Cargoship and Submarine

เกี่ยวกับการใช้พิกัดเชิงขั้วคุณอาจต้องการที่จะอ่านเกี่ยวกับทิศทางสถิติ
steadyfish

คำตอบ:


3

ต่อไปนี้เป็นวิธีการที่ไม่ใช้ข้อมูล "บริบท" ใด ๆ นั่นคือไม่สามารถคำนึงถึงข้อเท็จจริงที่ว่า "sub กำลังติดตามเรือรบ" ในทางกลับกันมันง่ายที่จะเริ่มต้นด้วย:

แสดงโดย

xsub(t),ysub(t)

xship(t),yship(t)

t

xdist(t)=xship(t)xsub(t)

ydist(t)=yship(t)ysub(t)

คำแนะนำของฉันคือคุณทำนายแต่ละสิ่งแยกกัน (คุณสามารถผูกมันไว้ด้วยกันในภายหลัง)

x

แล้วก็

xdist(t)=100±10wiggle(t)

Wผมก.ก.ล.อี"ทำหน้าที่เป็นตัวแปรขาว - เสียงเกาส์ซึ่งมีค่าเฉลี่ยศูนย์และความแปรปรวนของหน่วย

ตอนนี้ (ยังคงเพ่งความสนใจไปที่ x ประสานงานเรื่องราวสำหรับ Y เหมือนกัน) ถ้า Wผมก.ก.ล.อี ฟังก์ชั่นเป็นเสียงสีขาวคุณจะสามารถคำนวณค่าเฉลี่ย μ และค่าเบี่ยงเบนมาตรฐาน σ ของซีรีส์ xdผมsเสื้อ และเขียน

xdผมsเสื้อ(เสื้อ)=μ+σWx(เสื้อ)

เนื่องจากคุณมีข้อมูลจริงคุณสามารถคำนวณอนุกรมเวลาได้ Wx(เสื้อ)และดูว่าเป็นไปตามการแจกแจงแบบเกาส์ (เช่นปกติ) ถ้าเป็นเช่นนั้นหรือแม้ว่าจะเป็นการแจกแจงใด ๆ ก็ตามที่คุณรู้จักคุณก็สามารถสร้างคุณค่าและคาดการณ์ได้xdผมsเสื้อ.

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

Polynomial base + Cyclic pattern + Bounded randomness

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

มีเครื่องมือที่สามารถช่วยคุณได้ นี่คือสองสิ่งที่ฉันรู้:

  1. DTREG (ใบอนุญาตการประเมินผล 30 วัน)
  2. Microsoft Time Series Algorithmซึ่งเป็นส่วนหนึ่งของผลิตภัณฑ์ SQL Server ขณะนี้ฉันกำลังใช้รุ่นประเมินผล 180 วันใช้งานง่าย

นี่คือภาพหน้าจอจากเครื่องมือ SQL Server (ส่วนที่เป็นจุดคือการทำนาย):

enter image description here

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

คุณไม่ต้องรู้ว่า ARIMA ทำงานอย่างไรเพื่อใช้เครื่องมือเหล่านี้ แต่ฉันคิดว่ามันง่ายกว่าเสมอหากคุณมีบริบทเนื่องจากมี "พารามิเตอร์แบบจำลอง" ที่จะตั้งค่า ฯลฯ


เครื่องมือ ARIMA สำหรับ R: stat.ethz.ch/R-manual/R-patched/library/stats/html/arima.html
zzk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.