आर

2015-08-24 8 views
10

में लाइमर फ़ंक्शन को गति दें lme4 पैकेज का उपयोग करके R में रैखिक मिश्रित प्रभाव मॉडल के मॉडल फिटिंग समय को बेहतर बनाने का प्रयास करते समय मैं अपने कुछ विचार साझा करना चाहता हूं।आर

डेटासेट आकार: डाटासेट, होते हैं लगभग, 400.000 पंक्तियों और 32 स्तंभों की। दुर्भाग्य से, डेटा की प्रकृति के बारे में कोई जानकारी साझा नहीं की जा सकती है।

मानदंड और जांच: यह माना जाता है कि प्रतिक्रिया चर सामान्य वितरण से आता है। मॉडल फिटिंग प्रक्रिया से पहले, सहसंबंधों और सहकारी तालिकाओं का उपयोग करके बहुविकल्पीयता और alias आर

अभिसरण में मदद करने के लिए सतत चर को स्केल किया गया था।

मॉडल संरचना: मॉडल समीकरण में 31 निश्चित प्रभाव (अवरोध सहित) और 30 यादृच्छिक प्रभाव शामिल हैं (अवरोध शामिल नहीं है)। यादृच्छिक प्रभाव एक विशिष्ट कारक चर के लिए यादृच्छिक होते हैं जिसमें 2700 स्तर होते हैं। कॉन्वर्सिस संरचना वैरिएंस घटक है क्योंकि यह माना जाता है कि यादृच्छिक प्रभावों के बीच स्वतंत्रता है।

मॉडल समीकरण उदाहरण:

lmer(Response ~ 1 + Var1 + Var2 + ... + Var30 + (Var1-1| Group) + (Var2-1| Group) + ... + (Var30-1| Group), data=data, REML=TRUE)

मॉडल को सफलतापूर्वक फिट किया गया था, हालांकि, यह 3,1 के बारे में घंटे लगे परिणाम प्रदान करने के। एसएएस में एक ही मॉडल में कुछ सेकंड लगे। वहाँ कैसे गैर रेखीय अनुकूलन एल्गोरिथ्म nloptwrap का उपयोग करने और समय लेने वाली turnining व्युत्पन्न गणना कि optmization के बाद किया जाता है द्वारा समय को कम करने पर वेब पर उपलब्ध साहित्य है calc.derivs = FALSE समाप्त हो गया है:

https://cran.r-project.org/web/packages/lme4/vignettes/lmerperf.html

समय था 78% से कम

प्रश्न: क्या lmer पैरामीटर इनपुट को परिभाषित करके मॉडल फिटिंग समय को कम करने का कोई अन्य वैकल्पिक तरीका है? मॉडल फिटिंग समय के संदर्भ में आर और एसएएस के बीच बहुत अंतर है।

किसी भी सुझाव की सराहना की जाती है।

+0

मेरा पहला कदम डेटासेट (पंक्तियों) को कम करने और फिट करने के लिए होगा। –

+1

हाय @Roman Luštrik। मुझे पूरे डेटासेट का उपयोग करके गुणांक अनुमान प्राप्त करने की आवश्यकता है। – mammask

+0

मुझे लगता है कि 'lmer' और एसएएस प्रो मिश्रित मिश्रित एल्गोरिदम अलग हैं, हालांकि आपको पुष्टि करने के लिए @benbolker प्राप्त करना होगा। आप [स्रोत कोड] (https://github.com/lme4/lme4/tree/master/src) –

उत्तर

7

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

यह संभव है कि एसएएस प्रोक मिक्स्ड में विशिष्ट अनुकूलन विधियां हों या शुरुआती अनुमान निर्धारित करने के अधिक परिष्कृत तरीके हैं। एसएएस एक बंद स्रोत प्रणाली है जिसका मतलब है कि हम नहीं जानते कि वे क्या करते हैं।

वैसे, आप के रूप में यादृच्छिक प्रभाव लिख सकते हैं (1 + var1 + var2 + ... + Var30 || समूह)

+1

लाइमर में प्रोफाइल किए गए लॉग-संभावना के मूल्यांकन का एक पहलू है जिसे इन प्रकार के मॉडल के लिए तेज़ी से बनाया जा सकता है। जब हमने lme4 लिखा था तो हमने निश्चित प्रभाव गुणांक और प्रत्येक पुनरावृत्ति पर यादृच्छिक प्रभाव के तरीकों के लिए हल किया था। इसमें एन पंक्तियों और लंबाई एन के वैक्टर वाले मैट्रिस पर संचालन शामिल है, जहां एन अवलोकनों की संख्या है। हाल ही में मुझे एहसास हुआ कि यह आवश्यक नहीं है। मेरे पास एक [जूलिया] (http://julialang.org) संशोधित एल्गोरिदम का कार्यान्वयन है लेकिन आर में अभी तक कुछ भी नहीं है। –

+1

मैं स्टैक ओवरफ्लो के लिए नया हूं और स्पष्ट रूप से कुछ सूक्ष्मताओं पर छूट गया है। मैं आमतौर पर डॉग बेट्स के रूप में खुद को पहचानता हूं, उपयोगकर्ता 1864481 –

+3

प्रिय डगलस नहीं। ई बेट्स, आपका जवाब एक आश्चर्य है। मैं 'जूलिया' में एक ही मॉडल फिट करने में कामयाब रहा। परिणाम बताते हैं कि विशिष्ट मॉडल फिट होने पर 'जूलिया' 'आर' से लगभग 74 गुना तेज है। यह प्रदर्शन में एक बड़ा अंतर है। इसके अलावा, परिणाम गठबंधन हैं। क्या निकट भविष्य में 'आर lme4' में एक ही विकास करने की कोई योजना है? तुम्हारे सहयोग के लिए तुम्हे धन्यवाद। Konstantinos Mammas – mammask

2

हम यादृच्छिक अवरोध प्रतिगमन आर पैकेज Rfast में यौगिक समरूपता संभालने लागू किया है। आदेश rint.reg है। यह संबंधित lme4 फ़ंक्शन से 30 गुना तेज है। मुझे नहीं पता कि यह मदद करता है, लेकिन बस मामले में।

https://cran.r-project.org/web/packages/Rfast/index.html

1

आप glmer बजाय lmer का उपयोग करते हैं, वहाँ एक पैरामीटर nAGQ है। मैंने पाया कि nAGQ=0 सेटिंग ने काफी जटिल मॉडल (13 निश्चित प्रभाव, अलग-अलग अवरोध और ढलान, 300k पंक्तियों के साथ एक यादृच्छिक प्रभाव) फिट करने के लिए नाटकीय रूप से कम किया। जीएलएमएम के लिए पैरामीटर अनुमान के कम सटीक रूप का उपयोग करने के लिए यह मूल रूप से glmer बताता है। अधिक जानकारी के लिए ?glmer देखें, या this पोस्ट।

+0

आपके इनपुट के लिए धन्यवाद मैं निश्चित रूप से इसे ध्यान में रखूंगा! – mammask