Effectsपैकेज के लिए एक बहुत तेज और सुविधाजनक तरीका प्रदान मिश्रित प्रभाव मॉडल परिणाम रैखिक साजिश रचने के माध्यम से प्राप्त lme4पैकेज । effectसमारोह गणना विश्वास के अंतराल (सीआईएस) बहुत जल्दी है, लेकिन कैसे भरोसेमंद इन विश्वास के अंतराल कर रहे हैं?
उदाहरण के लिए:
library(lme4)
library(effects)
library(ggplot)
data(Pastes)
fm1 <- lmer(strength ~ batch + (1 | cask), Pastes)
effs <- as.data.frame(effect(c("batch"), fm1))
ggplot(effs, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = effs[effs$batch == "A", "lower"],
ymax = effs[effs$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()

effectsपैकेज का उपयोग करके गणना की गई CI के अनुसार , बैच "E" बैच "A" के साथ ओवरलैप नहीं होता है।
यदि मैं confint.merModफ़ंक्शन और डिफ़ॉल्ट विधि का उपयोग करके समान कोशिश करता हूं :
a <- fixef(fm1)
b <- confint(fm1)
# Computing profile confidence intervals ...
# There were 26 warnings (use warnings() to see them)
b <- data.frame(b)
b <- b[-1:-2,]
b1 <- b[[1]]
b2 <- b[[2]]
dt <- data.frame(fit = c(a[1], a[1] + a[2:length(a)]),
lower = c(b1[1], b1[1] + b1[2:length(b1)]),
upper = c(b2[1], b2[1] + b2[2:length(b2)]) )
dt$batch <- LETTERS[1:nrow(dt)]
ggplot(dt, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = dt[dt$batch == "A", "lower"],
ymax = dt[dt$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()

मैं देखता हूं कि सभी सीआई ओवरलैप करते हैं। मुझे यह संकेत देते हुए चेतावनी भी मिलती है कि फ़ंक्शन भरोसेमंद CI की गणना करने में विफल रहा। यह उदाहरण और मेरा वास्तविक डेटासेट, मुझे संदेह है कि effectsपैकेज सीआई गणना में शॉर्टकट लेता है जो कि सांख्यिकीविदों द्वारा पूरी तरह से अनुमोदित नहीं हो सकता है। ऑब्जेक्ट्स के पैकेज से फ़ंक्शन द्वारा दिए गए CI कैसे भरोसेमंद हैं ?effecteffectslmer
मैंने क्या प्रयास किया है: स्रोत कोड को देखते हुए, मैंने देखा कि effectफ़ंक्शन फ़ंक्शन पर निर्भर करता Effect.merModहै, जो बदले में Effect.merफ़ंक्शन को निर्देशित करता है, जो इस प्रकार है:
effects:::Effect.mer
function (focal.predictors, mod, ...)
{
result <- Effect(focal.predictors, mer.to.glm(mod), ...)
result$formula <- as.formula(formula(mod))
result
}
<environment: namespace:effects>
mer.to.glmसमारोह से वियरेन्स-कोवरिएट मैट्रिक्स की गणना करने के लिए लगता है lmer:
effects:::mer.to.glm
function (mod)
{
...
mod2$vcov <- as.matrix(vcov(mod))
...
mod2
}
यह, बदले में, संभवतः Effect.defaultCI की गणना करने के लिए फ़ंक्शन में उपयोग किया जाता है (मुझे इस भाग को गलत समझा जा सकता है):
effects:::Effect.default
...
z <- qnorm(1 - (1 - confidence.level)/2)
V <- vcov.(mod)
eff.vcov <- mod.matrix %*% V %*% t(mod.matrix)
rownames(eff.vcov) <- colnames(eff.vcov) <- NULL
var <- diag(eff.vcov)
result$vcov <- eff.vcov
result$se <- sqrt(var)
result$lower <- effect - z * result$se
result$upper <- effect + z * result$se
...
मैं LMMs के बारे में न्याय करने के लिए पर्याप्त नहीं जानता कि क्या यह एक सही दृष्टिकोण है, लेकिन LMMs के लिए विश्वास अंतराल गणना के आसपास की चर्चा को देखते हुए, यह दृष्टिकोण संदिग्ध रूप से सरल प्रतीत होता है।
