Estoy tratando de entender la validación cruzada para la regresión logística ordinal. El objetivo del juego es validar el modelo utilizado en un análisis ...
Primero construyo un conjunto de datos de juguete:
set.seed(1)
N <- 10000
# predictors
x1 <- runif(N)
x2 <- runif(N)
x3 <- runif(N)
# coeffs in the model
a <- c(-2,-1)
x <- -x1+2*x2+x3
# P( y ≤ i ) is given by logit^{-1} ( a[i]+x )
p <- outer(a,x, function(a,x) 1/(1+exp(-a-x)) )
# computing the probabilities of each category
q <- 1 - p[2,]
p[2,] <- p[2,] - p[1,];
p <- rbind(p,q);
# outcome
y <- ordered( apply( p, 2, function(p) which(rmultinom(1,1,p)>0) ) )
Ahora, ajusto el modelo que usa lrm
en el paquete rms
.
require("rms")
fit <- lrm(y~x1+x2+x3, x=TRUE,y=TRUE)
> fit
Logistic Regression Model
lrm(formula = y ~ x1 + x2 + x3, x = TRUE, y = TRUE)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 10000 LR chi2 1165.46 R2 0.126 C 0.664
1 2837 d.f. 3 g 0.779 Dxy 0.328
2 2126 Pr(> chi2) <0.0001 gr 2.178 gamma 0.329
3 5037 gp 0.147 tau-a 0.203
max |deriv| 4e-10 Brier 0.187
Coef S.E. Wald Z Pr(>|Z|)
y>=2 2.1048 0.0656 32.06 <0.0001
y>=3 1.0997 0.0630 17.45 <0.0001
x1 0.8157 0.0675 12.09 <0.0001
x2 -1.9790 0.0701 -28.21 <0.0001
x3 -1.0095 0.0687 -14.68 <0.0001
Entiendo la segunda parte del resultado: los coeficientes que puse en el modelo están aquí (es casi perfecto con N = 100000
). El signo se invierte porque en mi modelo utilicé los coeffs para calcular las probabilidades de ser y , aquí es al revés, creo que no hay muchos problemas allí.
Sin embargo , no entiendo la discriminación y los índices de discriminación de rango . ¡¿Me puedes ayudar?! Algunos punteros?
Las cosas empeoran cuando pasamos a la validación cruzada ...
> validate(fit, method="cross")
index.orig training test optimism index.corrected n
Dxy 0.3278 0.3278 0.3290 -0.0012 0.3291 40
R2 0.1260 0.1260 0.1313 -0.0053 0.1313 40
Intercept 0.0000 0.0000 -0.0072 0.0072 -0.0072 40
Slope 1.0000 1.0000 1.0201 -0.0201 1.0201 40
Emax 0.0000 0.0000 0.0056 0.0056 0.0056 40
D 0.1164 0.1165 0.1186 -0.0021 0.1186 40
U -0.0002 -0.0002 -0.8323 0.8321 -0.8323 40
Q 0.1166 0.1167 0.9509 -0.8342 0.9509 40
B 0.1865 0.1865 0.1867 -0.0001 0.1867 40
g 0.7786 0.7786 0.7928 -0.0142 0.7928 40
gp 0.1472 0.1472 0.1478 -0.0007 0.1478 40
Mmffff? ¿Qué es esto? ¿Cómo interpreto esto? La página del manual ofrece pocas explicaciones, no tengo acceso a este documento ... y me siento abrumado por un océano de complejidad. ¡Por favor ayuda!
Design
paquete que ahora se reemplazarms
y utiliza de la misma manera, excepto por cómo se obtienen gráficos de efectos parciales y el paso final de trazado para los nomogramas: consulte biostat.mc.vanderbilt.edu/Rrms . Para google es tu amigo. Tengo varios golpes. Este se ve bien: stata-journal.com/sjpdf.html?articlenum=st0007A su primera pregunta: son diferentes medidas de rendimiento del modelo. Desea que algunos de ellos sean grandes, otros sean pequeños. De hecho, de alguna manera están relacionados, así que sugiero que te concentres en uno o dos
A su segunda pregunta: lo que tiene en su primera salida R es el rendimiento de su modelo en la muestra de entrenamiento. Cuando realiza la validación mediante validación cruzada, obtiene esas mediciones en múltiples muestras de prueba y su promedio. Esto le brinda una estimación más realista del rendimiento de su modelo.
HTH
fuente