Najpierw policz, ile brakuje i gdzie
Zanim wybierzesz metodę, sprawdź trzy rzeczy: ile osób przerwało ankietę, ile pustych komórek mają osoby, które ją ukończyły, i ile osób ma komplet odpowiedzi w zmiennych potrzebnych do hipotez. Te liczby i tak podasz w rozdziale metod, a od nich zależy dalsze postępowanie.
Weźmy przykład (dane symulowane). Ankietę rozpoczęło 240 osób: najpierw wypełniały 10-pozycyjną skalę stresu, potem 8-pozycyjną skalę wsparcia społecznego, obie z odpowiedziami od 1 do 5. W połowie przerwało 26 osób, więc ukończyło ją 214. Wśród ukończonych ankiet puste jest tylko 2.1% komórek. Mimo to komplet odpowiedzi ma 148 osób, jedną odpowiedź pominęło 51 osób, dwie – 14, a trzy – 1 osoba. Niewielki odsetek pustych komórek potrafi więc dotknąć co trzeciej osoby.
Nie każda pusta komórka to ten sam brak
W ankiecie spotkasz kilka sytuacji, które w eksporcie wyglądają podobnie, ale wymagają innej decyzji.
| Sytuacja | Co zrobić |
|---|---|
| Pytanie pominięte przez filtr („nie dotyczy”) | To nie jest brak. Zakoduj osobno i wyłącz z analizy tego pytania (zob. pytanie filtrujące). |
| Odpowiedź „nie wiem” albo „trudno powiedzieć” | Zdecyduj przed analizą, czy to brak, czy osobna kategoria. Nie wliczaj jej jako środka skali (zob. odpowiedź „nie wiem”). |
| Kody typu 99 lub −9 w eksporcie | Zamień na braki przed liczeniem średnich. |
| Jedno lub dwa pominięte pytania w skali | Policz wynik skali z reguły proporcjonalnej. |
| Brak całej skali albo przerwana ankieta | Sprawdź, czy te osoby różnią się od pozostałych. Potem zdecyduj: analiza kompletnych przypadków albo imputacja wielokrotna. |
Pojedyncze pominięte pytania: reguła proporcjonalna
Gdy osoba odpowiedziała na większość pozycji skali, jej wynik to średnia z dostępnych odpowiedzi. Minimalną liczbę odpowiedzi ustalasz przed analizą. Jeśli podręcznik narzędzia podaje własną regułę, stosujesz tę z podręcznika. W przykładzie przyjęliśmy co najmniej 80% pozycji. Zamiast 148 osób z kompletem w obu skalach analiza obejmuje wtedy 210 osób. Korelacja stresu ze wsparciem prawie się nie zmienia: r = −.36, 95% CI [−.49, −.21] przy samych kompletach i r = −.34, 95% CI [−.46, −.22] z regułą proporcjonalną. Przedział jest jednak węższy, bo osób jest więcej.
Ta reguła to też prosta imputacja, bo zakłada, że pominięta odpowiedź byłaby równa średniej pozostałych odpowiedzi tej osoby. Downey i King (1998) pokazali, że takie zastępowanie dobrze odtwarza dane, gdy braki dotyczą najwyżej 20% osób i 20% pozycji. Przy większej liczbie braków średnia osoby sztucznie zawyżała korelacje między pozycjami. Mazza i in. (2015) w symulacjach wykazali obciążenie takiego uśredniania nawet przy brakach całkowicie losowych. Przy pojedynczych brakach w krótkiej skali to rozsądny kompromis, przy wielu brakach już nie. Szczegóły liczenia wyniku z brakami, także w Excelu i SPSS, opisujemy we wpisie jak policzyć wynik kwestionariusza.
Przerwane ankiety: sprawdź, kto odpadł
Przerwanie ankiety po jej rozpoczęciu jest szczególnie częste w badaniach internetowych. Peytchev (2009) wiąże je przede wszystkim z budową kwestionariusza i obciążeniem respondenta. Dla Ciebie ważniejsze jest, czy osoby, które odpadły, różnią się od tych, które dotrwały do końca. Często da się to sprawdzić, bo część pytań wypełniły wszystkie osoby.
W przykładzie skalę stresu wypełnili wszyscy. Osoby, które przerwały ankietę, miały wyraźnie wyższy stres (M = 3.58, SD = 0.73, n = 26) niż osoby, które ją ukończyły (M = 2.99, SD = 0.68, n = 214), test Welcha: t(30.56) = 3.91, p < .001, d = 0.86. Analiza samych ukończonych ankiet pomija więc osoby najbardziej zestresowane. Braki nie są całkowicie losowe, a mogą być losowe pod warunkiem stresu (MAR, zob. braki danych MCAR, MAR i MNAR).
W takiej sytuacji lepszym wyborem niż usuwanie przypadków jest imputacja wielokrotna albo metoda największej wiarygodności. Te dwa podejścia rekomendują Schafer i Graham (2002). Do modelu imputacji włącz zmienne związane z brakami, tu wynik stresu. Nie kieruj się samym odsetkiem braków. Madley-Dowd i in. (2019) pokazali, że imputacja ze zmiennymi pomocniczymi zmniejsza obciążenie nawet przy dużym odsetku braków. Procedurę krok po kroku znajdziesz w poradniku braki danych i imputacja wielokrotna w R.
Jeśli osoby przerywające ankietę nie różnią się od pozostałych, a odpadło ich niewiele, analiza kompletnych przypadków jest do obrony. Napisz jednak w pracy, że ją sprawdziłeś.
Czego nie robić
- Nie wpisuj w puste komórki zera ani środka skali. Zero często nie jest nawet możliwą odpowiedzią.
- Nie wstawiaj średniej całej próby. Zaniża zmienność i osłabia korelacje.
- Nie sumuj samych dostępnych odpowiedzi bez korekty, bo osoba z brakiem dostaje niższy wynik.
- Nie stosuj prostych imputacji typu LOCF, opisanych w haśle LOCF i proste imputacje.
- Nie usuwaj po cichu osób z brakami w różnych analizach różnie. Wtedy każda tabela ma inne N i nikt nie wie dlaczego.
Miejsce braków w całym procesie analizy ankiety pokazujemy w poradniku analiza ankiety do pracy dyplomowej, a we wcześniejszym etapie pomaga czyszczenie danych z ankiety online. Cały proces, od zbierania odpowiedzi po wynik skali, prowadzi przewodnik po analizie kwestionariusza.
Jak to opisać w pracy
Jeśli zastosowałeś imputację wielokrotną, dopisz liczbę imputacji, zmienne w modelu imputacji i program. Wzór takiego opisu jest w poradniku o imputacji wielokrotnej.
Diagnoza braków w ankiecie w R
Kod symuluje ankietę z przerwaniami i pominiętymi pytaniami, liczy braki, wynik skal z regułą 80% i porównuje osoby, które przerwały ankietę, z pozostałymi.
Braki, reguła proporcjonalna i porównanie osób, które przerwały ankietę
R
# Braki danych w ankiecie: diagnoza, reguła proporcjonalna i porównanie osób, które przerwały ankietę
# Dane symulowane: 240 rozpoczętych ankiet, skala stresu (10 pozycji 1–5), skala wsparcia (8 pozycji 1–5)
set.seed(2141)
n <- 240
stres_lat <- rnorm(n); wsparcie_lat <- -0.35 * stres_lat + rnorm(n, sd = sqrt(1 - 0.35^2))
poz <- function(lat, k) sapply(1:k, function(j) pmin(5, pmax(1, round(3 + 0.9 * (0.75 * lat + rnorm(length(lat), sd = 0.66))))))
S <- poz(stres_lat, 10); W <- poz(wsparcie_lat, 8)
colnames(S) <- paste0("s", 1:10); colnames(W) <- paste0("w", 1:8)
d <- data.frame(id = 1:n, S, W)
# Przerwanie ankiety po skali stresu: częstsze przy wyższym stresie
przerwal <- runif(n) < plogis(-2.3 + 0.6 * stres_lat)
d[przerwal, paste0("w", 1:8)] <- NA
# Pojedyncze pominięte pytania (ok. 2% odpowiedzi)
for (v in c(paste0("s", 1:10), paste0("w", 1:8))) d[runif(n) < .02 & !is.na(d[[v]]), v] <- NA
s_poz <- paste0("s", 1:10); w_poz <- paste0("w", 1:8)
# 1. Ile brakuje i gdzie
c(rozpoczete = n, przerwane = sum(przerwal), ukonczone = sum(!przerwal))
ukon <- d[!przerwal, ]
round(100 * mean(is.na(ukon[, c(s_poz, w_poz)])), 1) # % pustych komórek wśród ukończonych
table(braki_na_osobe = rowSums(is.na(ukon[, c(s_poz, w_poz)])))
# 2. Wynik skali: komplet odpowiedzi a reguła proporcjonalna (co najmniej 80% pozycji)
wynik <- function(x, min_odsetek = .8) ifelse(rowMeans(!is.na(x)) >= min_odsetek, rowMeans(x, na.rm = TRUE), NA)
ukon$stres_kompl <- ifelse(complete.cases(ukon[, s_poz]), rowMeans(ukon[, s_poz]), NA)
ukon$wsp_kompl <- ifelse(complete.cases(ukon[, w_poz]), rowMeans(ukon[, w_poz]), NA)
ukon$stres <- wynik(ukon[, s_poz]); ukon$wsparcie <- wynik(ukon[, w_poz])
c(obie_skale_komplet = sum(complete.cases(ukon[, c("stres_kompl", "wsp_kompl")])),
obie_skale_regula80 = sum(complete.cases(ukon[, c("stres", "wsparcie")])))
k1 <- cor.test(ukon$stres_kompl, ukon$wsp_kompl); k2 <- cor.test(ukon$stres, ukon$wsparcie)
round(rbind(komplet = c(n = k1$parameter + 2, r = k1$estimate, k1$conf.int), regula80 = c(n = k2$parameter + 2, r = k2$estimate, k2$conf.int)), 2)
# 3. Czy osoby, które przerwały ankietę, różnią się od pozostałych? (stres znamy u wszystkich)
d$stres <- wynik(d[, s_poz]); d$grupa <- ifelse(przerwal, "przerwali", "ukonczyli")
aggregate(stres ~ grupa, d, function(x) round(c(n = length(x), M = mean(x), SD = sd(x)), 2))
tt <- t.test(stres ~ grupa, d); round(c(t = unname(tt$statistic), df = unname(tt$parameter)), 2); signif(tt$p.value, 2)
m <- tapply(d$stres, d$grupa, mean); s <- tapply(d$stres, d$grupa, sd); nn <- table(d$grupa[!is.na(d$stres)])
round(unname((m[1] - m[2]) / sqrt(((nn[1] - 1) * s[1]^2 + (nn[2] - 1) * s[2]^2) / (sum(nn) - 2))), 2) # d CohenaWynik w R
rozpoczete przerwane ukonczone
240 26 214
[1] 2.1
braki_na_osobe
0 1 2 3
148 51 14 1
obie_skale_komplet obie_skale_regula80
148 210
n.df r.cor
komplet 148 -0.36 -0.49 -0.21
regula80 210 -0.34 -0.46 -0.22
grupa stres.n stres.M stres.SD
1 przerwali 26.00 3.58 0.73
2 ukonczyli 214.00 2.99 0.68
t df
3.91 30.56
[1] 0.00048
[1] 0.86Bibliografia 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
Czy można usunąć z analizy niedokończone ankiety?
Można, jeśli osoby, które przerwały ankietę, nie różnią się od pozostałych w zmiennych, które wypełniły, i jest ich niewiele. Sprawdź to na pytaniach, na które odpowiedzieli wszyscy, i opisz w pracy. Jeśli się różnią, rozważ imputację wielokrotną.
Jak policzyć wynik skali, gdy ktoś pominął jedno pytanie?
Policz średnią z dostępnych odpowiedzi, jeśli osoba odpowiedziała na wystarczająco wiele pozycji, np. co najmniej 80%. Gdy potrzebujesz sumy, pomnóż tę średnią przez liczbę pozycji. Regułę ustal przed analizą, a jeśli podaje ją podręcznik narzędzia, zastosuj tamtą.
Czy odpowiedź „nie wiem” w ankiecie to brak danych?
To zależy od pytania, ale nie traktuj jej automatycznie jako środka skali. Zdecyduj przed analizą, czy analizujesz ją jako osobną kategorię, czy jako brak, i opisz tę decyzję w pracy.
Jaki odsetek braków danych w ankiecie jest dopuszczalny?
Nie ma progu, który sam rozstrzyga sprawę. Ważniejsze niż odsetek jest to, czy braki zależą od innych zmiennych. Madley-Dowd i in. (2019) pokazali, że imputacja wielokrotna ze zmiennymi pomocniczymi zmniejsza obciążenie nawet przy dużym odsetku braków.
Powiązane hasła
Przeczytaj też
Braki danych i imputacja wielokrotna w R
MCAR, MAR i MNAR, test Little’a, symulacja metod i imputacja wielokrotna w R krok po kroku – z kodem, regułami Rubina i gotowym opisem APA.
Czytaj →PoradnikJak policzyć wynik kwestionariusza
Klucz, pozycje odwrócone, podskale, reguła braków, suma czy średnia i kontrola wartości – w Excelu, SPSS, R i jamovi, z plikiem .xlsx z formułami.
Czytaj →PoradnikAnaliza ankiety do pracy dyplomowej
Od surowego eksportu do wyników hipotez: czyszczenie danych, wyniki skal, alfa i omega, opis próby, testy i opis APA – z danymi i kodem R.
Czytaj →Masz w ankiecie dużo pustych odpowiedzi?
Sprawdzimy, skąd biorą się braki, dobierzemy sposób ich obsługi i wyjaśnimy, jak go opisać w pracy, żebyś umiał(a) obronić tę decyzję.
Oferta dla studentówWyceń analizęBibliografia i dalsza literatura naukowa (APA 7)
- Downey, R. G., & King, C. V. (1998). Missing data in Likert ratings: A comparison of replacement methods. The Journal of General Psychology, 125(2), 175–191. https://doi.org/10.1080/00221309809595542
- Madley-Dowd, P., Hughes, R., Tilling, K., & Heron, J. (2019). The proportion of missing data should not be used to guide decisions on multiple imputation. Journal of Clinical Epidemiology, 110, 63–73. https://doi.org/10.1016/j.jclinepi.2019.02.016 ● Otwarty dostęp
- Mazza, G. L., Enders, C. K., & Ruehlman, L. S. (2015). Addressing item-level missing data: A comparison of proration and full information maximum likelihood estimation. Multivariate Behavioral Research, 50(5), 504–519. https://doi.org/10.1080/00273171.2015.1068157 ● Otwarty dostęp: pełny tekst
- Peytchev, A. (2009). Survey breakoff. Public Opinion Quarterly, 73(1), 74–97. https://doi.org/10.1093/poq/nfp014
- Schafer, J. L., & Graham, J. W. (2002). Missing data: Our view of the state of the art. Psychological Methods, 7(2), 147–177. https://doi.org/10.1037/1082-989X.7.2.147
Cytowania BibTeX
@article{downey1998missing, author={Downey, Ronald G. and King, Craig V.}, title={{Missing data in Likert ratings: A comparison of replacement methods}}, journal={The Journal of General Psychology}, year={1998}, volume={125}, number={2}, pages={175--191}, doi={10.1080/00221309809595542}}@article{madleydowd2019proportion, author={Madley-Dowd, Paul and Hughes, Rachael and Tilling, Kate and Heron, Jon}, title={{The proportion of missing data should not be used to guide decisions on multiple imputation}}, journal={Journal of Clinical Epidemiology}, year={2019}, volume={110}, pages={63--73}, doi={10.1016/j.jclinepi.2019.02.016}}@article{mazza2015addressing, author={Mazza, Gina L. and Enders, Craig K. and Ruehlman, Linda S.}, title={{Addressing item-level missing data: A comparison of proration and full information maximum likelihood estimation}}, journal={Multivariate Behavioral Research}, year={2015}, volume={50}, number={5}, pages={504--519}, doi={10.1080/00273171.2015.1068157}}@article{peytchev2009survey, author={Peytchev, Andy}, title={{Survey breakoff}}, journal={Public Opinion Quarterly}, year={2009}, volume={73}, number={1}, pages={74--97}, doi={10.1093/poq/nfp014}}@article{schafer2002missing, author={Schafer, Joseph L. and Graham, John W.}, title={{Missing data: Our view of the state of the art}}, journal={Psychological Methods}, year={2002}, volume={7}, number={2}, pages={147--177}, doi={10.1037/1082-989x.7.2.147}}