रोब हंडमैन के पोस्ट के संदर्भ में https://stats.stackexchange.com/a/1214/70282 से ऊपर
Find.freq फ़ंक्शन शानदार ढंग से काम करता है। मेरे द्वारा उपयोग किए जा रहे दैनिक डेटा सेट पर, यह 7 होने की आवृत्ति को सही ढंग से काम करता है।
जब मैंने इसे केवल सप्ताह के दिनों में आज़माया, तो यह बताया कि आवृत्ति 23 है, जो उल्लेखनीय रूप से 21.42857 = 29.6 * 5/7 के करीब है जो एक महीने में कार्य दिवसों की औसत संख्या है। (या इसके विपरीत 23 * 7/5 32 है।)
अपने दैनिक डेटा को देखते हुए, मैंने पहली अवधि लेने की एक कूबड़ के साथ प्रयोग किया, इसके द्वारा औसत और फिर अगली अवधि ढूंढना, आदि नीचे देखें:
find.freq.all = समारोह (एक्स) {
च = find.freq (x);
freqs = c (च);
जबकि (च> 1) {
= 1 शुरू; #also try start = f;
एक्स = period.apply (एक्स, seq (शुरू, लंबाई (एक्स), च), इसका मतलब यह);
च = find.freq (x);
freqs = c (freqs, च);
}
if (लंबाई (freqs) == 1) {return (freqs); }
के लिए (मैं 2 में: लंबाई (freqs)) {
freqs [i] = freqs [i] * freqs [i-1];
}
freqs [1: (लंबाई (freqs) -1)];
}
find.freq.all (dailyts) # मनोरंजक दैनिक डेटा
उपरोक्त (7,28) या (7,35) इस बात पर निर्भर करता है कि seq 1 या f से शुरू होता है। (ऊपर टिप्पणी देखें।)
जिसका अर्थ यह होगा कि msts (...) के लिए मौसमी अवधि (7,28) या (7,35) होनी चाहिए।
एल्गोरिथम मापदंडों की संवेदनशीलता को देखते हुए तर्क प्रारंभिक स्थितियों के प्रति संवेदनशील दिखाई देता है। 28 और 35 का मतलब 31.5 है जो एक महीने की औसत लंबाई के करीब है।
मुझे संदेह है कि मैंने पहिया को फिर से स्थापित किया, इस एल्गोरिथ्म का नाम क्या है? कहीं आर में बेहतर कार्यान्वयन है?
बाद में, मैंने 7 के माध्यम से 1 की सभी शुरुआतओं में उपरोक्त कोड चलाया और मुझे दूसरी अवधि के लिए 35,35,28,28,28,28,28 मिले। औसत 30 तक काम करता है जो एक महीने में दिनों की औसत संख्या है। दिलचस्प ...
कोई विचार या टिप्पणी?