बड़े नमूनों के लिए Rousseeuw और Croux '(1993) Qn स्केल अनुमानक की गणना कैसे करें?


13

चलो तो जैसे एक बहुत ही कम नमूने के लिए यह गणना की जा सकती के। क्रमबद्धता के अंतरों के वें क्रम को खोजने से : Qn=Cn.{|XiXj|;i<j}(k){1,3,6,2,7,5}k

    7 6 5 3 2 1
1   6 5 4 2 1
2   5 4 3 1
3   4 3 2
5   2 1
6   1
7

ज = [n / 2] + 1 = 4

k = ज (ज -1) / 2 = 8

इस प्रकारQn=Cn.2

स्पष्ट रूप से बड़े नमूनों के लिए यह कहना आवश्यक है कि 80,000 रिकॉर्ड्स से हमें बहुत बड़ी मेमोरी की आवश्यकता है।

वहाँ वैसे भी 2 डी के बजाय 1 डी अंतरिक्ष में गणना करने के लिए है?Qn

उत्तर की एक कड़ी ftp://ftp.win.ua.ac.be/pub/preprints/92/Timeff92.pdf हालांकि मैं इसे पूरी तरह से समझ नहीं पा रहा हूं।


1
ठीक है, उन लोगों के लिए उत्तर जो इसे बाद में पढ़ेंगे: यदि आप डेटा के एक टुकड़े के लिए एक मजबूत पैमाने के अनुमानक की गणना करना चाहते हैं तो आर 2 का नवीनतम संस्करण इंस्टॉल करें। लेकिन अगर आप इस वातावरण के बाहर एक कोड विकसित कर रहे हैं, तो आपको Sn या Qn के लिए आवश्यक गणना को कम करने के लिए भारित उच्च माध्यिका का उपयोग करने की आवश्यकता है।
K-1

1
कागज का लिंक काम नहीं करता है। एक उचित संदर्भ (सबसे अधिक प्रासंगिक जानकारी के उद्धरण के साथ और भी बेहतर) ने हमें जानकारी का पता लगाने में मदद की होगी; जब यह खड़ा होता है जब लिंक मर जाता है (जैसा कि अक्सर होता है)।
Glen_b -Reinstate मोनिका

2
क्या यह k = h 2 = h (h-1) / 2 = 6 नहीं होना चाहिए ? हालांकि यह अंतिम परिणाम नहीं बदलता है।
एक बाघ

Qn = Cn * 2, Why 2 क्यों है? इसकी गणना कैसे की गई?
लिडॉक्स

जवाबों:


15

अद्यतन: समस्या की जड़ यह है कि समय जटिलता प्राप्त करने के लिए, व्यक्ति को संग्रहण के क्रम में आवश्यकता होती है ।O(nlog(n))O(n)


नहीं, समय की जटिलता (देखें (1)) तत्व को सभी बीच चुनने के लिए कम सैद्धांतिक बाध्य है। संभव ।O(nlog(n))k t h n ( n - 1 )kthn(n1)2|xixj|:1i<jn

आप स्थान प्राप्त कर सकते हैं , लेकिन केवल में सभी संयोजनों की जाँच करके । ।O(1)xixjO(n2)

अच्छी खबर यह है कि आप उपयोग कर सकते है पैमाने के आकलनकर्ता, समारोह में लागू (एक उन्नत संस्करण है और कुछ समय तुलना के लिए 2) और (3) को देखने के () में पैकेज । Univariate अनुमानक दो-चरण (अर्थात पुनः भारित) पैमाने का अनुमानक है। इसमें 95 प्रतिशत गॉसियन दक्षता, 50 प्रतिशत ब्रेकडाउन पॉइंट, और समय और स्थान की जटिलता है (साथ ही इसे आसानी से 'ऑनलाइन' बनाया जा सकता है, बार-बार उपयोग में आधी कम्प्यूटेशनल लागतों को हटा दिया जाता है - हालांकि आप इस विकल्प को लागू करने के लिए कोड में खोदना होगा , यह करने के लिए सीधा है)।ττ हे ( एन ) हे ( 1 )scaleTau2()RrobustbaseτO(n)O(1)R

  1. X + Y में चयन और रैंकिंग की जटिलता और सॉर्ट किए गए कॉलम जीएन फ्रेडरिकसन और डीबी जॉनसन, जर्नल ऑफ कंप्यूटर एंड सिस्टम साइंसेज वॉल्यूम 24, अंक 2, अप्रैल 1982, पृष्ठ 197-208 के साथ मैट्रिक।
  2. योहाई, वी। और ज़मार, आर (1988)। एक कुशल पैमाने को कम करने के माध्यम से प्रतिगमन के उच्च विखंडन बिंदु अनुमान। जर्नल ऑफ़ द अमेरिकन स्टेटिस्टिकल एसोसिएशन 83 406–413।
  3. मैरोना, आर। और ज़मार, आर। (2002)। उच्च-आयामी डेटा सेट के लिए स्थान और फैलाव का तेज अनुमान। टेक्नोमेट्रिक्स 44 307–317

इसका उपयोग करने के लिए संपादित करें

  1. फायर अप R(यह मुफ़्त है और यहाँ से डाउनलोड किया जा सकता है )
  2. टाइप करके पैकेज स्थापित करें:
install.packages("robustbase")
  1. टाइप करके पैकेज लोड करें:
library("robustbase")
  1. अपनी डेटा फ़ाइल लोड करें और फ़ंक्शन चलाएँ:
mydatavector <- read.table("address to my file in text format", header=T)
scaleTau2(mydatavector)

2
@ user603: आप जिस ताऊ का जिक्र कर रहे थे। Btw अगर यह इस तरह के अच्छे सांख्यिकीय और कम्प्यूटेशनल क्षमता और टूटने बिंदु है तो यह व्यापक क्यों नहीं है?
क्वार्ट्ज

2
क) आप पागल और मंझला ऑनलाइन गणना कर सकते हैं । वहाँ से यह ताऊ की गणना करने के लिए तुच्छ है। b) ब्रेकडाउन मजबूत नहीं है और आउटर्स की मौजूदगी में ताऊ का भयानक पूर्वाग्रह है। आप इसके खिलाफ Qn पेपर
user603

1
@ user603 आप इस कागज का मतलब है? समझदारी ।kuleuven.be
जर्मन

1
@ user603 कागज के अनुसार, पूर्वाग्रह वक्र हमें बताता है कि संदूषण के एक दिए गए अंश के कारण कितना अनुमानक बदल सकता है। और मेरे नकली उदाहरणों (सामान्य वितरण + अत्यंत उच्च / निम्न मानों का 20%) के लिए पक्षपाती थे, और पूर्वाग्रह का स्तर तुलनीय था। हो सकता है कि मुझे कुछ गड़बड़ हो, लेकिन और दोनों एक ही समस्या से पीड़ित हैं। एस एन एस एन क्यू क्यू एनQnSnSnQn
जर्मन डेमिडोव

1
@ user603 क्षमा करें, आकार 100 के नमूनों के लिए प्रभाव नहीं देखा जा सकता है। मैं स्पष्ट रूप से बड़े नमूना आकारों का उपयोग करते हुए समस्या को देखता हूं। उन सभी के पास भयानक पूर्वाग्रह हैं, लेकिन में सबसे बड़ा है। τ
जर्मन डेमिडोव

0

(बहुत संक्षिप्त उत्तर) टिप्पणी के लिए पाठ कहता है

टिप्पणियों में सवालों के जवाब देने से बचें।

तो यहाँ यह जाता है: एक ऑनलाइन एल्गोरिथ्म के बारे में एक पेपर है जो प्रतीत होता है कि काफी अच्छी तरह से चलता है: एस्टीमेटर ऑनलाइन को लागू करनाQn

संपादित करें

(उपयोगकर्ता user603 द्वारा)। एल्गोरिथ्म इस लेख में से जुड़ा हुआ एक है चलती खिड़की संस्करण के संस्करण ।Qn

एक बड़े नमूने को देखते हुए को चौड़ाई , में गया , हम को लागू कर सकते हैं हर बार मूल्यों की उपज खिड़की । इन मानों को{xi}i=1Nn<N{xi}i=tn+1tQnNn+1Qn{Qni}i=1Nn+1

एल्गोरिथ्म का हवाला देते हुए प्राप्त करने की अनुमति देता है , जो औसत से कम खराब स्थिति से कम है, को स्क्रैच से गणना करने की आवश्यकता है ।Qni|Qni1 O(nlog(n))Qni

इस एल्गोरिथ्म को हालांकि पूर्ण मूल नमूने के की गणना करने के लिए इस्तेमाल नहीं किया जा सकता है । इसे एक बफर को बनाए रखने की भी आवश्यकता होती है जिसका आकार जितना बड़ा हो सकता है (हालांकि यह अक्सर बहुत छोटा होता है)। { x i } N i = 1 O ( n 2 )Qn{xi}i=1NO(n2)


जबकि आपको टिप्पणियों में जवाब नहीं देना चाहिए, आपको उत्तर के रूप में भी टिप्पणी पोस्ट नहीं करनी चाहिए, और यदि आपका उत्तर केवल एक लिंक है, तो यह उत्तर नहीं है (लेकिन टिप्पणी हो सकती है)। यदि आप चाहते हैं कि यह एक टिप्पणी के बजाय एक उत्तर हो, तो आपके उत्तर में किसी तरह से प्रासंगिक जानकारी होनी चाहिए, जैसे कि एक ठीक से संदर्भित लिंक से एक उद्धरण , या महत्वपूर्ण विवरणों का अपना स्पष्टीकरण। यदि आप कर सकते हैं, तो कृपया आवश्यक विवरण प्रदान करें; वैकल्पिक रूप से मैं इसे आपके लिए एक टिप्पणी में बदल सकता हूं।
Glen_b -Reinstate Monica

@Glen_b: आगे बढ़ो और परिवर्तित करें। स्पष्टीकरण के लिए धन्यवाद।
सर्व-इन

1
@ user603 शायद आप (मेरी टिप्पणी में लिंक के रूप में) उपरोक्त उत्तर में आवश्यक जानकारी संपादित कर सकते हैं - क्योंकि यह वर्तमान में खड़ा है, यह जवाब के लिए एसई नेटवर्क दिशानिर्देशों के भीतर नहीं है।
Glen_b -Reinstate Monica

कोई बात नहीं, मैं लूंगा! (लेकिन यहाँ वास्तव में देर हो चुकी है,)
user603

@ user603 धन्यवाद; मैं इसे अभी के लिए यहाँ छोड़ दूँगा
Glen_b -Reinstate Monica

0

यह Qn का मेरा कार्यान्वयन है ...

मैं सी में यह प्रोग्रामिंग कर रहा था और परिणाम यह है:

void bubbleSort(double *datos, int N)
{
 for (int j=0; j<N-1 ;j++)     
  for (int i=j+1; i<N; i++)    
   if (datos[i]<datos[j])      
   {
    double tmp=datos[i];
    datos[i]=datos[j];
    datos[j]=tmp;
   }
}

double  fFactorial(long N)    
{
 double factorial=1.0;

 for (long i=1; i<=N; ++i)
  factorial*=(double)i;

 return factorial;  
}

double fQ_n(double *datos, int N)  // Rousseeuw's and Croux (1993) Qn scale estimator
{
 bubbleSort(datos, N);

 int m=(int)((fFactorial((long)N))/(fFactorial(2)*fFactorial((long)N-2)));

 double D[m];
 //double Cn=2.2219;      //not used now :) constant value https://www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/qn_scale.htm

 int k=(int)((fFactorial((long)N/2+1))/(fFactorial(2)*fFactorial((long)N/2+1-2)));

 int y=0;

 for (int i=0; i<N; i++)
  for (int j=N-1; j>=0; j--)
   if (i<j)
   {
    D[y]=abs(datos[i]-datos[j]);
    y++;
   }

 bubbleSort(D, m);

 return D[k-1];
}

int main(int argc, char **argv)    
{
 double datos[6]={1,2,3,5,6,7};
 int N=6;

 // Priting in terminal the final solution
 printf("\n==[Results] ========================================\n\n");

 printf(" Q_n=%0.3f\n",fQ_n(datos,N));

 return 0;
}

1
यद्यपि कार्यान्वयन को अक्सर प्रश्नों में महत्वपूर्ण सामग्री के साथ मिलाया जाता है, हमें आँकड़े, मशीन सीखने आदि के बारे में जानकारी प्रदान करने के लिए एक साइट माना जाता है, कोड नहीं। यह कोड प्रदान करने के लिए अच्छा हो सकता है, लेकिन कृपया उन लोगों के लिए पाठ में अपने उत्तर को विस्तृत करें, जो कोड से उत्तर को पहचानने और निकालने के लिए इस भाषा को अच्छी तरह से नहीं पढ़ते हैं।
गुंग - को पुनः स्थापित मोनिका

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