आउटलायर्स को हटाने के लिए अच्छा फॉर्म?


12

मैं सॉफ्टवेयर बिल्ड के लिए आंकड़ों पर काम कर रहा हूं। मेरे पास पास / असफल और बीते हुए समय पर प्रत्येक निर्माण के लिए डेटा है और हम इन / सप्ताह के ~ 200 उत्पन्न करते हैं।

सफलता की दर कुल मिलाकर आसान है, मैं कह सकता हूं कि किसी भी सप्ताह 45% पारित किया गया। लेकिन मैं बीता हुआ समय भी पूरा करना चाहता हूं, और मैं यह सुनिश्चित करना चाहता हूं कि मैं डेटा को बहुत बुरी तरह से गलत तरीके से पेश न करूं। मुझे लगता है मैं पेशेवरों से पूछना बेहतर होगा :-)

कहो मेरे पास 10 अवधि है। वे पास और फेल दोनों मामलों का प्रतिनिधित्व करते हैं। कुछ बिल्ड तुरंत विफल हो जाते हैं, जिससे अवधि असामान्य रूप से कम हो जाती है। कुछ परीक्षण के दौरान लटके रहते हैं और अंततः समय निकल जाते हैं, जिससे बहुत लंबी अवधि हो जाती है। हम अलग-अलग उत्पाद बनाते हैं, इसलिए सफल बिल्ड 90 सेकंड और 4 घंटे के बीच भिन्न होते हैं।

मुझे इस तरह का एक सेट मिल सकता है:

[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]

मेरा पहला दृष्टिकोण सेट को छांट कर और मध्य-मूल्य को उठाकर माध्य समय प्राप्त करना था, इस मामले में 7812 (मैं सम-सेट सेट के लिए अंकगणितीय माध्य से परेशान नहीं था।)

दुर्भाग्य से, यह बहुत भिन्नता उत्पन्न करता है, क्योंकि मैं केवल एक दिए गए मूल्य को निकालता हूं। इसलिए अगर मैं इस मूल्य को ट्रेंड करता तो यह लगभग 5000-10000 सेकेंड के बीच उछलता, जिसके आधार पर मंझला था।

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

[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]

यह मेरे लिए बेहतर लगता है कारण दो गुना है:

  • हम तेज निर्माण पर कोई कार्रवाई नहीं चाहते हैं, वे पहले से ही ठीक हैं
  • सबसे लंबे समय तक निर्मित होने की संभावना टाइमआउट से प्रेरित होती है, और हमेशा रहेगी। हमारे पास उन का पता लगाने के लिए अन्य तंत्र हैं

तो यह मुझे लगता है कि यह वह डेटा है जिसकी मैं तलाश कर रहा हूं, लेकिन मुझे चिंता है कि मैंने इसे हटाकर, अच्छी तरह से, सच्चाई से चिकनाई हासिल की है।

क्या यह विवादास्पद है? क्या विधि समझदार है?

धन्यवाद!


आपने अभी भी यह नहीं कहा है कि आप अपने बीते हुए समय को मापना क्यों चाहते हैं। क्या आपको उस मशीन के कुल समय का अनुमान लगाने की आवश्यकता है जिसके लिए आप भुगतान कर रहे हैं? क्या आपको यह अनुमान लगाने की आवश्यकता है कि कॉफी मशीन की कितनी यात्राएँ आप कर पाएंगे? यदि आप समय को जानते हैं तो आप क्या कार्रवाई करेंगे?
StasK

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

@StasK: आपकी टिप्पणियों के लिए धन्यवाद, यह बहुमूल्य इनपुट है। कार्रवाई पहले से ही ज्ञात है: इनमें से कई बिल्ड वायाए को लंबे समय तक ले जाते हैं, और हमें उन्हें तेजी से बनाने पर काम करना चाहिए। मैं यह देखना चाहता हूं कि चीजें बेहतर हो रही हैं या खराब।
किम ग्रासमैन

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

वैसे यह मुझे दिखता है कि आपके डेटा में आपके तीन समूह हैं: (i) उस बिल्ड का निर्माण करता है; (ii) बनाता है कि असफल (और आप कहते हैं कि वे जल्दी से असफल हो जाते हैं), और (iii) बनाता है कि हैंग (या लगभग ऐसा) - और शायद यही मुख्य है अगर आप जिस समूह पर कार्रवाई करना चाहते हैं, वह मुख्य नहीं है। समय का समग्र माप बहुत काम का नहीं हो सकता है; लेकिन 10 वीं सबसे लंबी बिल्ड जैसी कोई चीज, या बिल्ड टाइम के वितरण का 10 वां सबसे बड़ा प्रतिशत, इस बात का बेहतर माप हो सकता है कि वितरण के चरम पर आप किस चीज की परवाह करते हैं। यही कारण है कि EPA उनके प्रदूषण निगरानी में उपयोग करता है।
23

जवाबों:


8

आपका दृष्टिकोण मेरे लिए मायने रखता है, आपके लक्ष्य को ध्यान में रखते हुए। यह सरल है, यह सीधा है, इसे काम मिल जाता है, और आप संभवतः इसके बारे में एक वैज्ञानिक पत्र नहीं लिखना चाहते हैं।

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

अन्यथा, यदि आपके पास अधिक डेटा है, तो आप टर्टिल्स को हटाने के बारे में नहीं सोच सकते हैं, लेकिन क्विंटल ... लेकिन कुछ बिंदु पर, इससे बहुत अंतर नहीं होगा।


जब मैं "अन्य" तंत्र कहता हूं, तो मेरा मतलब इस डेटा सेट के बाहर पूरी तरह से अलग है , इसलिए मैं इसके आधार पर निर्णय नहीं ले सकता। हम प्रतिदिन डेटा एकत्र कर रहे हैं, और हमें प्रति दिन केवल ~ 50 बिल्ड मिलते हैं, इसलिए मुझे लगता है कि क्विंटल बहुत कम डेटा प्राप्त कर सकते हैं, लेकिन सुझाव के लिए धन्यवाद, मैं इसके साथ प्रयोग कर सकता हूं!
किम ग्समैन

13

आप जो कर रहे हैं उसे एक छंटनी के रूप में जाना जाता है

जैसा कि आपने किया है, प्रत्येक पक्ष (ट्रिमिंग अनुपात) से समान अनुपात को ट्रिम करना आम है।

आप 0% (एक सामान्य मतलब) के बीच (लगभग) 50% (जो माध्यिका देता है) के बीच कुछ भी ट्रिम कर सकते हैं। आपके उदाहरण में प्रत्येक छोर से 30% छंटनी की गई है।

देखें क्या यह उत्तर और प्रासंगिक विकिपीडिया लेख

[संपादित करें: इस विषय पर निक कॉक्स की उत्कृष्ट चर्चा देखें ।]

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

* यह पूरी तरह से स्पष्ट नहीं है कि आप यहां क्या अनुमान लगाना चाहते हैं।

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

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


मैंने वास्तव में अपने वितरण के विशिष्ट आकार की जांच नहीं की है, मुझे लगता है कि यह सप्ताह-दर-सप्ताह बदलता रहता है, जहां लोग परिवर्तन करते हैं। यह वास्तव में अत्यधिक तिरछा हो सकता है।
किम ग्रासमैन

मेरी हैक-नौकरी पर एक नाम डालने के लिए धन्यवाद, btw। यह कुछ आत्मविश्वास को प्रेरित करता है :-)
किम ग्र्समैन

2

फिर भी एक और तरीका यह है कि सभी जोड़ीदार औसत के माध्य की गणना करें या बूटस्ट्रैपिंग करें।

अपडेट करें:

सभी जोड़ीदार अवधियों के मध्य को होजेस-लेहमन अनुमानक कहा जाता है । इस अनुमानक के पास आमतौर पर एक उच्च दक्षता होती है। स्कॉट एल। हर्शबर्गर की यह विश्वकोश प्रविष्टि कहती है:

जबकि दोनों माध्यिका और होजेस-लेहमैन अनुमानक दोनों निरर्थक वितरण के लिए नमूना माध्य के लिए बेहतर हैं, होजेस-लेहमन अनुमानक के पास माध्यिका की तुलना में माध्य के संबंध में बड़ी स्पर्शोन्मुख सापेक्ष दक्षता है।

बूटस्ट्रैपिंग कम प्रासंगिक और अधिक कम्प्यूटेशनल गहन हो सकती है, लेकिन आप प्रतिस्थापन के साथ डेटा का एक छोटा यादृच्छिक नमूना ले सकते हैं और उस सबसम्प्लन के माध्य की गणना कर सकते हैं, इसे कई बार करें और सभी साधनों के माध्य की गणना करें।

दोनों ही मामलों में अब आपको अपने डेटा के मूल्यों (जब आप सामान्य माध्यिका की गणना करते हैं) के बीच कोई मूल्य नहीं चुनना पड़ता है, लेकिन इसके बजाय आप डेटा के सबसेट से कई औसतों के बीच चयन करते हैं।


2
क्या आप इन विधियों के फायदे और नुकसान का वर्णन कर सकते हैं? एक-पंक्ति का उत्तर एक अपर्याप्त है।
StasK

1
मैंने अधिक स्पष्टीकरण के साथ अपडेट करने की कोशिश की है
फिन Åरूप नील्सन

जोड़ीदार औसत और बूटस्ट्रैपिंग दोनों पूरे डेटासेट पर कई पुनर्गणनाओं को शामिल करते हैं। नमूना आम तौर पर बहुत छोटा होता है (<500 मान), इसलिए यह शायद कोई समस्या नहीं है, लेकिन यह अधिक जटिल लगता है। यह जानने के लिए अच्छा है कि प्रयोग करने के लिए अधिक दृष्टिकोण हैं यदि छंटनी का मतलब बहुत अधिक कुंद हो। धन्यवाद!
किम ग्रासमैन

1

उचित लगता है कि आप क्या कर रहे हैं: बस जानकारी के लिए मैं एक समान उद्देश्य के लिए निम्नलिखित प्रक्रिया का उपयोग अक्सर करता हूं: लेकिन मैं केवल ऊपरी आउटलेर्स में वास्तव में दिलचस्पी रखता हूं।

पांच नंबर सारांश की गणना करें: मिन, क्यू 1, मेडियन, क्यू 3, मैक्स। इंटरकार्टाइल रेंज की गणना करें: Q3-Q1। Q1-IQR * X, और Q3 + IQR * X पर अपने बाहरी 'बाड़' को सेट करें: जहाँ 'X' का एक उचित मान 1.5 है।

एक्सेल और अपने आंकड़ों का उपयोग करके ऊपर ('एक्स' ** के लिए 1.5 का उपयोग करना) एक ऊपरी रूप से उपज देता है: 21011

MIN 50
Q1  3014
MEDIAN  8095
Q3  9073.25
MAX 21011
IQR 6059.25
UPPER FENCE 18162.125
LOWER FENCE -6074.875

तो यहाँ पर नीचे की बाड़ आपके उदाहरण के लिए उपयोगी या वास्तविक नहीं है: जो आपके विशिष्ट डेटा के अर्थ को समझने के महत्व के बारे में अन्य पोस्ट द्वारा किए गए बिंदु का समर्थन करता है।

(** '1.5' नियम के लिए एक उद्धरण मिला: मैं यह आधिकारिक नहीं कह रहा हूं, लेकिन यह मेरे लिए एक उचित शुरुआती बिंदु है: http://statistics.about.com/od/Descriptive-Statistics/a/ व्हाट-इज़-द-इन्टरकार्टाइल-रेंज-रूल .htm )

आप केवल IQR के भीतर आने वाले डेटा बिंदुओं का उपयोग करने के लिए (शायद) यह भी तय कर सकते हैं: यह समझदार परिणाम देता है (इसमें आपकी विधि की सदस्यता बहुत समान है)।

समान डेटा का उपयोग करते हुए, यह निम्नलिखित डेटा बिंदुओं को 'रुचि के क्षेत्र' में रखेगा:

7812
3014
13400
21011
8993
8378
9100

एक बॉक्सप्लॉट पर: ये सभी बिंदु आरेख के बॉक्स-भाग (बल्कि मूंछ-भाग) के भीतर गिर जाएंगे।

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


धन्यवाद, यह सिद्धांत के बहुत करीब लगता है कि मैं पहले से क्या कर रहा हूं। किन तरीकों से डेटा सेट को विभाजित करने से बेहतर हो सकता है?
किम ग्रासमैन

1
मैं वास्तव में यह नहीं कह सकता कि क्या विधि बेहतर है या नहीं: मैंने यह सुझाव दिया है कि मैंने सांख्यिकी पुस्तकों / साइटों में जो पढ़ा है, उसके आधार पर। एक बात (मुझे लगता है) विधि यह कहती है कि आप जो कुछ भी उपयुक्त है उसे समायोजित कर सकते हैं। जहां सिर्फ मध्य तीसरे को लेने से संभावित उच्च बहिर्गमन (जिसमें यकीनन बाड़ के बाहर बेहतर वर्गीकृत किया जा सकता है) को शामिल करने के लिए अतिसंवेदनशील हो सकता है ..... लेकिन मुझे यकीन है कि ऐसा नहीं होगा। Quartiles का उपयोग करने के बारे में एक अन्य बात यह है कि 5-संख्या सारांश काफी अच्छी तरह से समझा जाता है और आमतौर पर उपयोग किया जाता है।
मोनोजोनी

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

मेरे लिए ठीक लगता है: मैं चौकड़ी और बाड़ (चर विभाजनों के बजाय) का उपयोग करने पर जोर देने के लिए एक और बात जोड़ूंगा - क्या वे सीधे बॉक्सप्लेट पर नक्शा करते हैं: en.wikipedia.org/wiki/Box_plot जो अनुमति देते हैं (अन्य बातों के अलावा) विभिन्न वितरणों की तुलनात्मक रूप से करने का एक मानक तरीका है।
मोनोजोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.