কেন লিটারেস্ট () আনোভা (পরীক্ষা = "এলআরটি") এর সাথে মেলে না


15

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

প্ল্যাটফর্ম: লিনাক্স মিন্ট 17, lmtestসংস্করণ 0.9-33 এ চলছে 3.2.0

কোডের উদাহরণ:

set.seed(1) # Reproducibility
n=1000
y = runif(n, min=-1, max=1)
a = factor(sample(1:5, size=n, replace=T))
b = runif(n)

# Make y dependent on the other two variables
y = y + b * 0.1 + ifelse(a==1, 0.25, 0)
mydata = data.frame(y,a,b)

# Models
base = lm(y ~ a, data=mydata)
full = lm(y ~ a + b, data=mydata)

# Anova
anova(base, full, test="LRT")

# lrtest
library(lmtest)
lrtest(base, full)

# Homebrew log-likelihood test
like.diff = logLik(full) - logLik(base)
df.diff = base$df.residual - full$df.residual
pchisq(as.numeric(like.diff) * 2, df=df.diff, lower.tail=F)

আমি যখন এটি চালনা করি, তখন anova()0.6071 এর একটি পি-মান দেয়, যখন অন্য দুজন 0.60599 দেয়। একটি সামান্য পার্থক্য, তবে সামঞ্জস্যপূর্ণ এবং ভাসমান পয়েন্ট সংখ্যা কীভাবে সংরক্ষণ করা হয় তা সঠিকভাবে বোঝা যায় না। কেউ ব্যাখ্যা করতে পারেন কেন anova()আলাদা উত্তর দেয়?

উত্তর:


7

পরীক্ষার পরিসংখ্যানগুলি ভিন্নভাবে উত্পন্ন হয়। anova.lmlistস্কোয়ারের অবশিষ্টাংশের যোগফলের ছোট আকারের পার্থক্য ব্যবহার করে:

anova(base, full, test="LRT")
#  Res.Df    RSS Df Sum of Sq Pr(>Chi)
#1    995 330.29                      
#2    994 330.20  1   0.08786   0.6071

vals <- (sum(residuals(base)^2) - sum(residuals(full)^2))/sum(residuals(full)^2) * full$df.residual 
pchisq(vals, df.diff, lower.tail = FALSE)
#[1] 0.6070549

16

পূর্ববর্তী উত্তরে বর্ণিত হিসাবে, পার্থক্যটি স্কেলিংয়ের একটি পার্থক্যে নেমে আসে, অর্থাত্ ত্রুটির মানক বিচ্যুতির জন্য বিভিন্ন অনুমানকারী। পার্থক্যের উত্স হ'ল (১) (নিরপেক্ষ ওএলএস অনুমানকারী) বনাম স্কেলিং (পক্ষপাতদুষ্ট এমএল অনুমানক), এবং (২) নাল অনুমান বা বিকল্পের অধীনে অনুমানকারী ব্যবহার করে।এনnkn

প্রয়োগের সম্ভাবনা অনুপাতের পরীক্ষায় বিকল্পের অধীনে ওএলএস অনুমানকারী ব্যবহার করার lrtest()সময় প্রতিটি মডেলের আলাদাভাবে এমএল অনুমানকারী anova(..., test = "LRT")ব্যবহার করা হয়।

sd_ols <- function(object) sqrt(sum(residuals(object)^2)/df.residual(object))
sd_mle <- function(object) sqrt(mean(residuals(object)^2))

তারপর পরিসংখ্যান যে lrtest()গণনা হয়

ll <- function(object, sd) sum(dnorm(model.response(model.frame(object)),
  mean = fitted(object), sd = sd, log = TRUE))
-2 * (ll(base, sd_mle(base)) - ll(full, sd_mle(full)))
## [1] 0.266047

anova(..., test = "LRT") অন্যদিকে ব্যবহার

-2 * (ll(base, sd_ols(full)) - ll(full, sd_ols(full)))
## [1] 0.2644859

নাল অনুমানের অধীনে উভয়ই asyptotically সমতুল্য, অবশ্যই, তবে সসীম নমুনায় একটি সামান্য পার্থক্য রয়েছে।


1
উত্তর করার জন্য ধন্যবাদ. সুতরাং, আমরা কি বলতে পারি যে একটি বৈকল্পিক অন্যটির চেয়ে ভাল? উদ্বেগ ছাড়াই আমি কী এ্যানোভা-পরীক্ষা ব্যবহার করতে পারি?
জুলিয়ান

1
আমি এই প্রশ্ন সম্পর্কিত কোনও তাত্ত্বিক ফলাফল জানি না তবে ওএলএস রূপটি গাউসীয় ত্রুটিযুক্ত ছোট নমুনায় কিছুটা ভাল অভিনয় করলে আমি অবাক হব না। তবে ইতিমধ্যে মাঝারি আকারের বড় নমুনাগুলিতে পার্থক্যগুলি নগণ্য হওয়া উচিত।
আছিম জেলিলেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.