Lme4

2011-10-20 8 views
12

में मल्टीवायरेट रैखिक मिश्रित मॉडल मुझे आश्चर्य है कि lme4 के साथ बहुविकल्पीय रैखिक मिश्रित मॉडल को कैसे फिट किया जाए। मैं निम्नलिखित कोड के साथ univariate रैखिक मिश्रित मॉडल फिट:Lme4

library(lme4) 
lmer.m1 <- lmer(Y1~A*B+(1|Block)+(1|Block:A), data=Data) 
summary(lmer.m1) 
anova(lmer.m1) 

lmer.m2 <- lmer(Y2~A*B+(1|Block)+(1|Block:A), data=Data) 
summary(lmer.m2) 
anova(lmer.m2) 

मुझे पता है कि कैसे lme4 साथ मल्टीवेरिएट रैखिक मिश्रित मॉडल फिट करने के लिए करना चाहते हैं। डेटा नीचे है:

Block A B Y1 Y2 
1 1 1 135.8 121.6 
1 1 2 149.4 142.5 
1 1 3 155.4 145.0 
1 2 1 105.9 106.6 
1 2 2 112.9 119.2 
1 2 3 121.6 126.7 
2 1 1 121.9 133.5 
2 1 2 136.5 146.1 
2 1 3 145.8 154.0 
2 2 1 102.1 116.0 
2 2 2 112.0 121.3 
2 2 3 114.6 137.3 
3 1 1 133.4 132.4 
3 1 2 139.1 141.8 
3 1 3 157.3 156.1 
3 2 1 101.2 89.0 
3 2 2 109.8 104.6 
3 2 3 111.0 107.7 
4 1 1 124.9 133.4 
4 1 2 140.3 147.7 
4 1 3 147.1 157.7 
4 2 1 110.5 99.1 
4 2 2 117.7 100.9 
4 2 3 129.5 116.2 

आपके समय और सहयोग के लिए अग्रिम धन्यवाद।

+0

यह पिघलने 'डेटा सेट से यह करने के लिए संभव हो सकता है (यानी एक आम' आईडी 'चर के साथ Y1 और Y2 अलग टिप्पणियों बनाने) और फिर साथ एक मॉडल फिटिंग एक यादृच्छिक प्रभाव के रूप में आईडी। अब विस्तृत करने के लिए समय नहीं है। आप इसे आर-सिग-मिश्रित-मॉडल सूची पर पूछना चाहेंगे। –

+0

@ बेन बोकर: आपकी टिप्पणी के लिए धन्यवाद। मैं तुम्हारे जवाब का इंतज़ार कर रहा हूँ। धन्यवाद – MYaseen208

+2

मैंने आपके उत्तर के लिए धन्यवाद http://rpubs.com/bbolker/3336 –

उत्तर

11

यह कभी कभी संतोषजनक ढंग से nlme में नाटक किया जा सकता है/lme4 बस को पुन: फ़ॉर्मेट करके अपने नया वेरिएबल Y अपने रैखिक मिश्रित मॉडल में शामिल की तरह

require(reshape) 
Data = melt(data, id.vars=1:3, variable_name='Y') 
Data$Y = factor(gsub('Y(.+)', '\\1', Data$Y)) 
> Data 
    Block A B Y value 
1  1 1 1 1 135.8 
2  1 1 2 1 149.4 
3  1 1 3 1 155.4 
4  1 2 1 1 105.9 
5  1 2 2 1 112.9 
6  1 2 3 1 121.6 
... 

और फिर डेटा।

हालांकि, वास्तविक बहुविकल्पीय सामान्यीकृत रैखिक मिश्रित मॉडल (एमजीएलएमएम) के लिए, आपको शायद sabreR पैकेज या इसी तरह की आवश्यकता होगी। पैकेज के साथ एक पूरी किताब भी है, आर का उपयोग कर बहुविकल्पीय सामान्यीकृत रैखिक मिश्रित मॉडल। यदि आपके पास सदस्यता लेने वाली संस्था के लिए प्रॉक्सी है, तो आप इसे http://www.crcnetbase.com/isbn/9781439813270 से भी निःशुल्क डाउनलोड कर पाएंगे। मैं आपको किसी भी और सलाह के लिए संदर्भित करूंगा, क्योंकि यह एक मांसपेशियों का विषय है और मैं बहुत नौसिखिया हूं।

+0

आपके उत्तर के लिए धन्यवाद। यदि आप lme4 या nlme के साथ इस तरह के मॉडल फिट करने के लिए अधिक दिशानिर्देश देते हैं तो मैं अत्यधिक सराहना करता हूं। धन्यवाद – MYaseen208

+0

आपके पास मूल वाक्यविन्यास है, लेकिन यह निर्धारित करना कि कौन सा विशिष्ट मॉडल फिट होना चाहिए, आपके डेटा और आपके प्रयोग की संरचना पर निर्भर करेगा। यह शायद इसके लिए सही मंच नहीं है।यदि आप मिश्रित मॉडल से परिचित नहीं हैं, * एस और एस-प्लस * में मिश्रित प्रभाव मॉडल पुस्तक है जो 'nlme' पैकेज के साथ है, और शुरू करने के लिए एक अच्छी जगह हो सकती है। –

5

हल्का और इसके बड़े भाई लेमे मूल रूप से "एक पैरामीटर बाएं ~" हैं। कार पैकेज पर एक नज़र डालें; यह कोई बंद शेल्फ दोहराया माप सहायता प्रदान करता है, लेकिन आप खोज आर सूची से इस विषय पर कुछ टिप्पणियां मिलेगा:

John Fox on car package

+0

पर कुछ और विवरण दिए हैं। क्या आप अधिक जानकारी प्रदान कर सकते हैं? धन्यवाद – MYaseen208

1

@ जॉन का उत्तर उपरोक्त सही होना चाहिए। आप मॉडल में एक डमी वैरिएबल (यानी - कारक चर Y) जोड़ते हैं। यहां आपके पास 3 सब्सक्राइब i= 1...N अवलोकन के लिए, j=1,...,4 ब्लॉक के लिए, और h=1,2 निर्भर var के लिए हैं। लेकिन आपको स्तर 1 त्रुटि अवधि को 0 (या शून्य के करीब) को मजबूर करने की भी आवश्यकता है, जो मुझे यकीन नहीं है कि lme4 करता है। बेन बोकर अधिक जानकारी प्रदान कर सकते हैं। यह लेटेंट मल्टीवायरेट मॉडल के लिए गोल्डस्टीन (2011) चैप 6 और चैप 7 में अधिक वर्णित है।

आईई

Y_hij = \ beta_ {01} z_ {1ij} + \ beta_ {02} z_ {2ij} + \ बीटा एक्स + u_ {1j} z_ {1ij} + u_ {2j} z_ { 2ij}

तो:

require(reshape2) 
Data = melt(data, id.vars=1:3, variable_name='Y') 
Data$Y = factor(gsub('Y(.+)', '\\1', Data$Y)) 

m1 <- lmer(value ~ Y + A*B + (1|Block) + (1|Block*A), data= Data) 
# not sure how to set the level 1 variance to 0, @BenBolker 
# also unclear to me if you're requesting Y*A*B instead of Y + A*B 
संबंधित मुद्दे

 संबंधित मुद्दे