ত্রিমুখী পুনরাবৃত্তি ব্যবস্থার আনোভা এর lme4 :: lmer সমতুল্য কী?


11

আমার প্রশ্ন এই প্রতিক্রিয়ার উপর ভিত্তি করে যা দেখিয়েছে কোন lme4::lmerমডেলটি দ্বি-দ্বি পুনরাবৃত্তি ব্যবস্থার সাথে মিলছে আনোভা:

require(lme4)
set.seed(1234)
d <- data.frame(
    y = rnorm(96),
    subject = factor(rep(1:12, 4)),
    a = factor(rep(1:2, each=24)),
    b = factor(rep(rep(1:2, each=12))),
    c = factor(rep(rep(1:2, each=48))))

# standard two-way repeated measures ANOVA:
summary(aov(y~a*b+Error(subject/(a*b)), d[d$c == "1",]))

# corresponding lmer call:
anova(lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject), d[d$c == "1",]))

আমার প্রশ্ন এখন ত্রি-মুখী আনোভার ক্ষেত্রে এটি কীভাবে বাড়ানো যায় তা নিয়ে:

summary(aov(y~a*b*c+Error(subject/(a*b*c)), d))
## [...]
## Error: subject:a:b:c
##           Df Sum Sq Mean Sq F value Pr(>F)
## a:b:c      1  0.101  0.1014   0.115  0.741
## Residuals 11  9.705  0.8822 

প্রাকৃতিক বর্ধনের পাশাপাশি এর সংস্করণগুলিও আনোভা ফলাফলের সাথে মেলে না:

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject), d))
## [...]
## a:b:c  1 0.1014  0.1014  0.1500

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) + 
               (1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))
## [...]
## a:b:c  1 0.1014  0.1014  0.1539

নোট করুন যে এর আগেও খুব অনুরূপ প্রশ্ন করা হয়েছিল । তবে এটির উদাহরণ তথ্য (যা এখানে সরবরাহ করা হয়) অনুপস্থিত ছিল।


আপনি কি নিশ্চিত যে আপনি আপনার দুই স্তরের মডেলটি চান না y ~ a*b + (1 + a*b|subject), d[d$c == "1",]? অথবা সম্ভবত আমি কিছু মিস করছি?
রাসমুস বুথ

@ রাসমাসবুথ এগিয়ে যান এবং এটি ফিট করার চেষ্টা করুন, lmerএলোমেলো প্রভাবগুলির আর কোনও পরিচয় না পেয়ে অভিযোগ করবে। প্রথমদিকে আমিও ভেবেছিলাম যে এটি আমি চাই সেই মডেল, তবে তা নয়। যদি আপনি যে লেমার মডেলটির প্রস্তাব করি আমি স্ট্যান্ডার্ড আনোভা-র সাথে দ্বি-মুখী কেসের জন্য প্রস্তাব করি আপনি দেখতে পাবেন যে এফ-মানগুলি ঠিক মেলে। প্রতিক্রিয়া হিসাবে আমি সংযুক্ত।
হেনরিক 20

3
ত্রি-মুখী সমস্যার জন্য, lmerআপনি যে মডেলটি লিখেছেন (যা এলোমেলো দ্বি-মুখী মিথস্ক্রিয়া বাদ দেয়) 3-টি আরএম-আনোভা সমতুল্য হবে না , তবে আপনি যে দ্বিতীয়টি লিখেছেন (যার মধ্যে এলোমেলো অন্তর্ভুক্ত রয়েছে) দ্বি-মুখী মিথস্ক্রিয়া হওয়া উচিত)। এমনকি কেন সেই মডেলের সাথে কোনও তাত্পর্য রয়েছে, আমি সমস্যাটি কী তা সম্পর্কে একটি কুঁচকে আছে, রাতের খাবার ধরতে যাচ্ছি তখন খেলনা ডেটাসেটের দিকে আরও কিছু নজর দেবে।
জেক ওয়েস্টফল

উত্তর:


18

আপনার প্রশ্নের সরাসরি উত্তর হ'ল আপনি লিখেছেন সর্বশেষ মডেল,

anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) + 
           (1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))

আমি বিশ্বাস করি "নীতিগতভাবে" সঠিক, যদিও এটি একটি অদ্ভুত প্যারামিটারাইজেশন যা প্রকৃত অনুশীলনে সর্বদা ভাল কাজ করে বলে মনে হয় না।

কেন আপনি এই মডেলটি থেকে যে আউটপুটটি পান তা aov()আউটপুটটির সাথে অসতর্ক, কারণ আমি মনে করি এর দুটি কারণ রয়েছে।

  1. আপনার সাধারণ সিমুলেটেড ডেটাসেটটি রোগতাত্ত্বিক যে সেরা-ফিটিং মডেল হ'ল negativeণাত্মক ভেরিয়েন্স উপাদানগুলি বোঝায় যা মিশ্রিত মডেলগুলি lmer()(এবং বেশিরভাগ অন্যান্য মিশ্র মডেল প্রোগ্রামগুলি) মাপসই করে না।
  2. এমনকি অ-প্যাথোলজিকাল ডেটাসেটের সাহায্যেও, যেমনটি আপনি উপরে বর্ণিত হিসাবে মডেলটি সেট আপ করেছেন, তা সবসময় অনুশীলনে ভালভাবে কাজ করে বলে মনে হয় না, যদিও আমাকে অবশ্যই স্বীকার করতে হবে যে আমি আসলে বুঝতে পারি না। এটি আমার মতে সাধারণভাবে অদ্ভুত, তবে এটি অন্য গল্প।

আমি প্রথমে আপনার প্যারামিটারাইজেশনটি প্রদর্শন করব যা আমি আপনার প্রাথমিক দ্বি-মুখী আনোভা উদাহরণকে পছন্দ করি। ধরে নিন যে আপনার ডেটাসেটটি dলোড হয়েছে। আপনার মডেল (নোট করুন যে আমি ডামি থেকে বিপরীতে কোডগুলিতে পরিবর্তন করেছি):

options(contrasts=c("contr.sum","contr.poly"))
mod1 <- lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject),
         data = d[d$c == "1",])
anova(mod1)
# Analysis of Variance Table
#     Df  Sum Sq Mean Sq F value
# a    1 2.20496 2.20496  3.9592
# b    1 0.13979 0.13979  0.2510
# a:b  1 1.23501 1.23501  2.2176

এটি এখানে কাজ করে যে এটি aov()আউটপুট মেলে । আমি যে মডেলটিকে পছন্দ করি তার মধ্যে দুটি পরিবর্তন জড়িত: ম্যানুয়ালি ফ্যাক্টরগুলি কোডিং দিয়ে কারণগুলি যাতে আমরা আর ফ্যাক্টর অবজেক্টগুলির সাথে কাজ না করি (যা আমি 100% ক্ষেত্রে করার পরামর্শ দিই), এবং এলোমেলো প্রভাবগুলি আলাদাভাবে উল্লেখ করে:

d <- within(d, {
  A <- 2*as.numeric(paste(a)) - 3
  B <- 2*as.numeric(paste(b)) - 3
  C <- 2*as.numeric(paste(c)) - 3
})
mod2 <- lmer(y ~ A*B + (1|subject)+(0+A|subject)+(0+B|subject),
             data = d[d$c == "1",])
anova(mod2)
# Analysis of Variance Table
# Df  Sum Sq Mean Sq F value
# A    1 2.20496 2.20496  3.9592
# B    1 0.13979 0.13979  0.2510
# A:B  1 1.23501 1.23501  2.2176

logLik(mod1)
# 'log Lik.' -63.53034 (df=8)
logLik(mod2)
# 'log Lik.' -63.53034 (df=8)

দুটি উপায় সহজেই 2-উপায় সমস্যার মধ্যে সমান। এখন আমরা একটি 3-উপায় সমস্যায় চলে যাব। আমি আগে উল্লেখ করেছি যে আপনি যে দ্যাটাসেটটি দিয়েছেন তা প্যাথলজিকাল। সুতরাং আপনার উদাহরণটি ডেটাসেটের আগে আমি যা করতে চাই তা হ'ল প্রথমে একটি আসল বৈকল্পিক উপাদানগুলির মডেল (যেমন, যেখানে শূন্য-বিহীন উপাদানগুলি সত্য মডেলটিতে অন্তর্নির্মিত হয়) থেকে একটি ডেটাসেট তৈরি করা। প্রথমে আমি দেখাব যে আমার পছন্দসই প্যারামিটারাইজেশনটি আপনি প্রস্তাবিতটির চেয়ে কীভাবে আরও ভালভাবে কাজ করে। তারপরে আমি বৈকল্পিক উপাদানগুলির অনুমানের আরেকটি উপায় প্রদর্শন করব যা এগুলি আরোপ করে না যে সেগুলি অবশ্যই নেতিবাচক হবে। তারপরে আমরা আসল উদাহরণ ডেটাসেটের সাথে সমস্যাটি দেখতে পজিশনে থাকব।

আমাদের 50 টি বিষয় বাদে নতুন ডেটাসেট কাঠামোগত অভিন্ন হবে:

set.seed(9852903)
d2 <- expand.grid(A=c(-1,1), B=c(-1,1), C=c(-1,1), sub=seq(50))
d2 <- merge(d2, data.frame(sub=seq(50), int=rnorm(50), Ab=rnorm(50),
  Bb=rnorm(50), Cb=rnorm(50), ABb=rnorm(50), ACb=rnorm(50), BCb=rnorm(50)))
d2 <- within(d2, {
  y <- int + (1+Ab)*A + (1+Bb)*B + (1+Cb)*C + (1+ABb)*A*B +
    (1+ACb)*A*C + (1+BCb)*B*C + A*B*C + rnorm(50*2^3)
  a <- factor(A)
  b <- factor(B)
  c <- factor(C)
})

যে অনুপাতটি আমরা মেলতে চাই তা হ'ল:

aovMod1 <- aov(y ~ a*b*c + Error(factor(sub)/(a*b*c)), data = d2)
tab <- lapply(summary(aovMod1), function(x) x[[1]][1,2:4])
do.call(rbind, tab)
#                          Sum Sq Mean Sq F value
# Error: factor(sub)       439.48    8.97        
# Error: factor(sub):a     429.64  429.64  32.975
# Error: factor(sub):b     329.48  329.48  27.653
# Error: factor(sub):c     165.44  165.44  17.924
# Error: factor(sub):a:b   491.33  491.33  49.694
# Error: factor(sub):a:c   305.46  305.46  41.703
# Error: factor(sub):b:c   466.09  466.09  40.655
# Error: factor(sub):a:b:c 392.76  392.76 448.101

আমাদের দুটি মডেল এখানে:

mod3 <- lmer(y ~ a*b*c + (1|sub)+(1|a:sub)+(1|b:sub)+(1|c:sub)+
  (1|a:b:sub)+(1|a:c:sub)+(1|b:c:sub), data = d2)
anova(mod3)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1  32.73   32.73  34.278
# b      1  21.68   21.68  22.704
# c      1  12.53   12.53  13.128
# a:b    1  60.93   60.93  63.814
# a:c    1  50.38   50.38  52.762
# b:c    1  57.30   57.30  60.009
# a:b:c  1 392.76  392.76 411.365

mod4 <- lmer(y ~ A*B*C + (1|sub)+(0+A|sub)+(0+B|sub)+(0+C|sub)+
  (0+A:B|sub)+(0+A:C|sub)+(0+B:C|sub), data = d2)
anova(mod4)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# A      1  28.90   28.90  32.975
# B      1  24.24   24.24  27.653
# C      1  15.71   15.71  17.924
# A:B    1  43.56   43.56  49.694
# A:C    1  36.55   36.55  41.703
# B:C    1  35.63   35.63  40.655
# A:B:C  1 392.76  392.76 448.101

logLik(mod3)
# 'log Lik.' -984.4531 (df=16)
logLik(mod4)
# 'log Lik.' -973.4428 (df=16)

আমরা দেখতে পাচ্ছি, কেবলমাত্র দ্বিতীয় পদ্ধতিটি আউটপুটটির সাথে মেলে aov(), যদিও প্রথম পদ্ধতিটি কমপক্ষে বলপार्কে রয়েছে। দ্বিতীয় পদ্ধতিটি উচ্চতর লগ-সম্ভাবনা অর্জন করে। আমি নিশ্চিত নই যে এই দুটি পদ্ধতির কেন পৃথক ফলাফল দেওয়া হয়েছে, যেমন আমি আবারও মনে করি তারা "নীতিগতভাবে" সমতুল্য, তবে সম্ভবত এটি কয়েকটি সংখ্যাসূচক / গুণগত কারণে is অথবা হতে পারে আমার ভুল হয়েছে এবং তারা নীতিগতভাবেও সমতুল্য নয়।

এখন আমি traditionalতিহ্যবাহী আনোভা ধারণার উপর ভিত্তি করে বৈকল্পিক উপাদানগুলি অনুমানের আরেকটি উপায় দেখাব। মূলত আমরা আপনার নকশার জন্য প্রত্যাশিত গড় বর্গ সমীকরণগুলি গ্রহণ করব, গড় বর্গক্ষেত্রের পর্যবেক্ষণকৃত মানগুলিকে প্রতিস্থাপন করব এবং বৈকল্পিক উপাদানগুলির সমাধান করব। প্রত্যাশিত গড় স্কোয়ারগুলি পাওয়ার জন্য আমরা কয়েক বছর আগে লিখেছি একটি আর ফাংশন ব্যবহার করব EMS(), যা ডকুমেন্টেড এখানে রয়েছে । আমি ধরে নিচে ফাংশনটি ইতিমধ্যে লোড হয়েছে।

# prepare coefficient matrix
r <- 1 # number of replicates
s <- 50 # number of subjects
a <- 2 # number of levels of A
b <- 2 # number of levels of B
c <- 2 # number of levels of C
CT <- EMS(r ~ a*b*c*s, random="s")
expr <- strsplit(CT[CT != ""], split="")
expr <- unlist(lapply(expr, paste, collapse="*"))
expr <- sapply(expr, function(x) eval(parse(text=x)))
CT[CT != ""] <- expr
CT[CT == ""] <- 0
mode(CT) <- "numeric"
# residual variance and A*B*C*S variance are confounded in
# this design, so remove the A*B*C*S variance component
CT <- CT[-15,-2]
CT
#        VarianceComponent
# Effect  e b:c:s a:c:s a:b:s a:b:c c:s b:s a:s b:c a:c a:b s   c   b   a
#   a     1     0     0     0     0   0   0   4   0   0   0 0   0   0 200
#   b     1     0     0     0     0   0   4   0   0   0   0 0   0 200   0
#   c     1     0     0     0     0   4   0   0   0   0   0 0 200   0   0
#   s     1     0     0     0     0   0   0   0   0   0   0 8   0   0   0
#   a:b   1     0     0     2     0   0   0   0   0   0 100 0   0   0   0
#   a:c   1     0     2     0     0   0   0   0   0 100   0 0   0   0   0
#   b:c   1     2     0     0     0   0   0   0 100   0   0 0   0   0   0
#   a:s   1     0     0     0     0   0   0   4   0   0   0 0   0   0   0
#   b:s   1     0     0     0     0   0   4   0   0   0   0 0   0   0   0
#   c:s   1     0     0     0     0   4   0   0   0   0   0 0   0   0   0
#   a:b:c 1     0     0     0    50   0   0   0   0   0   0 0   0   0   0
#   a:b:s 1     0     0     2     0   0   0   0   0   0   0 0   0   0   0
#   a:c:s 1     0     2     0     0   0   0   0   0   0   0 0   0   0   0
#   b:c:s 1     2     0     0     0   0   0   0   0   0   0 0   0   0   0
#   e     1     0     0     0     0   0   0   0   0   0   0 0   0   0   0

# get mean squares
(MSmod <- summary(aov(y ~ a*b*c*factor(sub), data=d2)))
#                   Df Sum Sq Mean Sq
# a                  1  429.6   429.6
# b                  1  329.5   329.5
# c                  1  165.4   165.4
# factor(sub)       49  439.5     9.0
# a:b                1  491.3   491.3
# a:c                1  305.5   305.5
# b:c                1  466.1   466.1
# a:factor(sub)     49  638.4    13.0
# b:factor(sub)     49  583.8    11.9
# c:factor(sub)     49  452.2     9.2
# a:b:c              1  392.8   392.8
# a:b:factor(sub)   49  484.5     9.9
# a:c:factor(sub)   49  358.9     7.3
# b:c:factor(sub)   49  561.8    11.5
# a:b:c:factor(sub) 49   42.9     0.9
MS <- MSmod[[1]][,"Mean Sq"]

# solve
ans <- solve(CT, MS)
cbind(rev(ans[c(grep("e",names(ans)),grep("s",names(ans)))])/
        c(1,2,2,2,4,4,4,1))
# s     1.0115549
# a:s   1.5191114
# b:s   1.3797937
# c:s   1.0441351
# a:b:s 1.1263331
# a:c:s 0.8060402
# b:c:s 1.3235126
# e     0.8765093
summary(mod4)
# Random effects:
#  Groups   Name        Variance Std.Dev.
#  sub      (Intercept) 1.0116   1.0058  
#  sub.1    A           1.5191   1.2325  
#  sub.2    B           1.3798   1.1746  
#  sub.3    C           1.0441   1.0218  
#  sub.4    A:B         1.1263   1.0613  
#  sub.5    A:C         0.8060   0.8978  
#  sub.6    B:C         1.3235   1.1504  
#  Residual             0.8765   0.9362  
# Number of obs: 400, groups:  sub, 50

ঠিক আছে, এখন আমরা আসল উদাহরণে ফিরে আসব। আমরা যে অনুপাতের সাথে মিলের চেষ্টা করছি সেগুলি হ'ল:

aovMod2 <- aov(y~a*b*c+Error(subject/(a*b*c)), data = d)
tab <- lapply(summary(aovMod2), function(x) x[[1]][1,2:4])
do.call(rbind, tab)
#                       Sum Sq Mean Sq F value
# Error: subject       13.4747  1.2250        
# Error: subject:a      1.4085  1.4085  1.2218
# Error: subject:b      3.1180  3.1180  5.5487
# Error: subject:c      6.3809  6.3809  5.2430
# Error: subject:a:b    1.5706  1.5706  2.6638
# Error: subject:a:c    1.0907  1.0907  1.5687
# Error: subject:b:c    1.4128  1.4128  2.3504
# Error: subject:a:b:c  0.1014  0.1014  0.1149

আমাদের দুটি মডেল এখানে:

mod5 <- lmer(y ~ a*b*c + (1|subject)+(1|a:subject)+(1|b:subject)+
  (1|c:subject)+(1|a:b:subject)+(1|a:c:subject)+(1|b:c:subject),
  data = d)
anova(mod5)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1 0.8830  0.8830  1.3405
# b      1 3.1180  3.1180  4.7334
# c      1 3.8062  3.8062  5.7781
# a:b    1 1.5706  1.5706  2.3844
# a:c    1 0.9620  0.9620  1.4604
# b:c    1 1.4128  1.4128  2.1447
# a:b:c  1 0.1014  0.1014  0.1539

mod6 <- lmer(y ~ A*B*C + (1|subject)+(0+A|subject)+(0+B|subject)+
  (0+C|subject)+(0+A:B|subject)+(0+A:C|subject)+
  (0+B:C|subject), data = d)
anova(mod6)
# Analysis of Variance Table
#       Df Sum Sq Mean Sq F value
# a      1 0.8830  0.8830  1.3405
# b      1 3.1180  3.1180  4.7334
# c      1 3.8062  3.8062  5.7781
# a:b    1 1.5706  1.5706  2.3844
# a:c    1 0.9620  0.9620  1.4604
# b:c    1 1.4128  1.4128  2.1447
# a:b:c  1 0.1014  0.1014  0.1539

logLik(mod5)
# 'log Lik.' -135.0351 (df=16)
logLik(mod6)
# 'log Lik.' -134.9191 (df=16)

এই ক্ষেত্রে দুটি মডেল মূলত একই ফলাফল দেয়, যদিও দ্বিতীয় পদ্ধতিতে খুব সামান্য উচ্চতর লগ-সম্ভাবনা রয়েছে। কোনটিই মেলে না aov()। তবে আসুন আমরা উপরে হিসাবে যেমন ভেরিয়েন্স উপাদানগুলির সমাধান করি তখন আমরা কী পাই তা দেখে আসুন, আনোভা পদ্ধতিটি ব্যবহার করে যা ভেরিয়েন্স উপাদানগুলিকে অ-নেতিবাচক হতে বাধা দেয় না (তবে কেবলমাত্র ধারাবাহিক নকশাগুলিতে কোনও অবিচ্ছিন্ন ভবিষ্যদ্বাণীকারী এবং কোনটিই ব্যবহার করা যায় না) অনুপস্থিত ডেটা; ধ্রুপদী আনোভা অনুমান)।

# prepare coefficient matrix
r <- 1 # number of replicates
s <- 12 # number of subjects
a <- 2 # number of levels of A
b <- 2 # number of levels of B
c <- 2 # number of levels of C
CT <- EMS(r ~ a*b*c*s, random="s")
expr <- strsplit(CT[CT != ""], split="")
expr <- unlist(lapply(expr, paste, collapse="*"))
expr <- sapply(expr, function(x) eval(parse(text=x)))
CT[CT != ""] <- expr
CT[CT == ""] <- 0
mode(CT) <- "numeric"
# residual variance and A*B*C*S variance are confounded in
# this design, so remove the A*B*C*S variance component
CT <- CT[-15,-2]

# get mean squares
MSmod <- summary(aov(y ~ a*b*c*subject, data=d))
MS <- MSmod[[1]][,"Mean Sq"]

# solve
ans <- solve(CT, MS)
cbind(rev(ans[c(grep("e",names(ans)),grep("s",names(ans)))])/
        c(1,2,2,2,4,4,4,1))
# s      0.04284033
# a:s    0.03381648
# b:s   -0.04004005
# c:s    0.04184887
# a:b:s -0.03657940
# a:c:s -0.02337501
# b:c:s -0.03514457
# e      0.88224787
summary(mod6)
# Random effects:
#  Groups    Name        Variance  Std.Dev. 
#  subject   (Intercept) 7.078e-02 2.660e-01
#  subject.1 A           6.176e-02 2.485e-01
#  subject.2 B           0.000e+00 0.000e+00
#  subject.3 C           6.979e-02 2.642e-01
#  subject.4 A:B         1.549e-16 1.245e-08
#  subject.5 A:C         4.566e-03 6.757e-02
#  subject.6 B:C         0.000e+00 0.000e+00
#  Residual              6.587e-01 8.116e-01
# Number of obs: 96, groups:  subject, 12

এখন আমরা দেখতে পাই মূল উদাহরণটি সম্পর্কে রোগগত কী। সেরা-ফিটিং মডেল এমনটি যা বোঝায় যে এলোমেলো বিভিন্ন রূপগুলির উপাদানগুলি নেতিবাচক। তবে lmer()(এবং বেশিরভাগ অন্যান্য মিশ্র মডেল প্রোগ্রামগুলি) বৈকল্পিক উপাদানগুলির অনুমানকে অ-নেতিবাচক বলে সীমাবদ্ধ করে। এটি সাধারণত একটি সংবেদনশীল প্রতিবন্ধক হিসাবে বিবেচিত হয়, কারণ বৈকল্পিকগুলি অবশ্যই সত্যিকার অর্থে নেতিবাচক হতে পারে না। তবে এই সীমাবদ্ধতার একটি পরিণতি হ'ল মিশ্র মডেলগুলি সঠিকভাবে ডেটাসেটগুলি উপস্থাপন করতে অক্ষম যা নেতিবাচক ইন্ট্রাক্লাস পারস্পরিক সম্পর্কের বৈশিষ্ট্য রাখে, অর্থাৎ, একই ক্লাস্টারের পর্যবেক্ষণগুলি কম যেখানে ডেটাসেটগুলি(বরং আরও বেশি) ডেটাসেট থেকে এলোমেলোভাবে আঁকা পর্যবেক্ষণের তুলনায় গড় অনুরূপ, এবং ফলস্বরূপ যেখানে ক্লাস্টারের ভেরিয়েন্স-ক্লাস্টারের বৈকল্পের মধ্যে যথেষ্ট পরিমাণে ছাড়িয়ে যায়। এই জাতীয় ডেটাসেটগুলি যথাযথভাবে যুক্তিসঙ্গত ডেটাসেট যেগুলি মাঝে মধ্যে আসল বিশ্বে আসে (বা ঘটনাক্রমে সিমুলেটেড!) তবে সেগুলি সংবেদনশীলভাবে কোনও বৈকল্পিক উপাদানগুলির মডেল দ্বারা বর্ণনা করা যায় না, কারণ এগুলি নেতিবাচক ভেরিয়েন্স উপাদানগুলি বোঝায়। এগুলি যেমন এই জাতীয় মডেলগুলির দ্বারা বর্ণিত "অ-সংবেদনশীল" হতে পারে, যদি সফ্টওয়্যার এটির অনুমতি দেয়। aov()এটি অনুমতি দেয়। lmer()না.


+1 টি। পুনরায় I am not sure why these two methods give different results, as again I think they are "in principle" equivalent, but maybe it is for some numerical/computational reasons- আপনি কি এখন এটি আরও ভাল বুঝতে পারবেন (দুই বছর পরে)? আমি পার্থক্যটি কী তা জানার চেষ্টা করেছি, তবে তাও পেলাম না ...
অ্যামিবা

@ অ্যামিবা আমার বর্তমান চিন্তাভাবনা এখনও ততটা সমান: এএফআইএইকি, দুটি মডেল পরিসংখ্যানগতভাবে সমতুল্য (এই অর্থে যে তারা ডেটা সম্পর্কে একই ভবিষ্যদ্বাণী করে এবং একই স্ট্যান্ডার্ড ত্রুটিগুলি বোঝায়), যদিও এলোমেলো প্রভাবগুলি পরামিতিযুক্ত ভিন্নভাবে। আমি মনে করি পর্যবেক্ষণ করা পার্থক্য - যা কেবল কখনও কখনও ঘটে বলে মনে হয় - এটি কেবল গণনা সংক্রান্ত সমস্যার কারণে। বিশেষত, আমি সন্দেহ করি যে দুটি মডেল হুবহু একই উত্তর না ফিরে আসা পর্যন্ত আপনি অপ্টিমাইজার সেটিংসে (যেমন শুরু করার পয়েন্টগুলিতে পরিবর্তন বা আরও কঠোর রূপান্তর মানদণ্ড ব্যবহার করে) ঘুরে বেড়াতে পারেন।
জেক ওয়েস্টফল

আপনার উত্তর দেওয়ার জন্য ধন্যবাদ. আমি বরং অপ্রকাশিত: আমি অপ্টিমাইজার সেটিংসের সাহায্যে মিতাময় করার চেষ্টা করেছি এবং ফলাফলগুলিতে কোনও পরিবর্তন করতে পারিনি; আমার ধারণাটি হ'ল উভয় মডেলই ভাল রূপান্তরিত। আমি এই মুহুর্তে একটি পৃথক প্রশ্ন জিজ্ঞাসা করতে পারেন।
অ্যামিবা

আমি এই সমস্যাটি তদন্ত করে চলেছি এবং নিম্নলিখিতগুলি উপলব্ধি করেছি: যত তাড়াতাড়ি পুনরাবৃত্তি-পদক্ষেপের কারণগুলির দুটি স্তরের বেশি হয়, এই দুটি পদ্ধতি সম্পূর্ণ আলাদা হয়ে যায়! তাহলে Aহয়েছে মাত্রা তারপর শুধুমাত্র একটি ভ্যারিয়েন্স পরামিতি অনুমান, যেহেতু অনুমান ভ্যারিয়েন্স পরামিতি এবং তাদের মধ্যে সম্পর্কযুক্তরূপে। আমার বোধগম্যতা হল যে শাস্ত্রীয় আনোভা কেবলমাত্র একটি বৈকল্পিক প্যারামিটারের অনুমান করে এবং তাই প্রথম পদ্ধতির সমতুল্য হওয়া উচিত, দ্বিতীয়টি নয়। রাইট? তবে উভয় পদ্ধতিই একটি প্যারামিটারের অনুমান করে এবং কেন তারা একমত নয় তা আমি এখনও নিশ্চিত নই। কে - 1 কে ( কে - 1 ) / 2 কে = 2k(1|A:sub)(0+A|sub)k1k(k1)/2k=2
অ্যামিবা

এই ইস্যুটিতে ফিরে আসছি ... আমি লক্ষ্য করেছি যে দ্বি-ফ্যাক্টর ক্ষেত্রে যেখানে দুটি lmerকল একই ধরণের anova()আউটপুট তৈরি করে , এলোমেলো প্রভাবের বৈকল্পিক তবুও বেশ আলাদা: দেখুন VarCorr(mod1)এবং VarCorr(mod2)। কেন এমন হয় আমি বেশ বুঝতে পারি না; আপনি কি? জন্য mod3এবং mod4, এক দেখতে পারেন সাত চার আউট ভেরিয়ানস জন্য mod3আসলে শূন্য সমান (জন্য mod4সাতটি হয় নন-জিরো); এই " mod3একাকীত্ব " এ কারণেই সম্ভবত অ্যানোভা টেবিলগুলি পৃথক হয়। তদন্য, কিভাবে আপনি আপনার "পছন্দের পথ" ব্যবহার করবে aএবং bতুলনায় আরো দুই স্তর ছিল?
অ্যামিবা

1

করছেন a, b, cনির্দিষ্ট অথবা র্যান্ডম প্রভাব? সেগুলি স্থির হয়ে থাকলে আপনার বাক্য গঠনটি কেবল সহজভাবে হবে

summary(aov(y~a*b*c+Error(subject), d))
Error: subject
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals 11  13.47   1.225               

Error: Within
          Df Sum Sq Mean Sq F value  Pr(>F)   
a          1   1.41   1.408   1.730 0.19235   
b          1   3.12   3.118   3.829 0.05399 . 
c          1   6.38   6.381   7.836 0.00647 **
a:b        1   1.57   1.571   1.929 0.16889   
a:c        1   1.09   1.091   1.339 0.25072   
b:c        1   1.41   1.413   1.735 0.19168   
a:b:c      1   0.10   0.101   0.124 0.72518   
Residuals 77  62.70   0.814  

library(lmerTest)
anova(lmer(y ~ a*b*c+(1|subject), data=d))
Analysis of Variance Table of type 3  with  Satterthwaite 
approximation for degrees of freedom
      Sum Sq Mean Sq NumDF  DenDF F.value   Pr(>F)   
a     1.4085  1.4085     1 76.991  1.7297 0.192349   
b     3.1180  3.1180     1 76.991  3.8291 0.053995 . 
c     6.3809  6.3809     1 76.991  7.8363 0.006469 **
a:b   1.5706  1.5706     1 76.991  1.9289 0.168888   
a:c   1.0907  1.0907     1 76.991  1.3394 0.250716   
b:c   1.4128  1.4128     1 76.991  1.7350 0.191680   
a:b:c 0.1014  0.1014     1 76.991  0.1245 0.725183  

তারা স্থির প্রভাব। যাইহোক, আপনি যে আনোভা মডেলটি ফিট করেন তা এমন মডেল নয় যা ধ্রুপদী পুনরাবৃত্তি ব্যবস্থা আনোভা মডেল বলে মনে হয়, উদাহরণস্বরূপ, এখানে দেখুন । আপনার এবং আমার ক্ষেত্রে ত্রুটি স্তরটি দেখুন।
হেনরিক 20

1
আসলে তারা কীভাবে এটি করে তা ভুল। যদি আপনার একটি সম্পূর্ণ ক্রস ফ্যাক্টরিয়াল বারবার ব্যবস্থা ডিজাইন (বা এলোমেলোভাবে ব্লক ফ্যাক্টরিয়াল ডিজাইন) থাকে তবে আপনার subjectসমস্ত প্রভাবের (যেমন, Within) বাদে আপনার কেবলমাত্র 1 টি ত্রুটি পদ পাওয়া উচিত । পরীক্ষামূলক ডিজাইন দেখুন: কর্ক দ্বারা অধ্যয়ন বিজ্ঞান (2013) জন্য পদ্ধতি, অধ্যায় 10 (p.458) বা আমার পোস্ট এখানে
নাকাজাওয়া

আসুন এই মুহুর্তের জন্য এই প্রশ্নটির পক্ষবিধুনন করে ধরে নেওয়া যাক যে আমি যে মডেলটি ফিট করেছি তা সঠিক মডেল হবে। আপনি কিভাবে এটি ব্যবহার করে ফিট করবেন lmer? তবুও আমি আমার কির্কের অনুলিপিটি পেয়েছি (কেবলমাত্র দ্বিতীয় সংস্করণ) এবং এটি কী বলেছে তা দেখতে পাবে।
হেনরিক 20

আপনি কर्कের অধ্যায়টি সম্পর্কে কী ভাবছেন তা জানতে আগ্রহী। আমি মনে করি ২ য় সংখ্যার অধ্যায়টি। এটা ভিন্ন. ইতিমধ্যে আমি বিভিন্ন lmerমডেল ফিট করার চেষ্টা করব । মডেল ফিটটি চেক করার সর্বোত্তম উপায় হ'ল তাদের ডিএফ ব্যবহার করে চেক করা lmerTestকারণ কেআর আনুমানিক আপনাকে exactdfs দেয় এবং তাই পি-মান বলে values
মাসাতো নাকাজাওয়া

1
আমার কাছে কर्कের ২ য় সংস্করণ রয়েছে, যেখানে আমি বিশ্বাস করি প্রাসঙ্গিক আলোচনা পৃষ্ঠা 443-449-তে রয়েছে, যা দ্বি-মুখী (ত্রি-মুখী নয়) উদাহরণ নিয়ে আলোচনা করে। প্রত্যাশিত গড় বর্গক্ষেত্রগুলি হয় হয় A এবং B এর সংযোজন অনুমান করে বা দেওয়া হয়, পি তে দেওয়া হয়। 447. ধরে নেওয়া যে এ এবং বি স্থির হয়েছে এবং বিষয়গুলি / ব্লকগুলি এলোমেলো, আমরা "নন-অ্যাডিটিভ মডেল" এর আওতায় কર્ક দ্বারা তালিকাভুক্ত প্রত্যাশিত গড় স্কোয়ারগুলি থেকে দেখতে পাচ্ছি যে এ, বি, এবং এবি পরীক্ষার প্রতিটি পৃথক ত্রুটির শর্তাদি জড়িত, যেমন, ব্লক / সাবজেক্টের সাথে প্রাসঙ্গিক ইন্টারঅ্যাকশন। একই নীতিটি বর্তমান ত্রিমুখী উদাহরণ পর্যন্ত প্রসারিত।
জ্যাক ওয়েস্টফল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.