रोब का अर्थ ओ (1) अद्यतन दक्षता के साथ अनुमान है


9

मैं इस अर्थ के एक मजबूत अनुमान की तलाश कर रहा हूं कि एक विशिष्ट संपत्ति है। मेरे पास तत्वों का एक सेट है जिसके लिए मैं इस आंकड़े की गणना करना चाहता हूं। फिर, मैं एक समय में एक नए तत्व जोड़ता हूं, और प्रत्येक अतिरिक्त तत्व के लिए मैं आंकड़े (एक ऑनलाइन एल्गोरिथ्म के रूप में भी जाना जाता है) को पुनर्गणना करना चाहूंगा। मैं चाहूंगा कि यह अपडेट गणना तेज़ हो, अधिमानतः O (1), यानी सूची के आकार पर निर्भर नहीं।

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

मैं मजबूत आँकड़ों के लिए किसी भी सुझाव की सराहना करूँगा जिसे कुशलतापूर्वक गणना / अद्यतन किया जा सकता है।


केवल डेटा के प्रारंभिक खंड का उपयोग क्यों नहीं किया जाता है - जैसे कि पहले 100 या पहले 1000 या जो कुछ भी - आउटलेर स्क्रीनिंग के लिए "बाड़" खड़ा करना? आपको उन्हें फिर से अपडेट करने की आवश्यकता नहीं है, इसलिए अतिरिक्त डेटा संरचनाओं को बनाए रखने की कोई आवश्यकता नहीं है।
whuber

@ जब मैं यह गारंटी नहीं दे सकता कि प्रारंभिक नमूना बाकी डेटा का प्रतिनिधित्व करेगा। उदाहरण के लिए, जिस क्रम में मुझे डेटा दिया गया है, वह यादृच्छिक नहीं है (ऐसे परिदृश्य की कल्पना करें जहां मुझे पहले उच्च मूल्य दिए गए हैं और फिर निम्न मान दिए गए हैं)।
बिटविंस

1
यह एक महत्वपूर्ण अवलोकन है। तात्पर्य यह है कि आपको सामान्य से अधिक देखभाल करने की आवश्यकता है, क्योंकि शुरू में आप मतलब उच्च आउटलायर्स का "मजबूत" अनुमान प्राप्त करेंगे। उस अनुमान को अपडेट करना जारी रखने से, आप सभी निचले मूल्यों को फेंक सकते हैं। इस प्रकार आपको एक डेटा संरचना की आवश्यकता होगी जिसमें डेटा के संपूर्ण वितरण के प्रमुख भाग रिकॉर्ड किए जाते हैं और समय-समय पर अद्यतन किए जाते हैं। विचारों के लिए "ऑनलाइन" और "मात्रात्मक" कीवर्ड के साथ हमारे धागे देखें। इस तरह के दो होनहार हैं आँकड़े.स्टैकएक्सचेंज . com / questions / 3372 और सांख्यिकी.स्टैकएक्सचेंज . com / q / 3377
whuber

मैं एक इनाम की पेशकश करेगा, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है
जेसन एस

1
@ व्ह्यूबर की पहली टिप्पणी में इस विचार को जारी रखने के लिए, आप अब तक देखे गए सभी डेटा से या के आकार का एक समान नमूना रैंडम सबसेट बनाए रख सकते हैं। यह सेट और संबंधित "बाड़" को ओ (1) समय में अपडेट किया जा सकता है। 1001000
इन्नो

जवाबों:


4

यह समाधान प्रश्न में एक टिप्पणी में @Innuo द्वारा किए गए सुझाव को लागू करता है:

आप इस प्रकार अब तक देखे गए सभी डेटा से 100 या 1000 के आकार का एक समान नमूना रैंडम सबसेट बनाए रख सकते हैं। यह सेट और संबंधित "बाड़" को समय में अपडेट किया जा सकता है ।O(1)

एक बार जब हम जानते हैं कि इस सबसेट को कैसे बनाए रखा जाए, तो हम ऐसे नमूने से आबादी के मतलब का अनुमान लगाने के लिए कोई भी तरीका चुन सकते हैं । यह एक सार्वभौमिक विधि है, जो कोई धारणा नहीं बनाता है, जो किसी भी इनपुट स्ट्रीम के साथ सटीकता के भीतर काम करेगा, जिसे मानक सांख्यिकीय नमूनाकरण सूत्रों का उपयोग करके भविष्यवाणी की जा सकती है। (सटीकता नमूना आकार के वर्गमूल के व्युत्क्रमानुपाती है।)


यह एल्गोरिथ्म डेटा एक नमूना आकार एक धारा के रूप में स्वीकार करता है , और नमूने की एक धारा को आउटपुट करता है जिसमें से प्रत्येक जनसंख्या का प्रतिनिधित्व करता है । विशेष रूप से, , (प्रतिस्थापन के बिना से आकार का एक सरल यादृच्छिक नमूना है ।x(t), t=1,2,,ms(t)X(t)=(x(1),x(2),,x(t))1its(i)mX(t)

ऐसा होने के लिए, यह माना जाता है कि प्रत्येक -mentment सबटेट के में में के अनुक्रमित होने की समान संभावना है । इसका मतलब यह है कि का तात्पर्य है प्रदान की गई बराबर है ।m{1,2,,t}xs(t)x(i), 1i<t,s(t)m/ttm

शुरुआत में हम केवल स्ट्रीम इकट्ठा करते हैं जब तक कि तत्वों को संग्रहीत नहीं किया जाता है। उस बिंदु पर केवल एक संभव नमूना है, इसलिए संभावना की स्थिति तुच्छ रूप से संतुष्ट है।m

एल्गोरिथ्म तब लेता है जब । अनिच्छा से मान लें कि लिए का एक सरल यादृच्छिक नमूना है । अनंतिम रूप से सेट । चलो एक समान यादृच्छिक चर (किसी भी पिछले निर्माण के लिए इस्तेमाल किया चर के स्वतंत्र होने )। यदि तो द्वारा यादृच्छिक रूप से चुने गए तत्व को बदलें वह पूरी प्रक्रिया है!t=m+1s(t)X(t)t>ms(t+1)=s(t)U(t+1)s(t)U(t+1)m/(t+1)sx(t+1)

स्पष्ट रूप से में होने की प्रायिकता । इसके अलावा, इंडक्शन परिकल्पना के अनुसार, में होने की प्रायिकता थी जब । प्रायिकता = इसे से हटा दिया जाएगा , शेष समता की इसकी संभावना को बताएगाx(t+1)m/(t+1)s(t+1)x(i)m/ts(t)itm/(t+1)×1/m1/(t+1)s(t+1)

mt(11t+1)=mt+1,

बिल्कुल जरूरत के रूप में। प्रेरण द्वारा, तब, में की सभी समावेशी संभावनाएं सही हैं और यह स्पष्ट है कि उन समावेशन के बीच कोई विशेष संबंध नहीं है। यह साबित करता है कि एल्गोरिथ्म सही है।x(i)s(t)

एल्गोरिथ्म दक्षता है क्योंकि प्रत्येक चरण के अधिक से अधिक दो यादृच्छिक संख्या की गणना में और की एक सरणी के सबसे एक तत्व पर मूल्यों बदल दिया है। भंडारण की आवश्यकता ।O(1)mO(m)

इस एल्गोरिथ्म के लिए डेटा संरचना नमूना के होते हैं सूचकांक के साथ एक साथ जनसंख्या का है कि यह नमूने हैं। प्रारंभ में हम लेते हैं और लिए एल्गोरिथ्म के साथ आगे बढ़ते हैं यहाँ एक है अद्यतन करने के लिए कार्यान्वयन के साथ एक मूल्य के उत्पादन । (तर्क की भूमिका निभाता है और है । सूचकांक कॉल करने वाले को बनाए रखा जाएगा।)stX(t)s=X(m)t=m+1,m+2,.R(s,t)x(s,t+1)ntsample.sizemt

update <- function(s, x, n, sample.size) {
  if (length(s) < sample.size) {
    s <- c(s, x)
  } else if (runif(1) <= sample.size / n) {
    i <- sample.int(length(s), 1)
    s[i] <- x
  }
  return (s)
}

इसे समझने और परखने के लिए, मैं माध्य के सामान्य (गैर-मजबूत) अनुमानक का उपयोग करूंगा और से अनुमानित माध्य की तुलना के वास्तविक माध्य (प्रत्येक चरण में देखा गया डेटा का संचयी सेट से करूँगा। )। मैंने कुछ कठिन इनपुट स्ट्रीम को चुना जो काफी सुचारू रूप से बदलता है लेकिन समय-समय पर नाटकीय छलांग लगाता है। का नमूना आकार काफी छोटा है, जिससे हमें इन भूखंडों में नमूना उतार-चढ़ाव देखने की अनुमति मिलती है।s(t)X(t)m=50

n <- 10^3
x <- sapply(1:(7*n), function(t) cos(pi*t/n) + 2*floor((1+t)/n))
n.sample <- 50
s <- x[1:(n.sample-1)]
online <- sapply(n.sample:length(x), function(i) {
  s <<- update(s, x[i], i, n.sample)
  summary(s)})
actual <- sapply(n.sample:length(x), function(i) summary(x[1:i]))

इस बिंदु पर मानों के onlineइस चल रहे नमूने को बनाए रखते हुए उत्पन्न अनुमानों का अनुक्रम है, जबकि प्रत्येक क्षण में उपलब्ध सभी डेटा से उत्पन्न औसत अनुमानों का अनुक्रम है । साजिश डेटा (ग्रे में), (काले रंग में), और इस नमूने प्रक्रिया के दो स्वतंत्र अनुप्रयोगों (रंगों में) को दिखाती है । समझौता अपेक्षित नमूना त्रुटि के भीतर है:50actualactual

plot(x, pch=".", col="Gray")
lines(1:dim(actual)[2], actual["Mean", ])
lines(1:dim(online)[2], online["Mean", ], col="Red")

आकृति


माध्य के मजबूत आकलनकर्ताओं के लिए, कृपया हमारी साइट खोजें और संबंधित शर्तें। विचार के लायक संभावनाओं के बीच Winsorized साधन और एम-आकलनकर्ता हैं।


यह मेरे लिए स्पष्ट नहीं है कि अस्वीकृति थ्रेशोल्ड इस दृष्टिकोण में कैसे दिखती है (उदाहरण के लिए सीमा से परे जो टिप्पणियों को आउटलेर के रूप में खारिज कर दिया गया है)। क्या आप उन्हें प्लॉट में जोड़ सकते हैं?
user603

@ user603 "रिजेक्शन थ्रेशोल्ड", या अर्थ का अनुमान लगाने के लिए जो भी मजबूत विधि का उपयोग किया जाता है, वह अप्रासंगिक है: आप जिस भी विधि का मतलब निकालना चाहते हैं उसे चुनें। (सभी मजबूत विधियाँ थ्रेशोल्ड को स्तंभित करने और डेटा को खारिज करने से काम नहीं करती हैं, बीटीडब्ल्यू।) यह summaryएक मजबूत संस्करण द्वारा प्रतिस्थापित करके मेरे उत्तर के कोड में किया जाएगा ।
whuber

इस उदाहरण में मेरे लिए कुछ स्पष्ट नहीं है। ग्रे डेटा "अच्छा" या "आउटलेयर" हैं। यदि पूर्व में, ऐसा लगता है कि फिट पक्षपाती है (यह उन्हें बेहतर रूप से फिट होना चाहिए क्योंकि स्थिति @ बिटवाइज़ के नीचे की प्रवृत्ति के समान होगी जिसे हम अनुसरण करना चाहेंगे)। यदि उच्च सूचकांक मूल्यों पर ग्रे डेटा आउटलेर है, तो ऐसा लगता है कि फिट ऊपर की तरफ पक्षपाती है। आप यहां क्या लक्ष्य रखना चाहते हैं? वर्तमान फिट उन दो परिदृश्यों के बीच फटा हुआ लगता है।
डेथकिल 14

@ नीचे दिए गए पाठ में बताया गया है कि आंकड़ा पूर्व में था, ग्रे डेटा डेटा की मूल धारा है। इसका चलन है काला वक्र। रंगीन वक्र एल्गोरिदम पर आधारित हैं। काली वक्र के सापेक्ष रंगीन घटता के ऊर्ध्वाधर विचलन नमूने में यादृच्छिकता के कारण हैं। किसी भी इंडेक्स पर विचलन की अपेक्षित मात्रा ग्रे इंडेक्स के मानक विचलन के समानुपाती होती है, जो कि इंडेक्स और नमूना आकार के वर्गमूल के व्युत्क्रमानुपाती होता है (इस उदाहरण में 50 के रूप में लिया गया)।
whuber

3

आप अपनी समस्या को पुनरावर्ती नियंत्रण चार्ट से संबंधित करने के बारे में सोच सकते हैं। ऐसा नियंत्रण चार्ट मूल्यांकन करेगा कि क्या एक नया अवलोकन नियंत्रण में है। यदि यह है, तो यह अवलोकन माध्य और विचरण के नए अनुमान में शामिल है (नियंत्रण सीमा निर्धारित करने के लिए आवश्यक)।

कुछ मजबूत, पुनरावर्ती, अविभाज्य नियंत्रण चार्ट की पृष्ठभूमि यहां पाई जा सकती है । गुणवत्ता नियंत्रण और नियंत्रण चार्ट पर क्लासिक ग्रंथों में से एक यहां ऑनलाइन उपलब्ध है

माध्य का उपयोग करते हुए, μt1 और एक विचरण σt12 इनपुट के रूप में, आप यह निर्धारित कर सकते हैं कि समय पर एक नया अवलोकन tकई दृष्टिकोणों से एक बहिरंग है। एक को घोषित करना होगाxt यदि यह मानक विचलन की एक निश्चित संख्या से बाहर है तो एक अधिकता μt1 (दिया हुआ σt12), लेकिन यह समस्याओं में चल सकता है यदि डेटा कुछ वितरणीय मान्यताओं के अनुरूप नहीं है। यदि आप इस सड़क पर जाना चाहते हैं, तो मान लीजिए कि आपने निर्धारित किया है कि एक नया बिंदु एक बाहरी नहीं है, और इसे अपने मतलबी अनुमान में शामिल करना चाहेंगे, जिसमें भूलने की कोई विशेष दर न हो। तब आप इससे बेहतर नहीं कर सकते:

μt=t1tμt1+1txt

इसी तरह, आपको पुनरावर्ती संस्करण को अपडेट करना होगा:

σt2=t1tσt12+1t1(xtμt)2

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

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

मुझे यह भी उल्लेख करना चाहिए कि ऑनलाइन निगरानी और नई टिप्पणियों को जोड़ने से पहले, आपको अनुमान लगाने की आवश्यकता होगी μ0 तथा σ02(एक प्रशिक्षण डाटासेट के आधार पर प्रारंभिक पैरामीटर मान) जो आउटलेर्स से प्रभावित नहीं होते हैं। यदि आपको संदेह है कि आपके प्रशिक्षण डेटा में आउटलेयर हैं, तो आप उन्हें अनुमान लगाने के लिए एक मजबूत विधि का उपयोग करने की एक बार की लागत का भुगतान कर सकते हैं।

मुझे लगता है कि इन लाइनों के साथ एक दृष्टिकोण आपकी समस्या के लिए सबसे तेजी से अद्यतन हो जाएगा।


1
नियंत्रण चार्ट का उपयोग करना एक दिलचस्प विचार है। ऐसा लगता है कि इस सवाल पर टिप्पणियों में उल्लिखित चुनौतियों को पार करना मुश्किल हो सकता है। गैर-स्थिर मामले में यदि आप पुराने मूल्यों को "भूल" रहे हैं तो ऐसा लगता है कि अनुमान अत्यधिक पक्षपाती हो सकते हैं। उदाहरण के लिए, आपके सुझाव कैसे दिए गए डेटा की एक धारा पर प्रदर्शन करेंगेxt=cos(πt/106)+2t/106? (यह बहुत धीरे-धीरे चला जाता है, अचानक पर कूदता है और बहुत धीरे-धीरे बढ़ जाता है, अचानक फिर से कूदता है, और इसलिए।)
whuber

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

(मैं आप में एक गणितज्ञ का पता लगाता हूं, क्योंकि यह "रोगविज्ञानी" के रूप में खारिज करने के लिए एक बहुत ही गणितीय कदम है जिसे आप संभाल नहीं सकते हैं :-)। लेकिन मैं आपके पूर्वानुमान से अलग होने की विनती करता हूं: @Innuo द्वारा सुझाए गए तरीकों की तरह वास्तव में ऐसे "विकृति विज्ञान" के खिलाफ रक्षा कर सकते हैं और बाकी सब कुछ वास्तविक दुनिया आप पर फेंक सकती है, खासकर जब यादृच्छिककरण को नमूनाकरण में शामिल किया जाता है।
whuber

दरअसल, मैं इस बात से सहमत हूं कि जिस समस्या का सामना करना पड़ता है उसे खारिज नहीं करना चाहिए। क्या आप कृपया मुझे उन तरीकों से जोड़ सकते हैं जिन पर चर्चा @ इन्नू ने की है (मैं उन्हें इस पोस्ट से नहीं ढूंढ सकता - क्या वे आपके द्वारा दिए गए लिंक में थे और मैंने उन्हें याद किया?)। धन्यवाद।
डेथकिल 14

@Innuo ने एक संक्षिप्त टिप्‍पणी आँकड़े पर पोस्ट की है ।stackexchange.com / questions / 56494 / सभी पहले से देखे गए डेटा का एक समान यादृच्छिक नमूना सुझाते हुए इसे बनाए रखा जा सकता है।O(1)समय। हालांकि यह बिल्कुल स्पष्ट नहीं है कि यह कैसे किया जाएगा, इसे माध्य के एक मजबूत अनुमानक के साथ युग्मित करना एक सार्वभौमिक समाधान का गठन करेगा, जो भी डेटा की किसी भी धारा पर लागू होगा।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.