আনোভা () কমান্ড একটি লার মডেল অবজেক্টের সাথে কী করে?


30

আশা করি এটি এমন একটি প্রশ্নের উত্তর যা এখানে মিশ্রিত-ইফেক্ট মডেল lmer( lme4 আর প্যাকেজ থেকে) ফিট করে এমন স্কোয়ারের পরিমাণগুলি পচিয়ে দেওয়ার প্রকৃতি সম্পর্কে এখানে কেউ উত্তর দিতে পারে ।

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

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

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

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

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

উদাহরণ হিসাবে:

library(faraway)
library(lme4)
data(irrigation)

anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))

Analysis of Variance Table
           Df Sum Sq Mean Sq F value
irrigation  3 1.6605  0.5535  0.3882
variety     1 2.2500  2.2500  1.5782

summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))

Error: field
           Df Sum Sq Mean Sq F value Pr(>F)
irrigation  3  40.19   13.40   0.388  0.769
Residuals   4 138.03   34.51               

Error: Within
          Df Sum Sq Mean Sq F value Pr(>F)
variety    1   2.25   2.250   1.578  0.249
Residuals  7   9.98   1.426               

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


1
আপনি ফাংশনটি একবার দেখতে চান যা mixed()থেকে afexআপনি কী চান (অফার করে method = "PB") অফার করে। এবং আপনি স্পষ্টতই খেলনা ডেটার সাথে কিছু টেস্টিং করেছেন এটি অবশ্যই কার্যকর হবে যদি আপনি ডেটা এবং কোডের সাথে সেই সমতুল্যতা প্রদর্শন করতে পারেন (সুতরাং, কোনও +1 নয়)।
হেনরিক

@ হেনরিক শক্ত জনতার ... মার্টিন, আপনি কি ফ্যারাওয়ে (2006) এর রেফারেন্স দিতে পারবেন?
প্যাট্রিক কৌলম্বে


@ পেট্রিককৌলম্বহেহে, আপনি ঠিক বলেছেন। তবে কখনও কখনও কিছু বন্ধুত্বপূর্ণ শক্তি আরও ভাল প্রশ্ন পেতে সহায়তা করে।
হেনরিক

1
হারুন বইয়ের রেফারেন্সে সঠিক, এটি মূলত সরবরাহ না করার জন্য ক্ষমা চেয়েছেন!
মার্টিন

উত্তর:


31

উত্স, লুক ব্যবহার করুন। আমরা আনোভা ফাংশনটি করে ভেতরে উঁকি দিতে পারি getAnywhere(anova.Mermod)। এই ফাংশনের প্রথম অংশটি দুটি পৃথক মডেলের তুলনা করার জন্য। স্থির প্রতিক্রিয়াগুলির উপর আনোভা elseদ্বিতীয়ার্ধে বড় ব্লকে আসে :

 dc <- getME(object, "devcomp")
        X <- getME(object, "X")
        asgn <- attr(X, "assign")
        stopifnot(length(asgn) == (p <- dc$dims[["p"]]))
            ss <- as.vector(object@pp$RX() %*% object@beta)^2
        names(ss) <- colnames(X)
        terms <- terms(object)
        nmeffects <- attr(terms, "term.labels")[unique(asgn)]
        if ("(Intercept)" %in% names(ss)) 
            nmeffects <- c("(Intercept)", nmeffects)
        ss <- unlist(lapply(split(ss, asgn), sum))
        stopifnot(length(ss) == length(nmeffects))
        df <- vapply(split(asgn, asgn), length, 1L)
        ms <- ss/df
        f <- ms/(sigma(object)^2)
        table <- data.frame(df, ss, ms, f)
        dimnames(table) <- list(nmeffects, c("Df", "Sum Sq", 
            "Mean Sq", "F value"))
        if ("(Intercept)" %in% nmeffects) 
            table <- table[-match("(Intercept)", nmeffects), 
                ]
        attr(table, "heading") <- "Analysis of Variance Table"
        class(table) <- c("anova", "data.frame")
        table

objectlmer আউটপুট হয়। আমরা 5 নং লাইনে স্কোয়ারের যোগফল গণনা করতে শুরু করি: ss <- as.vector ...কোড betaএকটি উচ্চতর ত্রিভুজাকার ম্যাট্রিক্স দ্বারা নির্দিষ্ট পরামিতিগুলিকে (ইন ) গুণ করে ; তারপরে প্রতিটি শব্দকে বর্গক্ষেত্র করে। সেচের উদাহরণের জন্য এটি upperর্ধ্ব ত্রিভুজাকার ম্যাট্রিক্স। প্রতিটি সারি পাঁচটি স্থিরপ্রতিক্রিয়া পরামিতিগুলির মধ্যে একটির সাথে মিলে যায় (বিরতি, সেচের জন্য স্বাধীনতার 3 ডিগ্রি, বিভিন্নতার জন্য 1 ডিএফ)।

zapsmall(irrigation.lmer@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]  [,5]
[1,] 0.813 0.203  0.203  0.203 0.407
[2,] 0.000 0.352 -0.117 -0.117 0.000
[3,] 0.000 0.000  0.332 -0.166 0.000
[4,] 0.000 0.000  0.000  0.287 0.000
[5,] 0.000 0.000  0.000  0.000 2.000

প্রথম সারিটি আপনাকে বাধাদানের জন্য স্কোয়ারের যোগফল দেয় এবং শেষটি আপনাকে ক্ষেত্রের বিভিন্ন প্রকারের জন্য এসএস দেয়। সারি 2-4 সারিগুলি কেবল সেচ স্তরের 3 টি পরামিতি জড়িত তাই প্রাক-গুণন আপনাকে সেচের জন্য এসএসের তিনটি অংশ দেয় pieces

এই টুকরাগুলি নিজেদের মধ্যে আকর্ষণীয় নয় কারণ তারা আর-এ ডিফল্ট চিকিত্সার বৈসাদৃশ্য থেকে আসে তবে লাইনে ss <- unlist(lapply(split ....বেটস স্তরের সংখ্যা এবং কোন কারণগুলি তারা উল্লেখ করে তা অনুসারে স্কোয়ারের পরিমাণের বিটগুলি স্কুপ করে। এখানে প্রচুর বই রাখার কাজ চলছে। আমরা স্বাধীনতার ডিগ্রিগুলিও পাই (যা সেচের জন্য 3 টি)। তারপরে, তিনি গড় স্কোয়ারগুলি পাবেন যা প্রিন্ট আউটটিতে প্রদর্শিত হবে anova। অবশেষে, তিনি তার সমস্ত মাধ্যমগুলি স্কোয়ারের মধ্যে-গ্রুপের অবশিষ্টাংশগুলি দ্বারা ভাগ করেন sigma(object)^2

lmeraovlmerRXআর00σ2/σ2σ2

অ্যাসিপটোটিক্যালি, স্থির প্রভাবগুলির অনুমানের বিতরণ রয়েছে:

β^~এন(β,σ2[আর00-1আর00-টি])

আর00β^β=0σ2σ2σ2আর00σ2

নোট করুন যে ডেটা ভারসাম্যহীন হলে আপনি একই এফ পরিসংখ্যানটি পেতেন না। আপনি যদি আরএমএল এর পরিবর্তে এমএল ব্যবহার করতেন তবে আপনি একই পরিসংখ্যানের পরিসংখ্যানও অর্জন করতে পারবেন না।

aovσ2σ2σ2σ2

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

আর00

zapsmall(fit2@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]   [,5]
[1,] 0.816 0.205  0.205  0.205  0.457
[2,] 0.000 0.354 -0.119 -0.119 -0.029
[3,] 0.000 0.000  0.334 -0.168 -0.040
[4,] 0.000 0.000  0.000  0.288 -0.071
[5,] 0.000 0.000  0.000  0.000  1.874

আপনি দেখতে পাচ্ছেন যে সেচ পরামিতিগুলির জন্য স্কোয়ারের যোগফলগুলি এখন কিছুটা varietyপ্রভাবও অন্তর্ভুক্ত করে।


10
+6, একটি পুরানো, উত্তরহীন প্রশ্নটি উত্থাপিত হওয়া এবং এত ভাল উত্তর দেওয়া দেখতে সর্বদা সুন্দর। উত্সটি আপনার সাথে থাকতে পারে ...
গুং - মনিকা পুনরায়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.