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 कैसे भरोसेमंद हैं ?effect
effects
lmer
मैंने क्या प्रयास किया है: स्रोत कोड को देखते हुए, मैंने देखा कि 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.default
CI की गणना करने के लिए फ़ंक्शन में उपयोग किया जाता है (मुझे इस भाग को गलत समझा जा सकता है):
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 के लिए विश्वास अंतराल गणना के आसपास की चर्चा को देखते हुए, यह दृष्टिकोण संदिग्ध रूप से सरल प्रतीत होता है।