रैंक की कमी क्या है, और इससे कैसे निपटें?


87

Lme4 का उपयोग करके एक लॉजिस्टिक रिग्रेशन को समाप्त करना

Error in mer_finalize(ans) : Downdated X'X is not positive definite. 

इस त्रुटि का एक संभावित कारण स्पष्ट रूप से रैंक की कमी है। रैंक की कमी क्या है, और मुझे इसे कैसे पता होना चाहिए?


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

3
इसका सामान्य रूप से अर्थ है कि आपके एक या अधिक चर, रैखिक रूप से स्वतंत्र नहीं हैं, जिसमें समस्याग्रस्त चर को अन्य चर के संयोजन के रूप में व्यक्त किया जा सकता है। आर पैकेज caretमें एक फ़ंक्शन होता है जिसे कहा जाता है findLinearCombosजो आपको बताएगा कि समस्याग्रस्त चर कौन से हैं।
रिचमीमोर्रिसो

2
मैं अमीरमीसो से सहमत हूँ। चूँकि यह कहता है कि X'X सकारात्मक नहीं है, इसलिए मुझे लगता है कि वे लगा रहे हैं कि डिज़ाइन मैट्रिक्स X'X एकवचन है और इसलिए इसमें पूर्ण रैंक नहीं है। इसलिए कम से कम एक कोवरिएट को अन्य कोवरिएट के सटीक रैखिक संयोजनों के रूप में लिखा जा सकता है।
माइकल चेरिक

जवाबों:


123

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

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

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

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

कभी-कभी यह केवल मॉडल का विकल्प होता है। इसे "पर्याप्त डेटा नहीं" के रूप में देखा जा सकता है, लेकिन दूसरी तरफ से। आप एक जटिल मॉडल का अनुमान लगाना चाहते हैं, लेकिन ऐसा करने के लिए अपर्याप्त डेटा प्रदान किया है।

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

हालांकि, यहां तक ​​कि अच्छा डेटा कभी-कभी अपर्याप्त होता है, कम से कम संख्यात्मक रूप से। (अच्छे डेटा के लिए बुरी चीजें क्यों होती हैं?) यहां समस्या मॉडल से संबंधित हो सकती है। यह इकाइयों की खराब पसंद से ज्यादा कुछ नहीं हो सकता है। यह समस्या को हल करने के लिए की गई कंप्यूटर प्रोग्रामिंग से स्टेम हो सकता है। (उघ! कहां से शुरू करें?)

सबसे पहले, इकाइयों और स्केलिंग के बारे में बात करते हैं। मान लीजिए कि मैं एक समस्या को हल करने की कोशिश करता हूं जहां एक चर दूसरे की तुलना में परिमाण के बड़े आदेश हैं। उदाहरण के लिए, मान लीजिए कि मुझे एक समस्या है जिसमें मेरी ऊंचाई और मेरे जूते का आकार शामिल है। मैं नैनोमीटर में अपनी ऊँचाई मापूँगा। तो मेरी ऊंचाई लगभग 1.78 बिलियन (1.78e9) नैनोमीटर होगी। बेशक, मैं किलो-पारसेक में अपने जूते के आकार को मापने के लिए चुनूँगा, इसलिए 9.14e-21 किलो-पारसेक। जब आप प्रतिगमन मॉडलिंग करते हैं, तो रैखिक प्रतिगमन रैखिक बीजगणित के बारे में है, जिसमें चर के रैखिक संयोजन शामिल हैं। यहाँ समस्या यह है कि परिमाण के कई आदेशों से भिन्नता है (और एक ही इकाई भी नहीं।) गणित विफल हो जाएगा जब एक कंप्यूटर प्रोग्राम संख्याओं को जोड़ने और घटाने की कोशिश करता है जो परिमाण के इतने आदेशों से भिन्न होता है (एक दोहरी परिशुद्धता के लिए) संख्या,

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

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

आमतौर पर की गई टिप्पणी "आपके डेटा को केंद्र और स्केल करने" का सुझाव होगी। प्रभावी रूप से यह डेटा को स्थानांतरित करने और स्केल करने के लिए कहता है ताकि इसका मतलब शून्य के पास हो और एक मानक विचलन जो लगभग 1 है। यह रैंक की कमी के मुद्दों को कम करने वाले अधिकांश बहुपद मॉडल के कंडीशनिंग में सुधार करेगा।

रैंक की कमी के अन्य कारण मौजूद हैं। कुछ मामलों में यह सीधे मॉडल में बनाया गया है। उदाहरण के लिए, मान लें कि मैं किसी फ़ंक्शन का व्युत्पन्न प्रदान करता हूं, तो क्या मैं विशिष्ट रूप से फ़ंक्शन का अनुमान लगा सकता हूं? बेशक, चूंकि एकीकरण में एक निरंतरता शामिल नहीं है, एक अज्ञात पैरामीटर जो आमतौर पर कुछ बिंदु पर फ़ंक्शन के मूल्य के ज्ञान से अनुमान लगाया जाता है। वास्तव में, यह कभी-कभी अनुमान समस्याओं में भी उत्पन्न होता है, जहां एक प्रणाली की विशिष्टता अध्ययन के तहत प्रणाली की मौलिक प्रकृति से ली गई है।

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


42

मैट्रिक्स की रैंक की परिभाषा के लिए, आप रैखिक बीजगणित पर किसी भी अच्छी पाठ्यपुस्तक का उल्लेख कर सकते हैं, या विकिपीडिया पृष्ठ पर देख सकते हैं

n×pXnpp×pXTX(XTX)1

XXnXTX

(XTX)1

X


23

user974 का जवाब मॉडलिंग के नजरिए से शानदार है और gui11aume का जवाब गणितीय नजरिए से शानदार है। मैं मिश्रित मॉडलिंग परिप्रेक्ष्य से पूर्व के उत्तर को सख्ती से परिष्कृत करना चाहता हूं : विशेष रूप से एक सामान्यीकृत मिश्रित मॉडलिंग (GLMM) परिप्रेक्ष्य। जैसा कि आप देख सकते हैं, आपने आर फ़ंक्शन को संदर्भित किया है mer_finalizeजो शानदार lme4पैकेज में है। आप यह भी कहते हैं कि आप लॉजिस्टिक रिग्रेशन मॉडल फिट कर रहे हैं।

ऐसे कई मुद्दे हैं जो इस प्रकार के संख्यात्मक एल्गोरिदम के साथ फसल करते हैं। तयशुदा प्रभावों के मॉडल मैट्रिक्स की मैट्रिक्स संरचना का मुद्दा निश्चित रूप से विचार करने योग्य है, क्योंकि उपयोगकर्ता 974 से जुड़ा हुआ है। लेकिन यह आकलन करना बहुत आसान है, बस एक मॉडल में model.matrixअपने formula=और data=तर्कों की गणना की जाती है और detफ़ंक्शन का उपयोग करके इसका निर्धारक लेते हैं । यादृच्छिक प्रभाव, हालांकि, व्याख्या, संख्यात्मक अनुमान दिनचर्या, और निश्चित प्रभाव (जो आप आमतौर पर "नियमित" प्रतिगमन मॉडल में प्रतिगमन गुणांक के रूप में सोचते हैं) पर बहुत उलझा हुआ है ।

मान लीजिए कि सबसे सरल मामले में आपको केवल एक यादृच्छिक इंटरसेप्ट मॉडल फिट किया जाता है। तब आप मूल रूप से विषमता के हजारों अनमोल स्रोत होने का विचार कर रहे हैं, जो कि समूहों के भीतर दोहराया उपायों में निरंतर आयोजित किए जाते हैं। आप एक "भव्य" अवरोधन का अनुमान लगाते हैं, लेकिन यह मानकर कि विषम-विशिष्ट अंतःक्षेपों में कुछ माध्य सामान्य वितरण होता है। इंटरसेप्ट्स का अनुमान लगाया जाता है और इसका उपयोग मॉडल प्रभाव को अपडेट करने के लिए किया जाता है जब तक कि अभिसरण प्राप्त नहीं किया जाता है (लॉग संभावना - या इसका एक अनुमान - अधिकतम हो जाता है)। मिश्रित मॉडल को कल्पना करना बहुत आसान है, लेकिन गणितीय रूप से संभावना बहुत जटिल है और विलक्षणताओं, स्थानीय मिनीमाई और सीमा बिंदुओं (बाधाओं अनुपात = 0 या अनन्तता) के मुद्दों के लिए प्रवण है। मिश्रित मॉडल में कैनोनिकल जीएलएम की तरह द्विघात संभावनाएं नहीं होती हैं।

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

  1. प्रति क्लस्टर में कितने अवलोकन हैं?
  2. GEE का उपयोग करके एक सीमांत मॉडल के परिणाम क्या हैं?
  3. समूहों का आईसीसी क्या है? क्या क्लस्टर विषमता के भीतर क्लस्टर विविधता के बीच निकटता है?
  4. एक 1-कदम अनुमानक को फिट करें और अनुमानित यादृच्छिक प्रभावों को देखें। क्या वे लगभग सामान्य हैं?
  5. बायेसियन मिश्रित मॉडल को फिट करें और निश्चित प्रभावों के लिए पीछे के वितरण को देखें। क्या उन्हें लगभग सामान्य वितरण दिखाई देता है?
  6. एक चिकनी का उपयोग करके परिणाम के खिलाफ एक्सपोज़र या ब्याज के प्रतिगमन को प्रदर्शित करने वाले समूहों के एक पैनल प्लॉट को देखें। क्या रुझान सुसंगत और स्पष्ट हैं या ऐसे कई संभावित तरीके हैं जिनसे इस तरह के रुझानों को समझाया जा सकता है? (उदा। अनपेक्षित विषयों के बीच "जोखिम" क्या है, क्या जोखिम सुरक्षात्मक या हानिकारक दिखाई देता है?)
  7. क्या "आदर्श" उपचार प्रभाव का अनुमान लगाने के लिए प्रति व्यक्ति केवल पर्याप्त संख्या में अवलोकन (जैसे, n = 5 या n = 10) करने के लिए नमूने को प्रतिबंधित करना संभव है?

वैकल्पिक रूप से, आप कुछ अलग मॉडलिंग दृष्टिकोणों पर विचार कर सकते हैं:

  1. क्या क्लस्टर स्तर / निरंकुश विविधता को मॉडल करने के लिए कुछ पर्याप्त समूह या समय बिंदु हैं जो आप एक निश्चित प्रभाव (जैसे समूह संकेतक या एक बहुपद समय प्रभाव) का उपयोग कर सकते हैं?
  2. एक सीमांत मॉडल उपयुक्त है (मानक त्रुटि अनुमान की दक्षता में सुधार के लिए एक GEE का उपयोग करके, लेकिन अभी भी केवल निश्चित प्रभावों का उपयोग करके)
  3. यादृच्छिक प्रभाव से पहले एक जानकारीपूर्ण के साथ एक बायेसियन मॉडल अनुमान में सुधार कर सकता है?

2
+1: मूल प्रश्न के "मिश्रित" भाग को संबोधित करने के लिए धन्यवाद। यह पोस्ट अच्छी तरह से जवाब का एक अच्छा सेट पहले से ही पूरक है।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.