मैं मिश्रित प्रभाव मॉडल का अनुमान लगाने के लिए lme4
पैकेज में lmer()
का उपयोग कर रहा हूं। यह अच्छी तरह से काम करता है, लेकिन अब मैं अनुमान प्रक्रिया की एक निश्चित संख्या के लिए अनुमान प्रक्रिया को चलाने के लिए चाहता हूं, फिर अंतिम अनुमान प्रक्रिया द्वारा गणना के अनुसार प्रारंभ मान निर्दिष्ट करके प्रक्रिया को फिर से शुरू करें।पहले अनुमानित मानों के साथ मिश्रित प्रभाव मॉडल अनुमान को पुनरारंभ करें
?lmer
के लिए मदद के अनुसार यह संभव है, तर्क की स्थापना द्वारा:
start
- इन नई शुरुआत मान रहे हैं, और मदद के अनुसार एक एक फिट से स्लॉटST
में मूल्य निकाल सकते हैं मॉडल और इन का उपयोग करें, यानी का उपयोग[email protected]
maxiter
-control
तो करने के लिए एक तर्क के रूप में नामित किया गया आपूर्ति, उदाहरण के लिए, लगता है मुझे iris
डेटा का उपयोग कर एक lme
फिट करने के लिए चाहते हैं, एक यह कोशिश कर सकते हैं:
library(lme4)
# Fit model with limited number of iterations
frm <- "Sepal.Length ~ Sepal.Width | Species"
x <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=1), model=FALSE)
# Capture starting values for next set of iterations
start <- list([email protected])
# Update model
twoStep <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=100), model=TRUE,
start=start)
यह काम करता है। आउटपुट पर एक नज़र डालें, जहां पहला कॉलम आरईएमएल है, यानि यादृच्छिक प्रभाव अधिकतम संभावना है। सूचना विशेष रूप से है कि मॉडल 2 मैचों में REML जहां मॉडल 1 समाप्त हो जाता है:
> x <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=1), model=FALSE)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518239 1.01025 0.205835
1: 204.22878: 0.518239 1.01025 0.205835
> # Capture starting values for next set of iterations
> start <- list([email protected])
> # Update model
> twoStep <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=100), model=TRUE,
+ start=start)
0: 204.22878: 0.518239 1.01025 0.205835
1: 201.51667: 0.610272 2.00277 0.286049
2: 201.46706: 0.849203 1.94906 0.358809
3: 201.44614: 0.932371 1.88581 0.482423
4: 201.39421: 1.00909 1.71078 0.871824
5: 201.36543: 1.00643 1.60453 1.01663
6: 201.31066: 1.00208 1.35520 1.27524
7: 201.28458: 1.08227 1.22335 1.35147
8: 201.24330: 1.50333 0.679759 1.31698
9: 201.11881: 1.95760 0.329767 0.936047
हालांकि, जब मैं maxIters
का मान अलग है यह काम नहीं करता:
x <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=3), model=FALSE)
start <- list([email protected])
twoStep <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=100), model=TRUE,
start=start)
सूचना है कि REML मूल्य पुनरारंभ 264 पर, यानी शुरुआत:
> x <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=3), model=FALSE)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518238 1.01025 0.205835
2: 201.94075: 0.00000 1.51757 -1.18259
3: 201.71473: 0.00000 1.69036 -1.89803
3: 201.71473: 0.00000 1.69036 -1.89803
> # Capture starting values for next set of iterations
> start <- list([email protected])
> # Update model
> twoStep <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=100), model=TRUE,
+ start=start)
0: 264.60572: 0.230940 0.0747853 0.00000
1: 204.22878: 0.518238 1.01025 0.205835
2: 201.94075: 0.00000 1.51757 -1.18259
3: 201.71473: 0.00000 1.69036 -1.89803
4: 201.64641: 0.00000 1.82159 -2.44144
5: 201.63698: 0.00000 1.88282 -2.69497
6: 201.63649: 0.00000 1.89924 -2.76298
7: 201.63649: 4.22291e-08 1.90086 -2.76969
8: 201.63649: 4.22291e-08 1.90086 -2.76969
प्रश्न: मैं पहले से फिट मॉडल से प्राप्त प्रारंभ मूल्यों के साथ lmer()
विश्वसनीय रूप से पुनरारंभ कैसे कर सकता हूं?
सत्र जानकारी:
packageVersion("lme4")
[1] ‘0.999999.2’
यह एक बग की संभावना है; 'lme4' की 'स्टार्ट' कार्यक्षमता का बहुत अच्छी तरह से उपयोग नहीं किया गया है, इसलिए मुझे यकीन है कि इस तरह के कई मुद्दे हैं। विकास संस्करण की बजाय स्थिर का उपयोग करने की आपकी आवश्यकता कितनी मजबूत है? मैं इसे देख लूंगा, लेकिन हम स्थिर संस्करण पर हमारे अधिकांश डिबगिंग करने की उम्मीद कर रहे हैं ... –
@ बेनबॉल्कर मैं या तो देव या टेस्ट कोड का उपयोग कर सकता हूं, क्योंकि मैं इस समय कुछ प्रयोग चला रहा हूं। मैं मदद कर सकता हूं, अगर आप मुझे बताते हैं कि देव शाखा कहां मिलें। – Andrie
यह गिथब पर है: 'पुस्तकालय (devtools); install_github ("lme4", उपयोगकर्ता = "lme4") '। इस संस्करण में विचलन फ़ंक्शन निकालने और इसे अपने स्वयं के अनुकूलन में उपयोग करना आसान है, यदि आप अधिक नियंत्रण चाहते हैं तो आप पसंद कर सकते हैं। वैकल्पिक रूप से, 'स्टार्ट' प्रयोग को आज़माएं और मुझे https://github.com/lme4/lme4/issues पर बताएं यदि आपको कुछ काम नहीं मिल रहा है ... –