আমি মডেল ফিটের তুলনায় আরে সম্ভাবনা অনুপাত পরীক্ষা করার উপায়গুলি খুঁজছিলাম। আমি প্রথম নিজেকে কোডেড, তারপর উভয় ডিফল্ট পাওয়া 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()
আলাদা উত্তর দেয়?