Słownik metodologiczny · Braki danych

LOCF i proste imputacje – dlaczego obciążają wyniki i co zamiast nich?

Przeniesienie ostatniej obserwacji, wpisanie średniej czy usunięcie niepełnych przypadków wydają się bezpieczne. Mini-symulacja w R pokazuje, jak zmieniają oszacowanie efektu i czym je zastąpić.

Strona główna / Słownik / LOCF i proste imputacje
W skrócie: LOCF uzupełnia brakujący pomiar ostatnią wartością osoby, imputacja średnią wpisuje wszystkim tę samą liczbę, a analiza pełnych przypadków usuwa osoby z brakami. Wszystkie mogą obciążać wynik; lepszym wyborem są model mieszany (MMRM) i imputacja wielokrotna.

Co to jest LOCF?

LOCF (ang. last observation carried forward, przeniesienie ostatniej obserwacji) to uzupełnianie brakującego pomiaru ostatnią znaną wartością tej samej osoby. Dane analizuje się potem tak, jakby braków nie było (Lachin, 2016). Należy do rodziny prostych, jednorazowych imputacji, obok imputacji średnią i analizy pełnych przypadków.

Trzy proste metody i ich wady

  • LOCF zakłada, że po odejściu z badania wynik się nie zmienia. Lachin (2016) pokazuje, że nawet przy brakach MCAR daje oszacowanie nieobciążone tylko wtedy, gdy rozkład wcześniejszego pomiaru jest dokładnie taki sam jak rozkład brakujących wartości, i zaleca, by LOCF nie stosować wcale.
  • Imputacja średnią wpisuje wszystkim tę samą wartość, więc zaniża odchylenie standardowe i rozmywa różnice między grupami.
  • Analiza pełnych przypadków (listwise deletion) traci osoby i moc. Obciążenie zależy od mechanizmu braków danych (Jakobsen i in., 2017).

LOCF i imputacja średnią traktują wpisane wartości jak zmierzone, więc błędy standardowe wychodzą za małe.

Mini-symulacja

200 osób z depresją (100 w terapii, 100 w kontroli) zmierzono trzykrotnie; prawdziwy efekt terapii po 8 tygodniach wynosi −6 pkt. Z ostatniego pomiaru częściej odpadały osoby z wyższym wynikiem w pomiarze środkowym (braki MAR, średnio 18.2%). W 500 symulacjach średnie oszacowanie efektu wyniosło: LOCF −5.46, imputacja średnią −5.18, pełne przypadki −6.16, a model dla powtarzanych pomiarów (MMRM) −6.07. W jednej z prób imputacja średnią zmniejszyła SD wyniku z 8.89 do 7.87.

Jak opisać w pracy

Braki danych w pomiarze po 8 tygodniach (18.2%) uwzględniono w modelu dla powtarzanych pomiarów z niestrukturalną macierzą kowariancji (MMRM), który wykorzystuje wszystkie dostępne obserwacje przy założeniu braków losowych (MAR). Nie stosowano imputacji LOCF ani imputacji średnią.

Co zamiast

Na co uważać

LOCF nie jest „ostrożne”. W symulacji zaniżyło efekt, ale w innym układzie danych, np. gdy stan uczestników z czasem się pogarsza, może go zawyżać. Przy brakach MNAR żadna z metod nie wystarcza; dodaj analizę wrażliwości. O źródłach braków piszemy w haśle utrata uczestników.

Przykład reprodukowalny

Symulacja LOCF w R

Kod 500 razy losuje dane z trzech pomiarów, usuwa część ostatnich pomiarów (braki MAR) i porównuje cztery sposoby postępowania z brakami. Obliczenia trwają około minuty.

LOCF, imputacja średnią, pełne przypadki i MMRM

Dane wejściowe: 200 osób, depresja na starcie, po 4 i po 8 tygodniach; prawdziwy efekt terapii po 8 tygodniach = −6 pkt (dane symulowane, set.seed(166)).

Co odczytać: średnie oszacowanie efektu dla każdej metody i średni odsetek braków (braki_proc).

R
library(nlme)
n <- 200; grupa <- rep(0:1, each = n / 2)
efekt <- function(y, t0) unname(coef(lm(y ~ grupa + t0))["grupa"])        # ANCOVA: różnica grup po 8 tyg.
jedna_proba <- function() {
  t0 <- rnorm(n, 30, 6); t1 <- t0 - 3 * grupa + rnorm(n, 0, 4); t2 <- t1 - 3 * grupa + rnorm(n, 0, 4)
  brak <- runif(n) < plogis(-2 + 0.15 * (t1 - 30) + 0.8 * grupa); t2_obs <- ifelse(brak, NA, t2)
  dl <- data.frame(id = rep(1:n, 3), czas = factor(rep(0:2, each = n)), grupa = rep(grupa, 3), y = c(t0, t1, t2_obs))
  mm <- gls(y ~ czas * grupa, data = dl, na.action = na.omit,         # MMRM: niestrukturalna macierz kowariancji
            correlation = corSymm(form = ~ as.integer(czas) | id), weights = varIdent(form = ~ 1 | czas))
  c(pelne_przypadki = efekt(t2_obs, t0), LOCF = efekt(ifelse(brak, t1, t2), t0),
    srednia = efekt(ifelse(brak, mean(t2_obs, na.rm = TRUE), t2), t0),
    MMRM = unname(coef(mm)["czas2:grupa"]), braki_proc = 100 * mean(brak))
}
set.seed(166)
round(rowMeans(replicate(500, jedna_proba())), 2)   # średnio z 500 symulacji; prawdziwy efekt = -6
Wynik w R
pelne_przypadki            LOCF         srednia            MMRM      braki_proc 
          -6.16           -5.46           -5.18           -6.07           18.20

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietem nlme 3.1.168.

  1. 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/
  2. nlme: Pinheiro, J., Bates, D., & R Core Team. (2025). nlme: Linear and nonlinear mixed effects models (Version 3.1-168) [R package]. https://CRAN.R-project.org/package=nlme

Najczęstsze pytania

Co oznacza LOCF?

Last observation carried forward, czyli przeniesienie ostatniej obserwacji: brakujący pomiar uzupełnia się ostatnią znaną wartością tej samej osoby i analizuje dane tak, jakby braków nie było.

Dlaczego imputacja średnią jest złym pomysłem?

Wpisuje wszystkim brakującym tę samą wartość, więc zaniża zmienność, osłabia korelacje i różnice między grupami oraz daje za małe błędy standardowe. Wynik wygląda na pewniejszy, niż jest.

Czy LOCF zawsze zaniża efekt interwencji?

Nie. Kierunek obciążenia zależy od przebiegu zmian w czasie i od tego, kto odpada. LOCF może zarówno zaniżać, jak i zawyżać efekt, dlatego nie jest metodą „ostrożną”.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Jakobsen, J. C., Gluud, C., Wetterslev, J., & Winkel, P. (2017). When and how should multiple imputation be used for handling missing data in randomised clinical trials – A practical guide with flowcharts. BMC Medical Research Methodology, 17(1), Article 162. https://doi.org/10.1186/s12874-017-0442-1 ● Otwarty dostęp
  2. Lachin, J. M. (2016). Fallacies of last observation carried forward analyses. Clinical Trials, 13(2), 161–168. https://doi.org/10.1177/1740774515602688 ● Otwarty dostęp: pełny tekst
  3. Sterne, J. A. C., White, I. R., Carlin, J. B., Spratt, M., Royston, P., Kenward, M. G., Wood, A. M., & Carpenter, J. R. (2009). Multiple imputation for missing data in epidemiological and clinical research: Potential and pitfalls. BMJ, 338, Article b2393. https://doi.org/10.1136/bmj.b2393 ● Otwarty dostęp

Cytowania BibTeX

@article{jakobsen2017when, author={Jakobsen, Janus Christian and Gluud, Christian and Wetterslev, Jørn and Winkel, Per}, title={{When and how should multiple imputation be used for handling missing data in randomised clinical trials – A practical guide with flowcharts}}, journal={BMC Medical Research Methodology}, year={2017}, volume={17}, number={1}, eid={162}, doi={10.1186/s12874-017-0442-1}}
@article{lachin2016fallacies, author={Lachin, John M.}, title={{Fallacies of last observation carried forward analyses}}, journal={Clinical Trials}, year={2016}, volume={13}, number={2}, pages={161--168}, doi={10.1177/1740774515602688}}
@article{sterne2009multiple, author={Sterne, Jonathan A. C. and White, Ian R. and Carlin, John B. and Spratt, Michael and Royston, Patrick and Kenward, Michael G. and Wood, Angela M. and Carpenter, James R.}, title={{Multiple imputation for missing data in epidemiological and clinical research: Potential and pitfalls}}, journal={BMJ}, year={2009}, volume={338}, eid={b2393}, doi={10.1136/bmj.b2393}}
R