मुझे पाली (कच्चे = टी) बनाम पाली () के लिए बेतहाशा अलग-अलग परिणाम क्यों मिलते हैं?


10

मैं दो अलग-अलग समय चर को मॉडल करना चाहता हूं, जिनमें से कुछ मेरे डेटा (आयु + कोहर्ट = अवधि) में भारी रूप से मेल खाते हैं। ऐसा करने से मैं कुछ परेशानियों में घिर गया lmerऔर बातचीत करने लगा poly(), लेकिन यह शायद सीमित नहीं है lmer, मुझे nlmeIIRC के साथ भी यही परिणाम मिला है ।

जाहिर है, पॉली () फ़ंक्शन क्या करता है की मेरी समझ में कमी है। मैं समझता poly(x,d,raw=T)हूं कि इसके बिना मैंने क्या सोचा है और raw=Tयह ऑर्थोगोनल पॉलीओनियल्स बनाता है (मैं नहीं कह सकता कि मैं वास्तव में इसका मतलब क्या समझ सकता हूं), जो फिटिंग को आसान बनाता है, लेकिन आप सीधे गुणांक की व्याख्या नहीं करते हैं।
मैंने पढ़ा कि क्योंकि मैं प्रेडिक्शन फंक्शन का उपयोग कर रहा हूं, भविष्यवाणियां समान होनी चाहिए।

लेकिन जब मॉडल सामान्य रूप से परिवर्तित होते हैं, तब भी वे नहीं होते हैं। मैं केंद्रीकृत चर का उपयोग कर रहा हूं और मैंने पहले सोचा था कि शायद ऑर्थोगोनल बहुपद कोलेजन इंटरेक्शन शब्द के साथ उच्च निश्चित प्रभाव सहसंबंध की ओर जाता है, लेकिन यह तुलनीय लगता है। मैंने यहाँ पर दो मॉडल सारांश चिपकाए हैं

ये भूखंड अंतर की सीमा को स्पष्ट रूप से दर्शाते हैं। मैंने प्रेडिक्ट-फंक्शन का उपयोग किया जो केवल देव में उपलब्ध है। lme4 का संस्करण (इसके बारे में यहां सुना गया है ), लेकिन निश्चित प्रभाव CRAN संस्करण में समान हैं (और वे भी खुद से दूर लगते हैं, जैसे बातचीत के लिए ~ 5 जब मेरी DV की सीमा 0-4 है)।

लमर कॉल था

cohort2_age =lmer(churchattendance ~ 
poly(cohort_c,2,raw=T) * age_c + 
ctd_c + dropoutalive + obs_c + (1+ age_c |PERSNR), data=long.kg)

भविष्यवाणी केवल नकली डेटा (अन्य सभी भविष्यवाणियों = 0) पर निश्चित प्रभाव थी, जहां मैंने मूल डेटा में मौजूद सीमा को एक्सट्रपलेशन = एफ के रूप में चिह्नित किया था।

predict(cohort2_age,REform=NA,newdata=cohort.moderates.age)

यदि आवश्यकता हो तो मैं और अधिक संदर्भ प्रदान कर सकता हूं (मैंने आसानी से एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण का उत्पादन करने का प्रबंधन नहीं किया है, लेकिन निश्चित रूप से कठिन प्रयास कर सकता है), लेकिन मुझे लगता है कि यह एक अधिक बुनियादी दलील है: poly()मुझे फ़ंक्शन समझाएं , बहुत कृपया।

कच्चे बहुपद

कच्चे बहुपद

ऑर्थोगोनल बहुपद (इम्गुर में नॉनक्लिप्ड )

ऑर्थोगोनल बहुपद

जवाबों:


10

मुझे लगता है कि यह पूर्वानुमान फ़ंक्शन (और इसलिए मेरी गलती है) में एक बग है, जो वास्तव में nlme साझा नहीं करता है । ( संपादित करें : सबसे हाल के आर-फोर्ज संस्करण में तय किया जाना चाहिए lme4।) एक उदाहरण के लिए नीचे देखें ...

मुझे लगता है कि रूढ़िवादी बहुपद की आपकी समझ शायद ठीक है। यदि आप मॉडल के एक वर्ग के लिए एक भविष्यवाणी विधि लिखने की कोशिश कर रहे हैं, तो उनके बारे में जानने के लिए आपको जिस ट्रिकी चीज़ की ज़रूरत है, वह यह है कि ऑर्थोगोनल पॉलीओनियल्स के लिए आधार डेटा के एक सेट के आधार पर परिभाषित किया गया है, इसलिए यदि आप भोलेपन से (जैसे मैंने किया! ) model.matrixडेटा के नए सेट के लिए डिज़ाइन मैट्रिक्स उत्पन्न करने की कोशिश करने के लिए उपयोग करें, आपको एक नया आधार मिलता है - जो अब पुराने मापदंडों के साथ कोई मतलब नहीं रखता है। जब तक मैं इसे ठीक predictनहीं कर लेता , मुझे इसमें एक जाल डालने की आवश्यकता हो सकती है, जो लोगों को यह बताता है कि ऑर्थोगोनल पोलीनोमियल ठिकानों (या स्लाइन बेसिस, जिनके पास समान संपत्ति है) के साथ काम नहीं करता है।

d <- expand.grid(x=seq(0,1,length=50),f=LETTERS[1:10])
set.seed(1001)
u.int <- rnorm(10,sd=0.5)
u.slope <- rnorm(10,sd=0.2)
u.quad <- rnorm(10,sd=0.1)
d <- transform(d,
               ypred = (1+u.int[f])+
               (2+u.slope[f])*x-
               (1+u.quad[f])*x^2)
d$y <- rnorm(nrow(d),mean=d$ypred,sd=0.2)
ggplot(d,aes(x=x,y=y,colour=f))+geom_line()+
    geom_line(aes(y=ypred),linetype=2)

library(lme4)
fm1 <- lmer(y~poly(x,2,raw=TRUE)+(1|f)+(0+x|f)+(0+I(x^2)|f),
            data=d)


fm2 <- lmer(y~poly(x,2)+(1|f)+(0+x|f)+(0+I(x^2)|f),
            data=d)
newdat <- data.frame(x=unique(d$x))
plot(predict(fm1,newdata=newdat,REform=NA))
lines(predict(fm2,newdata=newdat,REform=NA),col=2)
detach("package:lme4")

library(nlme)
fm3 <- lme(y~poly(x,2,raw=TRUE),
           random=list(~1|f,~0+x|f,~0+I(x^2)|f),
            data=d)
VarCorr(fm3)

fm4 <- lme(y~poly(x,2),
           random=list(~1|f,~0+x|f,~0+I(x^2)|f),
            data=d)

newdat <- data.frame(x=unique(d$x))
lines(predict(fm3,newdata=newdat,level=0),col=4)
lines(predict(fm4,newdata=newdat,level=0),col=5)

धन्यवाद, यह आश्वस्त है। पुनरावृत्ति करने के लिए: मैंने पढ़ा कि आप चेहरे के मूल्य पर ऑर्थोगोनल बहुपद निश्चित प्रभाव नहीं ले सकते हैं, लेकिन कभी-कभी वे बहुत बड़े लगते हैं। उदाहरण के लिए यदि मैं दो क्यूबिक बहुपद की बातचीत चलाता हूं, तो मुझे -22 से लेकर -127400 तक बहुपद और उनके परस्पर प्रभाव के लिए निश्चित प्रभाव मिलते हैं। यह सिर्फ मेरे लिए रास्ता है, विशेष रूप से यह देखते हुए कि सभी निश्चित प्रभाव नकारात्मक हैं। क्या एक संशोधित भविष्यवाणी समारोह इन निश्चित प्रभावों की समझ में आता है या क्या मॉडल गलत तरीके से अभिसरण करते हैं या उनके कुछ गलत होने के बाद भी ऐसा होता है?
रब

फिर, मुझे संदेह है (लेकिन स्पष्ट रूप से निश्चित रूप से नहीं पता है) कि सब कुछ ठीक है। त्तर। बहुपद संख्यात्मक स्थिरता और परिकल्पना परीक्षण के लिए अच्छे हैं, लेकिन (जैसा कि आप समझ रहे हैं) वास्तविक पैरामीटर मानों की व्याख्या करना कठिन हो सकता है। Lme4-devel का मौजूदा संस्करण (मैंने अभी एक संस्करण पोस्ट किया है जो परीक्षणों को पास करना चाहिए, आर-फोर्ज पर पुनर्निर्माण के लिए ~ 24 घंटे लग सकते हैं, जब तक कि आप स्वयं एसवीएन से निर्माण नहीं कर सकते) आपको कच्चे / ऑर्थिन बहुपद के बीच मिलान की भविष्यवाणी देनी चाहिए। एक विकल्प के लिए केंद्र और निरंतर भविष्यवाणियों के पैमाने पर है ला Schielzeth 2010 पारिस्थितिकी और विकास में तरीके ...
बेन बोल्कर

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