किसी अन्य समय-श्रृंखला से एक समय-श्रृंखला की भविष्यवाणी कैसे करें, यदि वे संबंधित हैं


14

मैं एक साल से अधिक प्रगति के बिना इस समस्या को हल करने की कोशिश कर रहा हूं। यह एक शोध परियोजना का एक हिस्सा है जो मैं कर रहा हूं, लेकिन मैं इसे एक कहानी उदाहरण के साथ समझाऊंगा जो मैंने बनाया था, क्योंकि समस्या का वास्तविक डोमेन थोड़ा भ्रमित (आंख-ट्रैकिंग) है।

आप एक दुश्मन के जहाज पर नज़र रखने वाले एक विमान हैं जो समुद्र के पार यात्रा करते हैं, इसलिए आपने जहाज के (x, y, time) निर्देशांक की एक श्रृंखला एकत्र की है। आप जानते हैं कि एक छिपी हुई पनडुब्बी इसकी रक्षा के लिए जहाज के साथ यात्रा करती है, लेकिन जब उनके पदों के बीच संबंध होता है, तो पनडुब्बी अक्सर जहाज से भटक जाती है, इसलिए जब यह अक्सर इसके पास होता है, तो यह दूसरी तरफ भी हो सकता है दुनिया कभी-कभार। आप पनडुब्बी के मार्ग की भविष्यवाणी करना चाहते हैं, लेकिन दुर्भाग्य से यह आपसे छिपा हुआ है।

लेकिन अप्रैल में एक महीने आप पनडुब्बी को खुद को छिपाने के लिए भूल जाते हैं, इसलिए आपके पास 1,000 यात्राओं के दौरान पनडुब्बी और जहाज दोनों के लिए निर्देशांक की एक श्रृंखला है। इस डेटा का उपयोग करते हुए, आप केवल जहाज की चाल को देखते हुए छिपी हुई पनडुब्बी के मार्ग का अनुमान लगाने के लिए एक मॉडल बनाना चाहेंगे। अनुभवहीन आधार रेखा को "पनडुब्बी स्थिति का अनुमान =" जहाज की वर्तमान स्थिति "कहना होगा, लेकिन अप्रैल के आंकड़ों से जहां पनडुब्बी दिखाई दे रही थी, आप नोटिस करते हैं कि पनडुब्बी के लिए जहाज से थोड़ा आगे रहने की प्रवृत्ति है, इसलिए पनडुब्बी की स्थिति अनुमान = 1 मिनट में जहाज की स्थिति "एक और भी बेहतर अनुमान है। इसके अलावा, अप्रैल के आंकड़ों से पता चलता है कि जब जहाज विस्तारित अवधि के लिए पानी में रुकता है, तो पनडुब्बी के तटीय पानी में गश्त करने की संभावना दूर होती है। अन्य पैटर्न होते हैं। बेशक।

पनडुब्बी के मार्ग की भविष्यवाणी करने के लिए, अप्रैल डेटा को प्रशिक्षण डेटा के रूप में देखते हुए आप इस मॉडल का निर्माण कैसे करेंगे? मेरा वर्तमान समाधान एक तदर्थ रेखीय प्रतिगमन है जहां कारक "ट्रिप टाइम", "शिप का एक्स कोऑर्डिनेट", "1 दिन के लिए जहाज बेकार" था, आदि और फिर आर वेट्स का पता लगाते हैं और क्रॉस-वेलिडेशन करते हैं। । लेकिन मैं वास्तव में अप्रैल डेटा से इन कारकों को स्वचालित रूप से उत्पन्न करने का एक तरीका पसंद करूंगा। इसके अलावा, एक मॉडल जो अनुक्रम या समय का उपयोग करता है वह अच्छा होगा, क्योंकि रैखिक प्रतिगमन नहीं करता है और मुझे लगता है कि यह प्रासंगिक है।

यह सब पढ़ने के लिए धन्यवाद और मुझे कुछ भी स्पष्ट करने में खुशी होगी।


5
एक तरीका जो आपके मॉडल को बनाने में आसान बना सकता है वह है कार्टेशियन के बजाय ध्रुवीय समन्वय का उपयोग करना। आप सेट करते हैं मूल दुश्मन के जहाज के बराबर, और हमेशा पूर्व की ओर मुंह जहाज है, तो आप समय में उप की स्थिति की तरह कुछ कह सकते हैं है ( आर ( टी जे ) , θ ( टी जे ) ) के साथ आर किया जा रहा है दूरी और θ कोण होना। अब हम उम्मीद करते हैं | θ | छोटा होना क्योंकि उप आमतौर पर जहाज के सामने होता है, और आर छोटा होना चाहिए लेकिन शून्य के करीब नहीं होना चाहिए (अन्यथा उप जहाज में दुर्घटनाग्रस्त हो जाता है)। आपके पास भी हैtj(r(tj),θ(tj))rθ|θ|r जहाजों को रोकने के लिए बड़ा हो रहा है। r
प्रोबेबिलिसलॉजिक

2
मैं प्रोबेबिलिसोलॉजिक के समान कुछ सुझाव देने जा रहा था - आपको एक चर की आवश्यकता है जो जहाज और उप के बीच की दूरी है। ध्रुवीय निर्देशांक के बारे में अच्छी बात यह है कि यह जानकारी, साथ ही दिशात्मकता भी शामिल है। फिर आप इस नए चर पर एक रेखीय प्रतिगमन की कोशिश कर सकते हैं।
शिक्षार्थी

सुझाव के लिए धन्यवाद। एक बात जो मैं ध्रुवीय निर्देशांक के साथ संघर्ष कर रहा हूं वह यह है कि अगर मैं कोण चर की कोशिश करता हूं और भविष्यवाणी करता हूं, तो यह "लगभग" = 0 = 360 पर लूप करता है, जो कि भविष्यवाणी के दृष्टिकोण से कोई मतलब नहीं है। किसी भी सुझाव से निपटने के लिए कैसे?
कारगशिप और सबमरीन

@probabilityislogic इस बारे में थोड़ा और सोचने के बाद, क्या यह ध्रुवीय निर्देशांक का उपयोग करने के लिए समझ में आएगा, लेकिन भविष्यवाणी के चर के रूप में थीटा के बजाय पाप (थीटा) का उपयोग करें? हालाँकि तब यह एक डेल्टा_ की तरह अधिक व्यवहार करेगा।
कारगशिप और सबमरीन

ध्रुवीय निर्देशांक के उपयोग के बारे में, आप दिशात्मक सांख्यिकी के बारे में पढ़ना चाह सकते हैं ।
स्टेफिश

जवाबों:


3

यहाँ एक दृष्टिकोण है जो किसी भी "प्रासंगिक" जानकारी का उपयोग नहीं करता है अर्थात यह इस तथ्य को ध्यान में रखने में विफल है कि "एक उप एक जहाज का अनुसरण कर रहा है"। दूसरी ओर से शुरू करना आसान है:

द्वारा निरूपित करें

xsub(t),ysub(t)

xship(t),yship(t)

t

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

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

My suggestion is that you predict each of these separately (you can tie them together later).

Let's take a moment to picture what these look like. Let's focus on the x-coordinate, and let's say that the ship is moving towards the right with the sub following behind it. Suppose the sub is around 100 meters behind the ship, with a deviation of say 10 meters.

Then

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

You could then model the "wiggle" function as a Gaussian white-noise variable having zero mean and unit variance.

Now (still focussing on the x coordinate, the story for y is the same) if the wiggle function were white noise, you would be able to compute the mean μ and the standard deviation σ of the series xdist and write

xdist(t)=μ+σWx(t)

Since you have actual data, you can compute the time-series Wx(t) and see if it follows a Gaussian (i.e. Normal) distribution. If it does, or even if it is any distribution you recognize, you could then generate values and make predictions for xdist.

Another strategy people employ (which I think will work for you) is that they break up their series into

Polynomial base + Cyclic pattern + Bounded randomness

In the case of a submarine and a ship, the polynomial part would probably be constant and the cyclic part a sum of sines and cosines (from the waves of the ocean...). This may not be the case for eye-tracking.

There are tools which can figure this out for you. Here are two that I know of:

  1. DTREG (30 day evaluation license)
  2. Microsoft Time Series Algorithm which is part of their SQL Server product. I am currently using their 180-day evaluation edition, it is easy to use.

Here is a screenshot from the SQL Server tool (the dotted part is the prediction):

enter image description here

One algorithm they use is called ARIMA. Wanting to learn how it works, I did some Googling and found this book: First Course on Time Series (and don't worry, you don't need to have SAS to follow along. I don't.). It is very readable.

You don't have to know how ARIMA works to use these tools, but I think it is always easier if you have context, since there are "model parameters" to be set etc.


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.