Validation croisée et régression logistique ordinale


12

J'essaie de comprendre la validation croisée pour la régression logistique ordinale. Le but du jeu est de valider le modèle utilisé dans une analyse ...

Je construis d'abord un ensemble de données sur les jouets:

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) ) ) 

Maintenant, j'adapte le modèle qu'il utilise lrmdans le package 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

Je comprends la deuxième partie du résultat: les coefficients que j'ai mis dans le modèle sont là (c'est presque parfait avec N = 100000). Le signe est inversé parce que dans mon modèle, j'ai utilisé les coefficients pour calculer les chances d'être et 2 , ici c'est l'inverse, je pense qu'il n'y a pas beaucoup de problèmes là-bas.12

Cependant, je ne comprends pas les indices de discrimination et de discrimination de rang . Pouvez-vous m'aider?! Quelques pointeurs?

La situation est pire lorsque nous nous tournons vers la validation croisée ...

> 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'est-ce que c'est ça? Comment interpréter cela? La page de manuel donne peu d'explications, je n'ai pas accès à cet article ... et je me sens submergé par un océan de complexité. Aidez-moi!

Réponses:


11

index.origindex.correctedDxyXyXy=2(C-12)CInterceptSlopeEmaxB

Les méthodes sont décrites dans mon livre ou dans les notes de cours sur le site Web du livre: http://biostat.mc.vanderbilt.edu/rms


Merci, Frank. Votre livre fait-il référence au package? Contient-il plus de détails sur Dxy?
Elvis

1
DesignrmsXy

Merci. Je l'ai googlé pendant des heures et je ne l'ai pas trouvé. Je vais acheter ton livre.
Elvis

1

À votre première question: ce sont des mesures de performances de modèle différentes. Vous voulez que certains soient grands, d'autres petits. En fait, ils sont en quelque sorte liés donc vous suggérons de vous concentrer sur un ou deux

Pour votre deuxième question: ce que vous avez dans votre première sortie R est la performance de votre modèle sur l'échantillon d'entraînement. Lorsque vous effectuez une validation par validation croisée, vous obtenez ces mesures sur plusieurs échantillons de test et leur moyenne. Cela vous donne une estimation plus réaliste de la performance de votre modèle.

HTH

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.