Próbuję zrozumieć cross-validation dla porządkowej regresji logistycznej. Celem gry jest sprawdzenie modelu zastosowanego w analizie ...
Najpierw buduję zestaw danych zabawek:
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) ) )
Teraz dopasowuję model, używając go lrm
w pakiecie 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
Rozumiem drugą część wyniku: współczynniki, które wprowadzam do modelu, są tutaj (jest prawie idealny N = 100000
). Znak jest odwrócony, ponieważ w moim modelu użyłem współczynników do obliczenia prawdopodobieństwa bycia , a , tutaj jest na odwrót, myślę, że nie ma tam wielu problemów.≤ 2
Jednak nie rozumiem wskaźników dyskryminacji i dyskryminacji ze względu na rangę . Możesz mi pomóc?! Jakieś wskazówki?
Gorzej jest, gdy przechodzimy do weryfikacji krzyżowej ...
> 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? Co to jest? Jak to interpretować? Strona podręcznika zawiera kilka wyjaśnień, nie mam dostępu do tego artykułu ... i czuję się przytłoczony oceanem złożoności. Proszę pomóż!
Design
pakiet, który jest teraz zastępowanyrms
i używany w ten sam sposób, z wyjątkiem tego, w jaki sposób uzyskuje się wykresy z efektami częściowymi i ostatni etap kreślenia dla nomogramów - patrz biostat.mc . vanderbilt.edu/Rrms . Dla Google jest twoim przyjacielem. Mam kilka trafień. Ten wygląda dobrze: stata-journal.com/sjpdf.html?articlenum=st0007Na twoje pierwsze pytanie: są to różne pomiary wydajności modelu. Chcesz, aby niektóre były duże, a inne małe. W rzeczywistości są one w jakiś sposób powiązane, więc sugeruj skupienie się na jednym lub dwóch
Na drugie pytanie: to, co masz w swoim pierwszym wyjściu R, to wyniki twojego modelu na próbce treningowej. Kiedy przeprowadzasz walidację przez walidację krzyżową, otrzymujesz te pomiary na wielu próbkach testowych i ich średnią. To daje bardziej realistyczne oszacowanie wydajności twojego modelu.
HTH
źródło