2014-06-27 2 views
5

में अस्थायी सहसंबंध के लिए लेखांकन मैं एक जीएलएमएम में स्वत: सहसंबंध के लिए खाते की कोशिश कर रहा हूं। मेरा प्रतिक्रिया चर बुलियन है, यह मधुमक्खी घोंसले के एक सेट के जीवन चक्र में एक घटना की उपस्थिति और अनुपस्थिति का प्रतिनिधित्व करता है। मैं प्रत्येक घोंसला की स्थिति का वर्णन करने वाले संख्यात्मक चर के सेट के साथ ऐसी घटना की संभावना की भविष्यवाणी करने की कोशिश कर रहा हूं। इसलिए, मैंने एक सामान्यीकृत मॉडल में एक बेमिसाल वितरण का उपयोग घोंसला के साथ एक यादृच्छिक प्रभाव के रूप में किया (ग्लमर() का उपयोग करके)। हालांकि, घटनाएं स्वतः से संबंधित हैं, इसलिए मुझे अपने अवशेषों में एक बहुत ही भयानक पैटर्न मिलता है। अगर मैं यादृच्छिक प्रभावों के बिना त्रुटियों में गाऊशियन वितरण का उपयोग कर रहा था, तो मैं gls() के साथ सहसंबंध संरचना का उपयोग करके कुछ सहसंबंध पैरामीटर का अनुमान लगाऊंगा, लेकिन यह इस मामले में काम नहीं करेगा। मैं जीएलएमएम में इस ऑटोकोरेशन को शामिल करने के तरीकों की तलाश में हूं, लेकिन मुझे यह सही नहीं लगता है। मैंने पाया कि डेटा सेट को फ़ंक्शन ts() और diff() का उपयोग करके मॉडल को भविष्यवाणियों, प्रतिक्रिया के पिछले मानों के रूप में शामिल करने की अनुमति देने के लिए परिवर्तित किया जा सकता है। यह एक रैखिक मॉडल एलएम() के लिए काम करता है, जिससे अवशेष बहुत अच्छे होते हैं।जीएलएमएम

basket.1<-subset(basket,select=c(Nest,day,number_cells,provitioning_cells,closed_cells, 
          reopened_cells,eclosed_cells,pollen)) 
basket.ts<-ts(as.matrix.data.frame(basket.1),start=1,frequency=9) 
m.basket.ts1<-lm(pollen~provitioning_cells+reopened_cells+closed_cells 
      +eclosed_cells+day,data=diff(basket.ts,differences=2))` 

हालांकि, न तो lmer() और न ही glm() उन कार्यों के आउटपुट को स्वीकार करते हैं। समस्या यह है कि trasformation कुछ मान नकारात्मक बनाता है, और glm() एक द्विपक्षीय मॉडल (जो समझ में आता है) के लिए नकारात्मक मान स्वीकार नहीं करता है। मैंने पढ़ा है कि autocorrelations glm() के लिए खाता करना संभव है, जो पहले से ही एक सुधार होगा, लेकिन मैं इसे काम नहीं कर सकता। मैंने यह भी पढ़ा है कि glmmPQL() में सहसंबंध संरचना शामिल हो सकती है। वह मॉडल चलता है, लेकिन यह मेरे अवशेषों में पैटर्न में सुधार नहीं करता है। वे अभी भी स्वतः जुड़े हुए प्रतीत होते हैं।

m.basket.glmm1<-glmmPQL(pollen~provitioning_cells+reopened_cells+closed_cells 
      +eclosed_cells+day,random=~1|Nest,family=binomial,correlation=corAR1(form=~day), 
      data=basket) 

मैंने विभिन्न सहसंबंध संरचनाओं की कोशिश की और उनमें से कोई भी काम नहीं कर रहा है।

अंत में, मैंने dyn पैकेज की कोशिश की, जिसे समय श्रृंखला को संभालने के लिए रिग्रेशन फ़ंक्शन को अनुमति देने की अनुमति दी जाती है। लेकिन एक बार फिर, फ़ंक्शन रूपांतरण द्वारा उत्पादित मानों के साथ नहीं चलता है।

m.bas.glm.dyn1<-dyn$glm(pollen~provitioning_cells+reopened_cells+closed_cells 
        +eclosed_cells+day,family=poisson,data = diff(basket.ts,differences=3)) 

संक्षेप में, मैं लौकिक सहसंबंध साथ GLMM चलाने की आवश्यकता है, लेकिन मैं यह करने के लिए एक तरह से नहीं मिल रहा। मैं कुछ मदद की सराहना करता हूं।

चीयर्स !!!

उत्तर

1

क्या आप हमें एक पुनरुत्पादित उदाहरण दे सकते हैं? सिद्धांत रूप में इसे 'हाथ से' मूल्यों को अंतराल करना बहुत कठिन नहीं होना चाहिए, उदा। अपने डेटा सेट के आकार पर

basket.1 <- subset(basket,select=c(Nest,day,number_cells, 
          provitioning_cells,closed_cells, 
          reopened_cells,eclosed_cells,pollen)) 
n <- nrow(basket.1) 
basket.2 <- transform(basket.1,pollen.lag1=c(pollen[2:n],NA), 
         pollen.lag2=c(pollen[3:n],rep(NA,2))) 

library("lme4") 
m.basket.glmm1 <- glmer(pollen~provitioning_cells+ 
        reopened_cells+ closed_cells+ 
        eclosed_cells+day+pollen.lag1+pollen.lag2+ 
        (1|Nest), 
        family=binomial,data=basket.2) 

निर्भर करता है, अगर day एक पहलू से सांख्यिक बल्कि है आप (1|Nest) के बजाय (day|Nest) चाहते हो सकता है ...

+0

अगर हम मान अंतराल के लिए कैसे ज्यादा पता नहीं है क्या ? @benbolker – lg929

+0

आमतौर पर आप एक साधारण मॉडल के अवशेषों के स्वत: सहसंबंध समारोह की एक साजिश देखेंगे। –