Estou tentando entender a validação cruzada para regressão logística ordinal. O objetivo do jogo é validar o modelo usado em uma análise ...
Primeiro construo um conjunto de dados de brinquedo:
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) ) )
Agora, eu encaixo o modelo que ele usa lrm
na embalagem 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
Entendo a segunda parte do resultado: os coeficientes que coloquei no modelo estão aqui (é quase perfeito N = 100000
). O sinal é invertido porque, no meu modelo, usei os coeficientes para calcular as chances de ser e ≤ 2 ; aqui é o contrário, acho que não há muitos problemas por lá.
No entanto, eu não entendo a discriminação e classifico os índices de discriminação . Pode me ajudar?! Algumas dicas?
As coisas pioram quando passamos à validação 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? O que é isso? Como eu interpreto isso? A página de manual fornece poucas explicações, não tenho acesso a este artigo ... e me sinto sobrecarregado por um oceano de complexidade. Por favor ajude!
Design
pacote que agora é substituídorms
e usado da mesma maneira, exceto pela forma como você obtém gráficos de efeitos parciais e a etapa final de plotagem para nomogramas - consulte biostat.mc.vanderbilt.edu/Rrms . ParaPara sua primeira pergunta: são diferentes medidas de desempenho do modelo. Você quer que alguns deles sejam grandes, outros que sejam pequenos. Na verdade, eles estão de alguma forma relacionados, então sugira que você se concentre em um ou dois
Para sua segunda pergunta: o que você tem na sua primeira saída R é o desempenho do seu modelo na amostra de treinamento. Ao fazer a validação por validação cruzada, você obtém essas medidas em várias amostras de teste e sua média. Isso fornece uma estimativa mais realista do desempenho do seu modelo.
HTH
fonte