আর-তে ডানেটের পরীক্ষা প্রতিটি সময় বিভিন্ন মান ফেরত দেয়


13

আমি ডনেট পরীক্ষার গণনা করতে আর 'মাল্টকম্প' লাইব্রেরি ( http://cran.r-project.org/web/packages/multcomp/ ) ব্যবহার করছি । আমি নীচের স্ক্রিপ্টটি ব্যবহার করছি:

Group <- factor(c("A","A","B","B","B","C","C","C","D","D","D","E","E","F","F","F"))
Value <- c(5,5.09901951359278,4.69041575982343,4.58257569495584,4.79583152331272,5,5.09901951359278,4.24264068711928,5.09901951359278,5.19615242270663,4.58257569495584,6.16441400296898,6.85565460040104,7.68114574786861,7.07106781186548,6.48074069840786)
data <- data.frame(Group, Value)
aov <- aov(Value ~ Group, data)
summary(glht(aov, linfct=mcp(Group="Dunnett")))

এখন আমি যদি এই স্ক্রিপ্টটি একাধিকবার আর কনসোলের মাধ্যমে চালিত করি তবে প্রতিবারই আমি খুব সামান্য ভিন্ন ফলাফল পাই। একটি উদাহরণ এখানে:

         Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = Value ~ Group, data = data)

Linear Hypotheses:
           Estimate Std. Error t value Pr(>|t|)   
B - A == 0 -0.35990    0.37009  -0.972  0.76545   
C - A == 0 -0.26896    0.37009  -0.727  0.90019   
D - A == 0 -0.09026    0.37009  -0.244  0.99894   
E - A == 0  1.46052    0.40541   3.603  0.01710 * 
F - A == 0  2.02814    0.37009   5.480  0.00104 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

এবং এখানে অন্যটি:

         Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = Value ~ Group, data = data)

Linear Hypotheses:
           Estimate Std. Error t value Pr(>|t|)    
B - A == 0 -0.35990    0.37009  -0.972   0.7654    
C - A == 0 -0.26896    0.37009  -0.727   0.9001    
D - A == 0 -0.09026    0.37009  -0.244   0.9989    
E - A == 0  1.46052    0.40541   3.603   0.0173 *  
F - A == 0  2.02814    0.37009   5.480   <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

আপনি দেখতে পাচ্ছেন যে উপরের দুটি ফলাফল খুব সামান্য ভিন্ন, তবে চূড়ান্ত গোষ্ঠী (এফ) দুটি তারা থেকে তিন তারাতে সরানো যথেষ্ট, যা আমি উদ্বেগজনক বলে মনে করি।

এ সম্পর্কে আমার বেশ কয়েকটি প্রশ্ন রয়েছে:

  1. ইহা কি জন্য ঘটিতেছে?! অবশ্যই আপনি যদি প্রতিটি সময় একই ডেটা রাখেন তবে আপনার একই ডেটা বের করা উচিত।
  2. ডানেটের গণনায় কোথাও কি কোনও ধরণের এলোমেলো নম্বর ব্যবহৃত হচ্ছে?
  3. প্রতিবার এই সামান্যতম পরিবর্তনটি কি আসলে সমস্যা?

উত্তর:


7

আমি উদাহরণের মাধ্যমে আপনার প্রথম দুটি প্রশ্নের উত্তর এক সাথে দিচ্ছি।

library(multcomp)

Group <- factor(c("A","A","B","B","B","C","C","C","D","D","D","E","E","F","F","F"))
Value <- c(5,5.09901951359278,4.69041575982343,4.58257569495584,4.79583152331272,5,5.09901951359278,4.24264068711928,5.09901951359278,5.19615242270663,4.58257569495584,6.16441400296898,6.85565460040104,7.68114574786861,7.07106781186548,6.48074069840786)
data <- data.frame(Group, Value)

fit <- aov(Value ~ Group, data)

set.seed(20140123)
Dunnet <- glht(fit, linfct=mcp(Group="Dunnett"))
summary(Dunnet)

ফলাফল:

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = Value ~ Group, data = data)

Linear Hypotheses:
           Estimate Std. Error t value Pr(>|t|)   
B - A == 0 -0.35990    0.37009  -0.972  0.76536   
C - A == 0 -0.26896    0.37009  -0.727  0.90012   
D - A == 0 -0.09026    0.37009  -0.244  0.99895   
E - A == 0  1.46052    0.40541   3.603  0.01794 * 
F - A == 0  2.02814    0.37009   5.480  0.00112 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

আবার চালান (বীজ সেট না করে):

summary(Dunnet)

বিভিন্ন ফলাফল:

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = Value ~ Group, data = data)

Linear Hypotheses:
           Estimate Std. Error t value Pr(>|t|)   
B - A == 0 -0.35990    0.37009  -0.972  0.76535   
C - A == 0 -0.26896    0.37009  -0.727  0.90020   
D - A == 0 -0.09026    0.37009  -0.244  0.99895   
E - A == 0  1.46052    0.40541   3.603  0.01767 * 
F - A == 0  2.02814    0.37009   5.480  0.00105 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

আবার চালান (একটি সেট বীজ সহ):

set.seed(20140123)
Dunnet <- glht(fit, linfct=mcp(Group="Dunnett"))
summary(Dunnet)

একই ফলাফল:

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts


Fit: aov(formula = Value ~ Group, data = data)

Linear Hypotheses:
           Estimate Std. Error t value Pr(>|t|)   
B - A == 0 -0.35990    0.37009  -0.972  0.76536   
C - A == 0 -0.26896    0.37009  -0.727  0.90012   
D - A == 0 -0.09026    0.37009  -0.244  0.99895   
E - A == 0  1.46052    0.40541   3.603  0.01794 * 
F - A == 0  2.02814    0.37009   5.480  0.00112 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

প্রতিটি রানের আগে বীজ সেট করে, আপনি ধারাবাহিক ফলাফল পাবেন। অতএব এটি প্রদর্শিত হবে যে পি-মানগুলির গণনায় একটি এলোমেলো সংখ্যা ব্যবহৃত হচ্ছে।

আমার কি মনে হয় এই সামান্য প্রকরণটি একটি সমস্যা? আমি আসলে এটি পছন্দ করি না, তবে আমি এটির সাথেই বেঁচে থাকব। একটি সেট বীজ ব্যবহার করা আপনার ফলাফলকে পুনরায় উত্পাদনযোগ্য করে তুলবে। তাদের চেয়ে আরও কত তারা রয়েছে তার দিক দিয়ে আমি পি-মানগুলি সম্পর্কে চিন্তা না করার পরামর্শ দিই - বরং আপনার জন্য অর্থপূর্ণ এবং দরকারী এমন একটি বেছে নিন । আমি যে প্রকল্পটিতে কাজ করছি সত্যিকারের সেই স্তরটির প্রয়োজন না হলে আমি 5 বা 6 দশমিক পয়েন্টে কী ঘটছে তাতে আকস্মিক না হওয়ার চেষ্টা করি। এই ক্ষেত্রে আমি মনে করি বেশিরভাগ লোক সম্মত হবে যে পি-মান গণনা সামান্য পরিবর্তিত হলেও ফলাফলগুলির ব্যাখ্যা একই হবে।alpha


আপনার উত্তরের জন্য অনেক ধন্যবাদ। আমি মনে করি আপনি কতগুলি তারা আছেন সে সম্পর্কে ভেবে না দেখলে আপনি ঠিক বলেছেন - লোকেরা যেভাবেই হোক পি-মানটির দিকে তাকাতে হবে। আমি মনে করি যদিও আমাকে বীজের একটি পরিচিত মান হিসাবে সেট করতে হবে, কারণ আমার প্রোগ্রামটি বৈধ করতে হলে অবশ্যই অবশ্যই পুনরুত্পাদনযোগ্য হতে হবে। আরও একটি প্রশ্ন - আপনি জানেন যে এলোমেলো বীজ কেন ব্যবহার করা হয়?
ব্যবহারকারী 1578653

1
@ অ্যানিকো দ্বারা লিখিত উত্তরটি দেখুন যা আরও বিস্তারিত ব্যাখ্যা সরবরাহ করে। লক্ষ্য করুন আমি আজকের তারিখটি বীজ হিসাবে ব্যবহার করেছি।
এলিস ভ্যালেন্টাইনার

10

আপনি সঠিক, এখানে একটি এলোমেলো সংখ্যার জেনারেশন জড়িত রয়েছে এবং এটি গণনাগুলি রান-টু-রান থেকে আলাদা হয়। অপরাধী আসলে ডানেটের প্রক্রিয়া নয়, তবে একক-পদক্ষেপের সামঞ্জস্যের জন্য মাল্টিভারিয়েট টি বিতরণ প্রয়োজন।

নিম্নলিখিত কোডটি গণনা করে একটি 5-মাত্রিক ভেক্টর সাথে বিনিময়যোগ্য পারস্পরিক সম্পর্কযুক্ত মাল্টিভিয়ারেট 5 একটি উদাহরণ দেখায় :এক্স টি 5P(X<0)XT5

> library(mvtnorm)
> cr2 <- matrix(rep(0.3, 25), nr=5); diag(cr2) <- 1
> cr2
     [,1] [,2] [,3] [,4] [,5]
[1,]  1.0  0.3  0.3  0.3  0.3
[2,]  0.3  1.0  0.3  0.3  0.3
[3,]  0.3  0.3  1.0  0.3  0.3
[4,]  0.3  0.3  0.3  1.0  0.3
[5,]  0.3  0.3  0.3  0.3  1.0
> b <- pmvt(lower=rep(-Inf,5), upper=rep(0,5), delta=rep(0,5), df=5, corr=cr2)
> a <- pmvt(lower=rep(-Inf,5), upper=rep(0,5), delta=rep(0,5), df=5, corr=cr2)
> all.equal(a,b)
[1] "Attributes: < Component 1: Mean relative difference: 0.1527122 >"
[2] "Mean relative difference: 0.0003698006"     

যদি এটি উদ্বেগের বিষয় থাকে set.seedতবে গণনার আগে কোনও যুক্তির সাথে ঠিক এটি পুনরুত্পাদনযোগ্য করে তুলুন।

যাইহোক, এর আউটপুটটিতে ত্রুটির স্বীকৃতি এবং পরিমাণ রয়েছে glht:

> ss <- summary(glht(aov, linfct=mcp(Group="Dunnett")))
> attr(ss$test$pvalues, "error")
[1] 0.0006597562
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.