आप सामान्य संभावना अनुपात परीक्षणों का उपयोग कर सकते हैं। यहाँ एक सरल उदाहरण है। सबसे पहले, आइए अपने मापदंडों के आधार पर 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
, और परिणामों से खुश रहें। किसी भी मतभेद को निर्धारित करने के लिए, भूखंड सहायक होंगे।