Cross-Validierung für das glm() Modelle

Ich versuche zu tun, eine 10-fold-cross-validation für einige glm-Modelle, die ich gebaut habe früher in R. ich bin ein wenig verwirrt über die cv.glm() Funktion in der boot Paket, obwohl ich gelesen habe, viel Hilfe-Dateien. Wenn ich die folgende Formel:

library(boot)
cv.glm(data, glmfit, K=10)

Nicht die "Daten" - argument bezieht sich hier auf den ganzen Datensatz oder nur zum test so eingestellt?

Die Beispiele, die ich bisher gesehen habe, bieten die "Daten" - argument als test gesetzt, aber das hat nicht wirklich Sinn machen, wie z.B. warum haben 10-folds auf die gleiche test-set? Sie sind alles zu geben, genau das gleiche Ergebnis (ich gehe davon aus!).

Leider ?cv.glm erklärt es in einer nebligen Weg:

Daten: Eine matrix oder ein data frame mit den Daten. Die Zeilen sollten
Fälle und die Spalten entsprechen den Variablen, von denen die
Antwort

Meine andere Frage wäre über die $delta[1] Ergebnis. Ist dies der Durchschnittliche vorhersagefehler über die 10 versuche? Was ist, wenn ich will, um den Fehler für jedes Fach?

Hier ist, was mein Skript sieht wie folgt aus:

##data partitioning
sub <- sample(nrow(data), floor(nrow(x) * 0.9))
training <- data[sub, ]
testing <- data[-sub, ]

##model building
model <- glm(formula = groupcol ~ var1 + var2 + var3,
        family = "binomial", data = training)

##cross-validation
cv.glm(testing, model, K=10)
Schau dir das Beispiel im Abschnitt boot:::cv.glm. Sie sollten die Eingabe der gesamten Daten, das Modell und die Falten der Lebenslauf.
Danke für deine Antwort @RomanLuštrik. Hört sich toll an. Ich Frage mich heute noch, über ein paar Dinge obwohl. Macht diese Funktion verwenden, werden alle übermittelten Daten in der cross-Validierung? nehmen wir an, ich lieferte ein dataframe von einer 1000 Zeilen für die cv.glm(data, glm, K=10) macht es 10 Partitionen der Daten, die jeweils eine 100 und stellen Sie die Kreuz-Validierung? Sorry ich habe durch die ?cv.glm hatte ich aber nicht finden, die gibt es.
Wenn Sie tun würde, eine 2-fold CV, würde die Funktion übernehmen 50% der Daten und das Modell passt. Würde es die anderen 50% der Daten, um zu sehen, wie gut das Modell die Daten beschreibt, die. Oder, im leave-one-out CV, würde es passen das Modell auf alle Daten "Punkt", und sehen, wie gut die ausgesondert "Punkt" haben. N-mal wiederholen und Sie bekommen Ihr Ergebnis.
Hi @RomanLuštrik. Sie sagte, dass wenn ich einen 2-Fach CV mit der Funktion passen Sie das Modell entsprechend 50% der Daten und die Verwendung der anderen 50% als test-set. Wenn die Funktion das tut, warum dann erfordert es ein argument "glmfit", die eine bisher eingebauten Modell?
Wenn Sie eine Frage haben, die auf crossvalidation, ich schlage vor, Sie öffnen einen thread auf crossvalidated.com.

InformationsquelleAutor Error404 | 2014-01-27

Schreibe einen Kommentar