মিশ্র প্রভাবগুলির মডেলের একাধিক তুলনা


31

আমি একটি মিশ্র প্রভাব মডেল ব্যবহার করে কিছু তথ্য বিশ্লেষণ করার চেষ্টা করছি। আমি যে তথ্য সংগ্রহ করেছি তা সময়ের সাথে সাথে বিভিন্ন জিনোটাইপের কিছু তরুণ প্রাণীর ওজন উপস্থাপন করে।

আমি এখানে প্রস্তাবিত পদ্ধতির ব্যবহার করছি: https://gribblelab.wordpress.com/2009/03/09/repected-measures-anova-used-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.0-0 এর চেয়ে পুরানো সংস্করণগুলি ইন্টারঅ্যাকশন শর্তগুলির চেয়ে স্বয়ংক্রিয়ভাবে গড় হয়। আমরা ব্যবহারকারীদের পরামর্শ দিই, তারা ম্যানুয়ালি, তারা চান তার বিপরীতে সেট লেখেন।যখনই ডিফল্ট কি পরিমাপ করে তার তুলনায় সন্দেহ থাকে যখনই এটি করা উচিত, যা সাধারণত উচ্চতর অর্ডার ইন্টারঅ্যাকশন শর্তাদি মডেলগুলিতে ঘটে। আমরা এই বিষয়ে আরও আলোচনা এবং উদাহরণের জন্য হু (1996), অধ্যায় 7 ~ এবং সেরেল (1971), অধ্যায় 7.3 দেখুন refer

আমার কাছে এই বইগুলিতে অ্যাক্সেস নেই, তবে সম্ভবত এখানে কেউ আছে?


InvivoStat ( invivostat.co.uk ) এ একবার দেখুন , এটি যে ধরণের বিশ্লেষণ আপনি খুঁজছেন তা করা উচিত

উত্তর:


29

যদি timeএবং Genotypeউভয় শ্রেণিবদ্ধ ভবিষ্যদ্বাণী হিসাবে তারা প্রদর্শিত হয় এবং আপনি একে অপরের সাথে সর্বকালের / জেনোটাইপ জোড়া তুলনা করতে আগ্রহী হন তবে আপনি কেবল একটি ইন্টারঅ্যাকশন ভেরিয়েবল তৈরি করতে পারেন এবং এতে টুকি বিপরীতে ব্যবহার করতে পারেন:

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
glhtlme মডেলের প্রদত্ত স্বাধীনতার ডিগ্রি ব্যবহার করে। আমি নিশ্চিত না যে স্বাধীনতার এই ডিগ্রিগুলি উপযুক্ত কিনা ...?
স্টাফেন লরেন্ট

2
এটি কীভাবে সেরা হয় তাও আমি আগ্রহী। এই পদ্ধতির, তবে, একটি ভিন্ন মডেল থেকে প্রভাব প্রদান করা হয় - এটি মূলত কেবল ইন্টারঅ্যাকশন জন্য পরীক্ষা করে। দ্বিতীয় মডেলটিতে দুটি সম্ভাব্য মূল প্রভাবগুলি মোটেই অন্তর্ভুক্ত নয়। এটি প্রথম মডেলের প্রভাবগুলি পরীক্ষা করার জন্য উপযুক্ত পদ্ধতি বলে মনে হয় না।
মার্কাস মরিসি

@ অ্যানিকো, আমি ঠিক যেমনটি করেছি তেমন দুটি স্বতন্ত্র ভেরিয়েবলকে একত্রিত করার কথা ভাবছিলাম, তবে আমি দ্বিধা বোধ করলাম কারণ কেবলমাত্র একটি ভেরিয়েবল সাবজেক্টের মধ্যে রয়েছে, অন্যটির মধ্যে রয়েছে। আপনি কি নিশ্চিত করতে পারেন যে এটি ম্যাথার নয়? আমি লক্ষ্য করেছি যে উদাহরণে আপনি Animal/timeএখন রাখুন যা এখন অন্যতম কারণ নয়। Lme সত্যিই understandএই কি ?
টোটো_টিকো

@ টোটো_টিকো, আমি দ্বিতীয় মডেলটি প্রথমটির সমতুল্য তা দেখানোর জন্য প্রতিক্রিয়া সম্পাদনা করেছি।
অনিকো 21

3
@ টোটো_টিকো, আমি আপনাকে একটি পুনরুত্পাদনযোগ্য উদাহরণ দিয়েছি। আপনি কেন চেষ্টা করে all.equal(resid(model1), resid(model2))দেখেন না যে অন্যথায় অনুমান করার আগে সেগুলি একই? কেবলমাত্র নির্দিষ্ট প্রভাবগুলির প্যারামিট্রাইজেশন আলাদা। TimeDietএকটি খাঁটি মিথস্ক্রিয়া শব্দ নয় এবং এটি এর সমতুল্য নয় Time:Diet, বরং Time + Diet + Time:Diet
অনিকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.