Ich habe Schwierigkeiten, die Log-Odds-Ratio-Profil-Konfidenzintervalle aus einem Logit-Modell in Wahrscheinlichkeiten zu transformieren. Ich würde gerne wissen, wie man die Konfidenzintervalle der Differenz zwischen zwei Gruppen berechnet.Wie Profil Vertrauensintervalle der Unterschied in der Wahrscheinlichkeit des Erfolgs zwischen zwei Gruppen von einem Logit-Modell (glmer) erhalten?
Wenn der p-Wert> 0,05 ist, sollte das 95% CI der Differenz von unter Null bis über Null reichen. Ich weiß jedoch nicht, wie negative Werte erhalten werden können, wenn die logarithmischen Verhältnisse potenziert werden müssen. Deshalb habe ich versucht, das CI einer der Gruppen (B) zu berechnen und zu sehen, was der Unterschied zwischen dem unteren und dem oberen Ende des CI zur Schätzung der Gruppe A ist. Ich glaube, dass dies nicht der richtige Weg ist, das CI der Differenz zu berechnen, da die Schätzung von A ebenfalls unsicher ist.
Ich würde mich freuen, wenn mir jemand helfen könnte.
library(lme4)
# Example data:
set.seed(11)
treatment = c(rep("A",30), rep("B", 40))
site = rep(1:14, each = 5)
presence = c(rbinom(30, 1, 0.6),rbinom(40, 1, 0.8))
df = data.frame(presence, treatment, site)
# Likelihood ratio test
M0 = glmer(presence ~ 1 + (1|site), family = "binomial", data = df)
M1 = glmer(presence ~ treatment + (1|site), family = "binomial", data = df)
anova(M1, M0)
# Calculating confidence intervals
cc <- confint(M1, parm = "beta_")
ctab <- cbind(est = fixef(M1), cc)
cdat = as.data.frame(ctab)
# Function to back-transform to probability (0-1)
unlogit = function(y){
y_retransfromed = exp(y)/(1+exp(y))
y_retransfromed
}
# Getting estimates
A_est = unlogit(cdat$est[1])
B_est = unlogit(cdat$est[1] + cdat$est[2])
B_lwr = unlogit(cdat$est[1] + cdat[2,2])
B_upr = unlogit(cdat$est[1] + cdat[2,3])
Difference_est = B_est - A_est
# This is how I tried to calculate the CI of the difference
Difference_lwr = B_lwr - A_est
Difference_upr = B_upr - A_est
# However, I believe this is wrong because A_est is also “uncertain”
Wie das Konfidenzintervall der Differenz der Wahrscheinlichkeit des Vorhandenseins bekommen?
Zunächst einmal vielen Dank für die große Antwort. Ich habe noch einige Fragen dazu: a) Muss ich mich um die Warnungen kümmern, oder ist das nur darauf zurückzuführen, dass der Behandlungseffekt nicht mit nur einer Behandlung in den Probendaten ausgewertet werden kann? Ich bin besonders besorgt über die Aussage, dass das Modell nicht konvergieren konnte. –
warnings() (i) \t 1: In checkConv (attr (opt, "derivs"), opt $ par, ctrl = control $ checkConv, ...: (ii) \t kann skalierten Gradienten nicht auswerten (iii) \t 2: In checkConv (attr (opt, "derivs"), opt $ par, ctrl = control $ checkConv, ...: (iv) \t Hesse ist numerisch singulär: Parameter sind nicht eindeutig bestimmt (v) \t In checkConv (attr (opt, "derivs"), opt $ par, ctrl = control $ checkConv, ...: (vi) \t Modell konvergierte nicht mit max | grad | = 0.0157858 (tol = 0.001, Komponente 1) –
b) Wird diese Prozedur "parametrischer Bootstrap" genannt? c) Kann ich den p-Wert wie folgt berechnen: 'p_value = mean (a bs (out $ t - Mittelwert (out $ t))> = abs (out $ t0)) d) Gibt es keine Möglichkeit, ein Profil-Konfidenzintervall zu erhalten (d. h. ein CI basierend auf einem Likelihood-Ratio-Test) über den Behandlungseffekt auf die Anwesenheitswahrscheinlichkeit? –