Beide von Ihnen genannten Konzepte (p-Werte und Effektgrößen von linearen gemischten Modellen) weisen inhärente Probleme auf. In Bezug auf die Effektgröße zitiert Doug Bates, der ursprüngliche Autor von lme4
,
Angenommen, man möchte ein R 2 definierenR2 -Maß Erachtens ein Argument für die Behandlung der bestraften Restsumme von Quadraten aus einem linearen gemischten Modell auf die gleiche Weise wie für die Restsumme von Quadraten aus einem linearen Modell angeführt werden. Oder man könnte nur die Restsumme der Quadrate ohne die Strafe oder die minimale Restsumme der Quadrate verwenden, die aus einer gegebenen Menge von Begriffen erhalten werden kann, die einer unendlichen Präzisionsmatrix entspricht. Ich weiß es nicht wirklich. Es hängt davon ab, was Sie zu charakterisieren versuchen.
Weitere Informationen finden Sie in diesem Thread , diesem Thread und dieser Nachricht . Grundsätzlich besteht das Problem darin, dass es keine vereinbarte Methode zur Einbeziehung und Zerlegung der Varianz aus den Zufallseffekten in das Modell gibt. Es werden jedoch einige Standards verwendet. Wenn Sie sich das Wiki ansehen, das für / von der Mailingliste r-sig-mixed-models eingerichtet wurde , werden einige Ansätze aufgelistet.
Eine der vorgeschlagenen Methoden untersucht die Korrelation zwischen den angepassten und den beobachteten Werten. Dies kann in R implementiert werden, wie von Jarrett Byrnes in einem dieser Threads vorgeschlagen:
r2.corr.mer <- function(m) {
lmfit <- lm(model.response(model.frame(m)) ~ fitted(m))
summary(lmfit)$r.squared
}
Nehmen wir zum Beispiel an, wir schätzen das folgende lineare Mischmodell:
set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
g = sample(letters[1:4], 250, replace=T) )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
# Data: d
# REML criterion at convergence: 744.4
#
# Scaled residuals:
# Min 1Q Median 3Q Max
# -2.7808 -0.6123 -0.0244 0.6330 3.5374
#
# Random effects:
# Groups Name Variance Std.Dev. Corr
# g (Intercept) 0.006218 0.07885
# z 0.001318 0.03631 -1.00
# Residual 1.121439 1.05898
# Number of obs: 250, groups: g, 4
#
# Fixed effects:
# Estimate Std. Error t value
# (Intercept) 0.02180 0.07795 0.280
# x 0.04446 0.06980 0.637
#
# Correlation of Fixed Effects:
# (Intr)
# x -0.005
Wir können die Effektgröße mit der oben definierten Funktion berechnen:
r2.corr.mer(fm1)
# [1] 0.0160841
Ω20
1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721 # Usually, it would be even closer to the value above
In Bezug auf die p-Werte ist dies ein viel strittigeres Thema (zumindest in der R / lme4
Community). Sehen Sie sich die Diskussionen in den Fragen hier , hier und hier unter vielen anderen an. Wenn Sie erneut auf die Wiki-Seite verweisen, gibt es einige Ansätze, um Hypothesen zu Effekten in linearen gemischten Modellen zu testen. Aufgelistet von "Worst to Best" (laut den Autoren der Wiki-Seite, von denen ich glaube, dass sie Doug Bates sowie Ben Bolker umfasst, der hier viel beiträgt):
- Wald Z-Tests
- Für ausgeglichene, verschachtelte LMMs, für die df berechnet werden kann: Wald-t-Tests
- Likelihood - Ratio - Test, indem das Modell so eingerichtet wird, dass der Parameter isoliert / gelöscht werden kann (über
anova
oder)drop1
), oder Likelihood-Profile berechnet werden
- MCMC- oder parametrische Bootstrap-Konfidenzintervalle
Sie empfehlen den Markov-Ketten-Monte-Carlo-Stichprobenansatz und listen auch eine Reihe von Möglichkeiten auf, dies ausgehend von den nachstehend aufgeführten pseudo- und vollständig bayesianischen Ansätzen umzusetzen.
Pseudo-Bayesian:
- Post-hoc-Stichprobe, wobei normalerweise (1) flache Prioritäten angenommen werden und (2) von der MLE ausgegangen wird, wobei möglicherweise die ungefähre Varianz-Kovarianz-Schätzung verwendet wird, um eine Kandidatenverteilung zu wählen
- Via
mcmcsamp
(falls für Ihr Problem verfügbar: zB LMMs mit einfachen Zufallseffekten - keine GLMMs oder komplexen Zufallseffekten)
Via pvals.fnc
im languageR
Paket, ein Wrapper fürmcmcsamp
)
- In AD Model Builder möglicherweise über das
glmmADMB
Paket (verwenden Sie die mcmc=TRUE
Option) oder das R2admb
Paket (schreiben Sie Ihre eigene Modelldefinition in AD Model Builder) oder außerhalb von R
- Über die
sim
Funktion aus dem arm
Paket (simuliert das Posterior nur für die Beta (Fixed-Effect) -Koeffizienten)
Voll Bayesianische Ansätze:
- Über das
MCMCglmm
Paket
- Verwenden
glmmBUGS
(eine WinBUGS-Wrapper / R- Schnittstelle)
- Verwenden von JAGS / WinBUGS / OpenBUGS usw. über die Pakete
rjags
/ r2jags
/ R2WinBUGS
/BRugs
Zur Veranschaulichung, um zu zeigen, wie dies aussehen könnte, wird im Folgenden eine MCMCglmm
Schätzung unter Verwendung des MCMCglmm
Pakets angegeben, das ähnliche Ergebnisse wie das obige Modell liefert und eine Art von Bayes'schen p-Werten aufweist:
library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval = 10
# Sample size = 1000
#
# DIC: 697.7438
#
# G-structure: ~us(z):g
#
# post.mean l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268 397.6
#
# R-structure: ~units
#
# post.mean l-95% CI u-95% CI eff.samp
# units 0.9466 0.7926 1.123 1000
#
# Location effects: y ~ x
#
# post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept) -0.04936 -0.17176 0.07502 1000 0.424
# x -0.07955 -0.19648 0.05811 1000 0.214
Ich hoffe das hilft etwas. Ich denke, der beste Rat für jemanden, der mit linearen gemischten Modellen beginnt und versucht, sie in R zu schätzen, ist, die Wiki-FAQs zu lesen, aus denen die meisten dieser Informationen stammen. Es ist eine hervorragende Ressource für alle Arten von Themen mit gemischten Effekten, von einfach bis fortgeschritten und von der Modellierung bis zum Plotten.
anova()
Funktion verwenden, um eine Anova-Tabelle mit linearen gemischten Modellen zu erhalten, genau wie bei linearen Modellen.