एक मिश्रित प्रभाव मॉडल पर कई तुलनाएं


31

मैं मिश्रित प्रभाव मॉडल का उपयोग करके कुछ डेटा का विश्लेषण करने की कोशिश कर रहा हूं। मैंने जो डेटा एकत्र किया वह समय के साथ विभिन्न जीनोटाइप के कुछ युवा जानवरों के वजन का प्रतिनिधित्व करता है।

मैं यहाँ प्रस्तावित दृष्टिकोण का उपयोग कर रहा हूँ: https://gribblelab.wordpress.com/2009/03/09/repeated-measures-anova-use-r/

विशेष रूप से मैं # 2 समाधान का उपयोग कर रहा हूं

तो मेरे पास कुछ ऐसा है

require(nlme)
model <- lme(weight ~ time * Genotype, random = ~1|Animal/time, 
         data=weights)    
av <- anova(model)

अब, मैं कुछ तुलना करना चाहूंगा। का उपयोग कर multcompमैं कर सकता हूँ:

require(multcomp)
comp.geno <- glht(model, linfct=mcp(Genotype="Tukey"))
print(summary(comp.geno))

और, ज़ाहिर है, मैं समय के साथ भी ऐसा कर सकता था।

मेरे दो सवाल हैं:

  1. मैं mcpसमय और जीनोटाइप के बीच बातचीत को देखने के लिए कैसे उपयोग करूं ?
  2. जब मैं चलता glhtहूं तो मुझे यह चेतावनी मिलती है:

    covariate interactions found -- default contrast might be inappropriate

    इसका क्या मतलब है? क्या मैं इसे सुरक्षित रूप से अनदेखा कर सकता हूं? या इससे बचने के लिए मुझे क्या करना चाहिए?

संपादित करें: मुझे यह पीडीएफ मिला है जो कहता है:

क्योंकि इस मामले में ब्याज के मापदंडों को स्वचालित रूप से निर्धारित करना असंभव है, मल्टीपैक में एमसीपी () डिफ़ॉल्ट रूप से केवल मुख्य प्रभावों के लिए तुलना उत्पन्न करेगा, कोवरिएट्स और इंटरैक्शन की अनदेखी करेगा । संस्करण 1.1-2 के बाद से, कोई व्यक्ति बातचीत की शर्तों पर औसतन निर्दिष्ट कर सकता है और तर्कों का उपयोग कर बातचीत कर सकता है। हालांकि, हम उपयोगकर्ताओं को यह सुझाव देते हैं कि वे स्वयं लिखें, मनचाहे कंट्रास्ट का सेट।जब भी डिफ़ॉल्ट विरोधाभासों को मापने के बारे में संदेह होता है, तो ऐसा करना चाहिए, जो आम तौर पर उच्च क्रम इंटरैक्शन शर्तों वाले मॉडल में होता है। हम इस मुद्दे पर आगे की चर्चा और उदाहरणों के लिए Hsu (1996), अध्याय ~ 7, और Searle (1971), अध्याय ~ 7.3 का उल्लेख करते हैं।

मेरी उन किताबों तक पहुँच नहीं है, लेकिन शायद यहाँ कोई है?


InvivoStat ( invivostat.co.uk ) पर एक नज़र डालें , यह उस प्रकार का विश्लेषण करना चाहिए जिसे आप देख रहे हैं

जवाबों:


29

यदि timeऔर Genotypeदोनों स्पष्ट predictors हैं वे दिखाई देते हैं के रूप में, और / जीनोटाइप जोड़ी एक-दूसरे के लिए है, तो आप सिर्फ एक बातचीत चर बना सकते हैं, और उस पर Tukey विरोधाभासों का उपयोग आप हर समय की तुलना में रुचि रखते हैं:

weights$TimeGeno <- interaction(weigths$Time, weights$Geno)
model <- lme(weight ~ TimeGeno, random = ~1|Animal/time, data=weights) 
comp.timegeno <- glht(model, linfct=mcp(TimeGeno="Tukey")) 

यदि आप अन्य विरोधाभासों में रुचि रखते हैं, तो आप इस तथ्य का उपयोग कर सकते हैं कि linfctतर्क विरोधाभासों के लिए गुणांक का एक मैट्रिक्स ले सकता है - इस तरह से आप अपनी तुलना के लिए बिल्कुल निर्धारित कर सकते हैं।

संपादित करें

टिप्पणियों में कुछ चिंता प्रकट होती है कि TimeGenoभविष्यवक्ता के साथ लगाया गया मॉडल भविष्यवक्ता के साथ लगाए गए मूल मॉडल से अलग है Time * Genotypeयह मामला नहीं है , मॉडल समकक्ष हैं। एकमात्र अंतर निश्चित प्रभावों के पैरामीरिजेशन में है, जो glhtफ़ंक्शन का उपयोग करना आसान बनाने के लिए स्थापित किया गया है।

मैंने एक अंतर्निहित डेटासेट का उपयोग किया है (यह जीनोटाइप के बजाय आहार है) यह प्रदर्शित करने के लिए कि दोनों दृष्टिकोणों में एक ही संभावना है, अनुमानित मान, आदि:

> # extract a subset of a built-in dataset for the example
> data(BodyWeight)
> ex <- as.data.frame(subset(BodyWeight, Time %in% c(1, 22, 44)))
> ex$Time <- factor(ex$Time)
> 
> #create interaction variable
> ex$TimeDiet <- interaction(ex$Time, ex$Diet)
    > 
    > model1 <- lme(weight ~ Time * Diet, random = ~1|Rat/Time,  data=ex)    
    > model2 <- lme(weight ~ TimeDiet, random = ~1|Rat/Time, data=ex)    
    > 
    > # the degrees of freedom, AIC, BIC, log-likelihood are all the same 
    > anova(model1, model2)
           Model df      AIC      BIC    logLik
    model1     1 12 367.4266 387.3893 -171.7133
    model2     2 12 367.4266 387.3893 -171.7133
    Warning message:
    In anova.lme(model1, model2) :
      fitted objects with different fixed effects. REML comparisons are not meaningful.
    > 
    > # the second model collapses the main and interaction effects of the first model
    > anova(model1)
                numDF denDF   F-value p-value
    (Intercept)     1    26 1719.5059  <.0001
    Time            2    26   28.9986  <.0001
    Diet            2    13   85.3659  <.0001
    Time:Diet       4    26    1.7610  0.1671
    > anova(model2)
                numDF denDF   F-value p-value
    (Intercept)     1    24 1719.5059  <.0001
    TimeDiet        8    24   29.4716  <.0001
    > 
    > # they give the same predicted values
    > newdata <- expand.grid(Time=levels(ex$Time), Diet=levels(ex$Diet))
    > newdata$TimeDiet <- interaction(newdata$Time, newdata$Diet)
> newdata$pred1 <- predict(model1, newdata=newdata, level=0)
    > newdata$pred2 <- predict(model2, newdata=newdata, level=0)
> newdata
  Time Diet TimeDiet   pred1   pred2
1    1    1      1.1 250.625 250.625
2   22    1     22.1 261.875 261.875
3   44    1     44.1 267.250 267.250
4    1    2      1.2 453.750 453.750
5   22    2     22.2 475.000 475.000
6   44    2     44.2 488.750 488.750
7    1    3      1.3 508.750 508.750
8   22    3     22.3 518.250 518.250
9   44    3     44.3 530.000 530.000

एकमात्र अंतर यह है कि क्या परिकल्पनाओं का परीक्षण करना आसान है। उदाहरण के लिए, पहले मॉडल में यह परीक्षण करना आसान है कि क्या दो भविष्यवक्ता बातचीत करते हैं, दूसरे मॉडल में इसके लिए कोई स्पष्ट परीक्षण नहीं है। दूसरी ओर, दो भविष्यवक्ताओं के संयुक्त प्रभाव का दूसरे मॉडल में परीक्षण करना आसान है, लेकिन पहले वाला नहीं। अन्य परिकल्पनाएं परीक्षण योग्य हैं, यह उन लोगों को स्थापित करने के लिए बस अधिक काम है।


3
glhtस्वतंत्रता मॉडल में दी गई स्वतंत्रता की डिग्री का उपयोग करता है। मुझे यकीन नहीं है कि स्वतंत्रता की ये डिग्री उपयुक्त हैं ...?
स्टीफन लॉरेंट

2
मैं भी उत्सुक हूं कि यह कैसे किया जाता है। यह दृष्टिकोण, हालांकि, एक अलग मॉडल से प्रभाव दे रहा है - एक जो अनिवार्य रूप से केवल एक बातचीत के लिए परीक्षण करता है। दूसरे मॉडल में दो संभावित मुख्य प्रभावों को शामिल नहीं किया गया है। यह पहले मॉडल में प्रभावों की जांच के लिए एक उपयुक्त तरीका नहीं लगता है।
मार्कस मॉरिस ने

@ अइको, मैं 2 स्पष्ट चर को एक में संयोजित करने के बारे में सोच रहा था जैसा आपने अभी किया था, लेकिन मैं संकोच कर रहा था क्योंकि बस चर में से एक विषय के भीतर है, दूसरा बीच है। क्या आप इस बात की पुष्टि कर सकते हैं कि यह नहीं होता है? मैंने देखा है कि उदाहरण में आप रखते हैं Animal/timeजो अब कारकों में से एक नहीं है। क्या वास्तव में understandयह शर्म की बात है?
21o

@toto_tico, मैंने यह दिखाने के लिए प्रतिक्रिया को संपादित किया है कि दूसरा मॉडल पहले वाले के बराबर है।
'28

3
@toto_tico, मैंने आपको एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण दिया। आप कोशिश क्यों नहीं करते all.equal(resid(model1), resid(model2))और देखते हैं कि वे अन्यथा अनुमान लगाने से पहले समान हैं? केवल निश्चित प्रभाव पैरामीरिजेशन अलग है। TimeDietएक शुद्ध अंतःक्रिया शब्द नहीं है, और यह इसके समकक्ष नहीं है Time:Diet, बल्कि है Time + Diet + Time:Diet
ऐको
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.