Es gibt tatsächlich viele Möglichkeiten, Reste aus einem ordinalen Probit/Logit zu erhalten. Obwohl polr
keine Reste liefert, bietet vglm
mehrere. Siehe ?residualsvglm
aus dem Paket VGAM
(siehe auch unten).
HINWEIS: Für einen Control Function/2SRI-Ansatz schlägt Wooldridge (2014) vor, die verallgemeinerten Reste zu verwenden, wie sie in Vella (1993) beschrieben sind. Soweit ich weiß, sind diese derzeit nicht in R
verfügbar, obwohl ich daran arbeite, aber sie sind in Stata (unter Verwendung von predict gr, score
).
Reste in VLGM
![Bildbeschreibung hier eingeben]()
Surrogatreste für polr
Sie können das Paket sure
(Link) verwenden, um Surrogatreste mit resids
zu berechnen. Das Paket basiert auf diesem Artikel im Journal der American Statistical Association.
library(sure) # für Restfunktion und Beispieldatensätze
library(MASS) # für polr Funktion
df1 <- df1
df1$x1 <- df1$x
df1$x <- NULL
df1$y <- df2$y
df1$x2 <- df2$x
df1$x3 <- df3$x
options(contrasts = c("contr.treatment", "contr.poly"))
mod1 <- polr(as.ordered(y) ~ x1 + x2 + x3, data=df1, method='probit')
fit <- mod1$fitted.values
res <- resids(mod1)
EDIT: Ein großes Problem besteht in folgendem (aus ?resids
):
"Hinweis: Surrogatreste erfordern eine Stichprobe aus einer kontinuierlichen Verteilung; daher wird das Ergebnis bei jedem Aufruf von resids unterschiedlich sein. Die internen Funktionen zur Stichprobenentnahme aus abgeschnittenen Verteilungen bei method = "latent" basieren auf modifizierten Versionen von rtrunc und qtrunc."
Selbst bei Ausführung von resids(mod1, nsim=1000, method="latent")
konvergiert das Ergebnis nicht.