Validação cruzada e regressão logística ordinal

12

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 lrmna 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á.12

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!

Elvis
fonte

Respostas:

11

Concentre-se em alguns dos índices agora. index.origé a pontuação preditiva aparente da capacidade / precisão quando você a avalia nos dados usados ​​para ajustar o modelo. index.correctedé a versão corrigida pela validação cruzada do mesmo índice, ou seja, corrigida por sobreajuste (sem polarização). Dxyé de SomersDxycoeficiente de correlação de classificação - uma medida de pura discriminação. Consulte o papel original ou textos não paramétricos para obter detalhes. Dxy=2(C-12) Onde Cé a área ROC generalizada (probabilidade de concordância). Intercepte Slopepertencem à curva de calibração na escala logit. Emaxé o erro máximo estimado de calibração usando essa inclinação e interceptação. Bé a pontuação de precisão Brier (combina discriminação e calibração).

Os métodos são descritos em meu livro ou nas notas do curso no site do livro: http://biostat.mc.vanderbilt.edu/rms

Frank Harrell
fonte
Obrigado Frank. Seu livro se refere ao pacote? Ele contém mais detalhes sobre o Dxy?
Elvis
1
Sim. O livro aborda o Designpacote que agora é substituído rmse 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 . ParaDxyGoogle é seu amigo. Eu tenho vários hits. Este parece bom: stata-journal.com/sjpdf.html?articlenum=st0007
Frank Harrell
Obrigado. Pesquisei no Google por horas e não encontrei isso. Eu comprarei seu livro.
Elvis
1

Para 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

FMZ
fonte