मैं एक गैर-मिश्रित मिश्रित प्रभाव मॉडल फिट करूं जो कि बार-बार किए गए उपायों के डेटा के लिए nlmer () का उपयोग कर फिट हो?


12

मैं बार-बार माप डेटा का विश्लेषण करने की कोशिश कर रहा हूं और इसे काम करने के लिए संघर्ष कर रहा हूं R। मेरा डेटा अनिवार्य रूप से निम्नलिखित है, मेरे पास दो उपचार समूह हैं। प्रत्येक समूह में हर विषय का हर रोज परीक्षण किया जाता है और उसे अंक दिए जाते हैं (परीक्षण पर प्रतिशत सही)। डेटा लंबे प्रारूप में है:

Time Percent Subject   Group
   1       0    GK11 Ethanol
   2       0    GK11 Ethanol
   3       0    GK11 Ethanol
   4       0    GK11 Ethanol
   5       0    GK11 Ethanol
   6       0    GK11 Ethanol

डेटा एक उपचारात्मक वक्र जैसा दिखता है, कुछ दिनों के लिए बहुत खराब तरीके से होता है, इसके बाद तेजी से सुधार होता है, इसके बाद पठार आता है। मैं जानना चाहता हूं कि क्या उपचार का परीक्षण प्रदर्शन वक्र पर प्रभाव पड़ता है। मेरे बारे में सोचा का इस्तेमाल किया गया nlmer()में lme4में पैकेज R। मैं निम्नलिखित का उपयोग करके प्रत्येक समूह के लिए लाइनें फिट कर सकता हूं:

print(nm1 <- nlmer(Percent ~ SSlogis(Time,Asym, xmid, scal) ~ Asym | Subject,
salinedata, start = c(Asym =.60,  xmid = 23, scal = 5)), corr = FALSE)

मैं अनुमानित लाइनों के विभिन्न मापदंडों और मानक विचलन के अनुमानों को देखकर समूहों की तुलना कर सकता हूं लेकिन मुझे यकीन नहीं है कि यह करने का उचित तरीका है। किसी भी तरह की सहायता का स्वागत किया जाएगा।

जवाबों:


4

आप सामान्य संभावना अनुपात परीक्षणों का उपयोग कर सकते हैं। यहाँ एक सरल उदाहरण है। सबसे पहले, आइए अपने मापदंडों के आधार पर 10 व्यक्तियों से अवलोकन बनाएं:

Asym = .6
xmid = 23
scal = 5

n = 10
time = seq(1,60,5)

d = data.frame(time=rep(time,10),
               Asym, xmid, scal, group=0)
d$subj = factor(rep(1:n, each=length(time)))

अब उनमें से आधे के पास अलग-अलग asymptotes और midpoint पैरामीटर हैं:

ind = (nrow(d)/2):nrow(d)
d$Asym[ind] = d$Asym[ind] + .1
d$xmid[ind] = d$xmid[ind] + 10
d$group[ind] = 1
d$group=factor(d$group)

हम मॉडल के आधार पर सभी व्यक्तियों के लिए प्रतिक्रिया मूल्यों का अनुकरण कर सकते हैं:

set.seed(1)
d = transform(d, y = Asym/(1+exp((xmid-time)/scal)) +
                     rnorm(nrow(d), sd=.04))
library(lattice)
xyplot(y~time | group, group=subj,
       data=d, type=c("g","l"), col="black")

डेटा के स्पेगेटी प्लॉट

हम दो समूहों के बीच स्पष्ट अंतर देख सकते हैं, मतभेद जिन्हें मॉडल को लेने में सक्षम होना चाहिए। अब पहले समूहों को अनदेखा करते हुए एक साधारण मॉडल को फिट करने का प्रयास करें :

> fm1 = nls(y ~ SSlogis(time, Asym, xmid, scal), data=d)
> coef(fm1)
      Asym       xmid       scal 
 0.6633042 28.5219166  5.8286082

शायद उम्मीद के मुताबिक , दो समूहों के लिए वास्तविक पैरामीटर मानों के लिए अनुमान कहीं Asymऔर xmidहैं। (यह होगा कि यह मामला स्पष्ट नहीं है, हालांकि, चूंकि स्केल पैरामीटर को भी बदल दिया गया है, मॉडल प्रक्षेपन के लिए समायोजित करने के लिए।) अब चलो दो समूहों के लिए अलग-अलग मापदंडों के साथ, एक पूर्ण मॉडल फिट करते हैं:

> fm2 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal[group]),
          data=d,
          start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=rep(5,2)))
> coef(fm2)
    Asym1     Asym2     xmid1     xmid2     scal1     scal2 
 0.602768  0.714199 22.769315 33.331976  4.629332  4.749555

चूंकि दो मॉडल नेस्टेड हैं, हम एक अनुपात अनुपात परीक्षण कर सकते हैं:

> anova(fm1, fm2)
Analysis of Variance Table

Model 1: y ~ SSlogis(time, Asym, xmid, scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
  Res.Df Res.Sum Sq Df  Sum Sq F value    Pr(>F)    
1    117    0.70968                                 
2    114    0.13934  3 0.57034  155.54 < 2.2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

अत्यंत छोटे पी -value स्पष्ट रूप से पता चलता है कि साधारण मॉडल भी आसान था, दो समूहों है अपने मापदंडों में मतभेद है।

हालांकि, दो पैमाने के पैरामीटर का अनुमान लगभग समान है, बस 1 के अंतर के साथ। शायद हमें केवल एक पैमाने के पैरामीटर की आवश्यकता है? (निश्चित रूप से हम जानते हैं कि उत्तर हां है, क्योंकि हमारे पास नकली डेटा है।)

(दो asymptote पैरामीटर के बीच का अंतर भी सिर्फ 1 है, लेकिन जब हम खाते में मानक त्रुटियां लेते हैं तो यह एक बड़ा अंतर है summary(fm2)।)

तो हम scaleदो समूहों के लिए एक सामान्य पैरामीटर के साथ एक नया मॉडल फिट करते हैं, लेकिन पहले की तरह अलग Asymऔर xmidपैरामीटर:

> fm3 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal),
          data=d,
          start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=5))
> coef(fm3)
     Asym1      Asym2      xmid1      xmid2       scal 
 0.6035251  0.7129002 22.7821155 33.3080264  4.6928316

और चूंकि कम मॉडल पूर्ण मॉडल में नेस्टेड है, हम फिर से संभावना अनुपात परीक्षण कर सकते हैं:

> anova(fm3, fm2)
Analysis of Variance Table

Model 1: y ~ SSlogis(time, Asym[group], xmid[group], scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
  Res.Df Res.Sum Sq Df     Sum Sq F value Pr(>F)
1    115    0.13945                             
2    114    0.13934  1 0.00010637   0.087 0.7685

बड़े पी -value इंगित करता है कि कम मॉडल फिट करने के साथ ही पूरा मॉडल, के रूप में की उम्मीद।

हम निश्चित रूप से यह जांचने के लिए समान परीक्षण कर सकते हैं कि क्या अलग-अलग पैरामीटर मानों की आवश्यकता सिर्फ Asym, सिर्फ xmidया दोनों के लिए है। इसने कहा, मैं मापदंडों को खत्म करने के लिए इस तरह से चरणबद्ध प्रतिगमन करने की सिफारिश नहीं करूंगा । इसके बजाय, fm2सरल मॉडल के खिलाफ पूर्ण मॉडल ( ) का परीक्षण करें fm1, और परिणामों से खुश रहें। किसी भी मतभेद को निर्धारित करने के लिए, भूखंड सहायक होंगे।


यह बहुत अच्छा जवाब है। यदि कुछ व्यक्तियों को दो बार मापा गया, और आप व्यक्ति के भीतर सहसंबंध के लिए नियंत्रण करना चाहते हैं, तो आप इस विश्लेषण को कैसे बदलेंगे? यदि आप मदद कर सकते हैं, तो मैं आपके दो सेंट की सराहना करूंगा! ( आंकड़े.स्टैकएक्सचेंज.com/questions/203040/… )
नोवा

nlmer()समय के साथ नमूनों पर दोहराए गए उपायों के लिए इस दृष्टिकोण की तुलना कैसे की जाती है ? आप एक ही तरह की रणनीति बना सकते हैं, लेकिन केवल और तुलना के लिए यादृच्छिक प्रभावों के साथ subjectऔर groupकिसी अन्य मॉडल के लिए यादृच्छिक प्रभाव के साथ 1 मॉडल फिट subjectकरें।
स्टीफन एवी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.