Kreuzvalidierung und ordinale logistische Regression


12

Ich versuche die Kreuzvalidierung für die ordinale logistische Regression zu verstehen. Ziel des Spiels ist es, das in einer Analyse verwendete Modell zu validieren ...

Ich erstelle einen Spielzeugdatensatz:

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

Jetzt passe ich das Modell, das es verwendet, lrmin das Paket ein 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

N = 10000012

Allerdings verstehe ich die Diskriminierungs- und Rang-Diskriminierungsindizes nicht . Kannst du mir helfen?! Einige Hinweise?

Schlimmer ist es, wenn wir uns der Kreuzvalidierung zuwenden ...

> 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? Was ist das? Wie interpretiere ich das? Die Manpage gibt nur wenige Erklärungen, ich habe keinen Zugang zu diesem Artikel ... und ich fühle mich von einem Ozean von Komplexität überwältigt. Bitte helfen Sie!

Antworten:


11

Konzentrieren Sie sich jetzt auf einige der Indizes. index.origist die scheinbare Bewertung der Vorhersagefähigkeit / -genauigkeit, wenn Sie sie anhand der Daten bewerten, die für die Anpassung an das Modell verwendet wurden. index.correctedist die validierungskorrigierte Version desselben Indexes, dh korrigiert um Überanpassung (De-Bias). Dxyist SomersDxyRangkorrelationskoeffizient - ein Maß für reine Diskriminierung. Einzelheiten finden Sie im Original oder in nichtparametrischen Texten. Dxy=2(C-12) wo Cist der verallgemeinerte ROC-Bereich (Konkordanzwahrscheinlichkeit). Interceptund Slopebeziehen sich auf die Kalibrierungskurve auf der Logit-Skala. Emaxist der geschätzte maximale Kalibrierungsfehler unter Verwendung dieser Steigung und dieses Abschnitts. Bist der Brier-Genauigkeitswert (kombiniert Diskriminierung und Kalibrierung).

Methoden werden in meinem Buch oder in den Kursnotizen auf der Website des Buches beschrieben: http://biostat.mc.vanderbilt.edu/rms


Danke, Frank. Bezieht sich Ihr Buch auf das Paket? Enthält es weitere Details zu Dxy?
Elvis

1
Ja. Das Buch behandelt das DesignPaket, das jetzt ersetzt rmsund auf die gleiche Weise verwendet wird, mit Ausnahme dessen, wie Sie Teileffekt- Plots und den letzten Plotschritt für Nomogramme erhalten - siehe biostat.mc.vanderbilt.edu/Rrms . ZumDxyGoogle ist dein Freund. Ich habe mehrere Treffer bekommen. Dieser sieht gut aus: stata-journal.com/sjpdf.html?articlenum=st0007
Frank Harrell

Vielen Dank. Ich habe stundenlang gegoogelt und das nicht gefunden. Ich werde dein Buch kaufen.
Elvis

1

Zu Ihrer ersten Frage: Es handelt sich um verschiedene Modellleistungsmessungen. Sie möchten, dass einige von ihnen groß und andere klein sind. Tatsächlich sind sie irgendwie miteinander verwandt. Sie sollten sich also auf ein oder zwei konzentrieren

Zu Ihrer zweiten Frage: Was Sie in Ihrer ersten R-Ausgabe haben, ist Ihre Modellleistung auf Trainingsbeispiel. Wenn Sie eine Validierung durch Kreuzvalidierung durchführen, erhalten Sie diese Messungen an mehreren Testproben und deren Durchschnitt. Auf diese Weise können Sie die Leistung Ihres Modells realistischer einschätzen.

HTH

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.