यह केवल एक चेतावनी नहीं है एक त्रुटि है। मॉडल फार्मूला के न तो 'लमर और न ही गैर-विनिर्देशन का दुरुपयोग है, इस प्रकार आप अनुमानित मॉडल प्राप्त करेंगे। लेकिन जब से आपने पूछा, मैं इसके पीछे की कहानी को समझाने के लिए अपनी पूरी कोशिश करूंगा। और यादृच्छिक प्रभाव सूत्रनिश्चित प्रभाव सूत्र:
lmer
के निष्पादन के दौरान, अपने मूल मॉडल सूत्र भागों में बांट दिया गया है। प्रत्येक भाग के लिए, मॉडल मैट्रिक्स का निर्माण किया गया है। निश्चित भाग के लिए निर्माण मानक मॉडल मैट्रिक्स कन्स्ट्रक्टर model.matrix
पर पास किया गया है, जबकि यादृच्छिक भाग का निर्माण थोड़ा अधिक जटिल है लेकिन आपके प्रश्न से संबंधित नहीं है, इसलिए मैं इसे छोड़ देता हूं।
अपने मॉडल के लिए, आप जाँच कर सकते हैं निश्चित प्रभाव मॉडल मैट्रिक्स द्वारा कैसा दिखता है:
fix.formula <- F2_difference ~ sex + nasal + type + vowelLabel +
type * vowelLabel + nasal * type
X <- model.matrix (fix.formula, data.df)
सभी अपने चर कारक हैं तो X
द्विआधारी हो जाएगा। हालांकि model.matrix
प्रत्येक कारक और उनकी बातचीत के लिए contrasts
लागू होता है, फिर भी यह संभावना है कि X
पूर्ण कॉलम रैंक के साथ समाप्त नहीं होता है, क्योंकि कुछ कॉलम रैखिक रूप से सहसंबंधित हो सकते हैं। आपके मामले में, एक कारक के कुछ स्तर किसी अन्य कारक के कुछ स्तरों में घोंसला लगाया जा सकता है। यद्यपि एक अच्छा मॉडेलर मॉडल को फ़िट करने से पहले इस तरह के मुद्दे से बचने के लिए अपना सर्वश्रेष्ठ प्रयास करना चाहिए, लेकिन इस पर पूर्ण नियंत्रण रखना हमेशा संभव नहीं है, क्योंकि चर के बीच सहसंबंध वास्तविक दुनिया सांख्यिकीय मॉडलिंग में अक्सर होता है।
इस प्रकार, किसी अच्छी तरह से लिखा मॉडल फिटिंग दिनचर्या, lm
, glm
, mgcv::gam
की तरह, QR अपघटन X
के लिए केवल मॉडल फिटिंग के लिए अपनी पूरी रैंक उपस्पेस उपयोग करते हैं, 0 या NA
करने के लिए अन्य गुणांक सिकुड़ पर लागू होंगे। आपको प्राप्त चेतावनी संदेश इसका संकेत है। मूल रूप से ncol(X)
गुणांक अनुमान लगाने के लिए हैं, लेकिन रैंक-कमी के कारण, केवल ncol(X) - 7
अनुमानित होंगे, शेष 0 या NA
होंगे। इस तरह का संकोचन अच्छा संकेत है क्योंकि यह समीकरण समीकरणों को हल करने में संख्यात्मक स्थिरता सुनिश्चित करता है। तो आपको इसके साथ परेशान नहीं होना चाहिए। ,
fix.fit <- lm (fix.formula, data.df, method = "qr", singular.ok = TRUE)
method = "qr"
और singular.ok = TRUE
डिफ़ॉल्ट हैं तो वास्तव में हम डॉन ':
आप बेहतर देखने में मदद करने के लिए, के अगर हम fix.formula
साथ एक रेखीय मॉडल फिट क्या होगा की जाँच करने के lm
समारोह का उपयोग करते हैं इसे स्थापित करने की जरूरत नहीं है। दूसरी ओर, यदि सेट singular.ok = FALSE
:
oo <- lm (fix.formula, data.df, method = "qr", singular.ok = FALSE)
lm
बंद करो और रैंक की कमी के बारे में शिकायत करेंगे।
अब fix.fit
में लौटाए गए मानों की जांच करें।
coef <- fix.fit$coef
p <- length(coef)
यह गारंटी है कि p = ncol(X)
। हालांकि, अगर आप से
no.NA <- sum(is.na(coef))
coef
जाँच अगर आप 7 NA
देखना चाहिए। चौंका देने वाला? अब चलिए रैंक
rank <- fix.fit$rank
यह X
के लिए संख्यात्मक रैंक है। आपको rank + no.NA = p
सत्यापित करना चाहिए।
बिल्कुल वही बात lmer
के अंदर होती है। lm
रैंक-कमी की रिपोर्ट नहीं करेगा जबकि lmer
करता है। यह वास्तव में जानकारीपूर्ण है। अक्सर, मैं लोगों को यह पूछता हूं कि क्यों lm
कुछ गुणांक के लिए NA
लौट रहा है।
अद्यतन 1 (2016/05/07):
anova
या BIC
के उपयोग के बारे में चिंता मत करो, पैकेज ठीक तरह से कार्य उनकी देखभाल करेगा।
मैं अपने मूल पोस्ट संपादित, टैग [lme4], [रैखिक प्रतिगमन], [प्रतिगमन] जोड़कर, और शीर्षक का नाम बदलकर अधिक जानकारीपूर्ण किया जाना है। उम्मीद है कि, एक ही संदेह वाले लोग आसानी से आपकी पोस्ट ढूंढ सकते हैं।
अद्यतन 2 (2016/11/06):
चलो भी सुना है क्या lme4
के पैकेज लेखक कहेंगे: rank deficiency warning mixed model lmer। बेन बोल्कर ने का भी उल्लेख किया है, खासकर क्योंकि ओपी वहां कमी की समस्या को हल करना चाहते हैं।
आज इस मुद्दे पर एक और सवाल है: rank defficient model reports an error when doing post hoc analysis। और मेरी टिप्पणी वहाँ पर:
देखो, जब से तुम दोनों POS
और DISTANCE
कारक मजबूर है, वहाँ उच्च संभावना है कि POS
के कुछ स्तर DISTANCE
के कुछ स्तर में नेस्ट किया जाता है। यदि आप निश्चित प्रभाव भाग fit <- lm(total ~ DISTANCE + POS, data = dat)
पर एक रैखिक मॉडल पर विचार करते हैं (मैंने आपके डेटा के लिए वैरिएबल डेटा का उपयोग किया है), तो आप 2 NA
गुणांक देखेंगे!
यह है कह रहे हैं कि या तो शून्य से विभाजन या नकारात्मक संख्या का लॉग लेना या कुछ अन्य गणितीय रोगजनक स्थिति हो रही है। कोड और डेटा के बिना यह असंभव है कि कोई भी सार्थक टिप्पणियां कर सकता है। –
मुझे खेद है, लेकिन मुझे नहीं पता कि मैं आपके लिए अपना डेटा कैसे प्रदान कर सकता हूं क्योंकि यह कई टेक्स्ट फ़ाइलों से आता है जो आर में निर्भर हैं। निर्भर चर, 'F2_difference' नकारात्मक हो सकता है। क्या यह समस्या है? यदि हां, तो क्या मैं सभी चरों में कुछ संख्या जोड़ सकता हूं ताकि कुछ भी नकारात्मक न हो? – Lisa
ऐसा नहीं है। मॉडल मैट्रिक्स की रैंक कमी मॉडल के आरएचएस ("स्वतंत्र चर") में कठिनाई का संकेत है। –