Co to jest walidacja krzyżowa?
Walidacja krzyżowa (ang. cross-validation, CV) to sposób oceny, jak dobrze model przewiduje wyniki osób, na których go nie budowano. Dane dzieli się na części: model uczy się na jednych, a sprawdza na pozostałych. Stone (1974) opisał ją jako ogólne kryterium wyboru i oceny prognoz, m.in. w regresji liniowej i analizie wariancji. W psychologii przydaje się zawsze, gdy celem jest przewidywanie, a nie tylko opis związku.
Jak to zrobić
- Losowo podziel próbę na k równych części (zwykle 5 lub 10).
- Dopasuj model do k − 1 części i policz przewidywania dla części pominiętej.
- Powtórz to k razy, tak by każda osoba raz była w części testowej.
- Z wszystkich przewidywań policz miarę błędu, np. RMSE albo R² poza próbą.
Gdy k = n, mówimy o walidacji „leave-one-out”. Wynik zależy od losowego podziału, dlatego warto powtórzyć procedurę wiele razy i podać średnią. Steyerberg i in. (2001) pokazali, że jednorazowy podział na dwie połowy daje zbyt pesymistyczne i bardzo zmienne oceny, a stabilne oszacowania daje bootstrap.
Przykład
Wypalenie 80 osób przewidywano z 3 predyktorów (model A) albo z tych samych 3 i 9 zmiennych bez związku z wynikiem (model B; dane symulowane). W próbie uczącej model B wygrywał: R² = .408 wobec .284. W 10-krotnej walidacji krzyżowej było odwrotnie: .075 wobec .198. Po 50 powtórzeniach średnie wyniosły .129 dla B i .203 dla A. Przewagę modelu B w próbie uczącej dawało więc przeuczenie.
Jak opisać w pracy
Na co uważać
- Wszystkie decyzje rób wewnątrz pętli. Jeśli wybierasz predyktory, standaryzujesz albo imputujesz braki na całej próbie, część testowa „podgląda” dane i błąd wychodzi zbyt optymistyczny.
- Nie myl z R² skorygowanym. W przykładzie dla modelu B wyniósł on .302, znacznie więcej niż R² z walidacji krzyżowej.
- Walidacja wewnętrzna nie zastąpi zewnętrznej. Nowa próba z innego miejsca lub czasu sprawdza też przenośność modelu.
Walidacją krzyżową dobiera się też karę w regresji grzbietowej i LASSO. Yarkoni i Westfall (2017) przekonują, że psychologia powinna częściej oceniać teorie po tym, jak przewidują. Całą procedurę, razem z kalibracją, opisujemy we wpisie modele predykcyjne.
Walidacja krzyżowa w R
Kod liczy R² poza próbą w 10-krotnej walidacji krzyżowej bez dodatkowych pakietów.
10-krotna walidacja krzyżowa regresji liniowej
R
cv_r2 <- function(formula, data, k = 10) {
fold <- sample(rep(1:k, length.out = nrow(data))) # losowy przydział do k części
pred <- numeric(nrow(data))
for (i in 1:k) {
fit <- lm(formula, data = data[fold != i, ])
pred[fold == i] <- predict(fit, data[fold == i, ])
}
1 - sum((data$y - pred)^2) / sum((data$y - mean(data$y))^2)
}
fA <- y ~ x1 + x2 + x3; fB <- y ~ .
set.seed(1)
round(c(A_ucz = summary(lm(fA, X))$r.squared, A_cv = cv_r2(fA, X),
B_ucz = summary(lm(fB, X))$r.squared, B_cv = cv_r2(fB, X)), 3)Wynik w R
A_ucz A_cv B_ucz B_cv
0.284 0.198 0.408 0.075 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats).
- R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
Najczęstsze pytania
Ile części wybrać w k-krotnej walidacji krzyżowej?
Najczęściej 5 lub 10. Przy bardzo małej próbie stosuje się leave-one-out. Niezależnie od k powtórz losowy podział kilkadziesiąt razy i podaj średni wynik.
Czym walidacja krzyżowa różni się od podziału próby na pół?
Przy podziale na pół każdą osobę wykorzystuje się tylko raz, do uczenia albo do testu. W walidacji krzyżowej każda osoba trafia do testu, więc ocena jest stabilniejsza.
Czy walidacja krzyżowa zastępuje nową próbę?
Nie. Ocenia model na danych z tej samej populacji i procedury. Przenośność na inne miejsca lub czas sprawdza dopiero walidacja zewnętrzna.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Modele predykcyjne: walidacja i kalibracja
Liczebność, przeuczenie, walidacja krzyżowa i bootstrap, LASSO i ridge, kalibracja, wynik Briera i TRIPOD+AI – na danych do pobrania, z kodem R.
Czytaj →PoradnikDrzewa decyzyjne i lasy losowe
CART i przycinanie w rpart, las losowy w ranger, ważność permutacyjna, zależność cząstkowa, walidacja na nowych danych i wzór opisu.
Czytaj →Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- Steyerberg, E. W., Harrell, F. E., Borsboom, G. J. J. M., Eijkemans, M. J. C., Vergouwe, Y., & Habbema, J. D. F. (2001). Internal validation of predictive models: Efficiency of some procedures for logistic regression analysis. Journal of Clinical Epidemiology, 54(8), 774–781. https://doi.org/10.1016/s0895-4356(01)00341-9
- Stone, M. (1974). Cross-validatory choice and assessment of statistical predictions. Journal of the Royal Statistical Society: Series B (Methodological), 36(2), 111–133. https://doi.org/10.1111/j.2517-6161.1974.tb00994.x
- Yarkoni, T., & Westfall, J. (2017). Choosing prediction over explanation in psychology: Lessons from machine learning. Perspectives on Psychological Science, 12(6), 1100–1122. https://doi.org/10.1177/1745691617693393 ● Otwarty dostęp: pełny tekst
Cytowania BibTeX
@article{steyerberg2001internal, author={Steyerberg, Ewout W. and Harrell, Frank E. and Borsboom, Gerard J. J. M. and Eijkemans, Marinus J. C. and Vergouwe, Yvonne and Habbema, J. Dik F.}, title={{Internal validation of predictive models: Efficiency of some procedures for logistic regression analysis}}, journal={Journal of Clinical Epidemiology}, year={2001}, volume={54}, number={8}, pages={774--781}, doi={10.1016/s0895-4356(01)00341-9}}@article{stone1974cross, author={Stone, M.}, title={{Cross-validatory choice and assessment of statistical predictions}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1974}, volume={36}, number={2}, pages={111--133}, doi={10.1111/j.2517-6161.1974.tb00994.x}}@article{yarkoni2017choosing, author={Yarkoni, Tal and Westfall, Jacob}, title={{Choosing prediction over explanation in psychology: Lessons from machine learning}}, journal={Perspectives on Psychological Science}, year={2017}, volume={12}, number={6}, pages={1100--1122}, doi={10.1177/1745691617693393}}