Słownik metodologiczny · Pomiar i skale

DIF – zróżnicowane funkcjonowanie pozycji: czym jest i jak go wykryć?

DIF oznacza, że pozycja testu lub kwestionariusza działa inaczej w grupach przy tym samym poziomie cechy. Pokazujemy DIF jednorodny i niejednorodny, trzy metody wykrywania, różnicę wobec rzeczywistej różnicy grup i przykład w R.

W skrócie: DIF (zróżnicowane funkcjonowanie pozycji) występuje, gdy osoby z różnych grup o tym samym poziomie cechy mają różne prawdopodobieństwo odpowiedzi na pozycję. Wykrywa się go procedurą Mantela–Haenszela, regresją logistyczną albo modelami IRT.

Co to jest DIF?

DIF (ang. differential item functioning), czyli zróżnicowane funkcjonowanie pozycji, występuje wtedy, gdy osoby o tym samym poziomie mierzonej cechy, ale z różnych grup (np. płci, wersji językowej), mają różne prawdopodobieństwo danej odpowiedzi na pozycję. Grupy porównuje się po wyrównaniu sumy punktów albo θ z modelu IRT. DIF jednorodny (uniform) czyni pozycję trudniejszą dla jednej grupy na całym zakresie cechy. DIF niejednorodny (nonuniform) zmienia nachylenie krzywej pozycji, więc przewaga grupy zależy od poziomu cechy (Swaminathan i Rogers, 1990).

Jak wykrywa się DIF

Mantel–Haenszel (MH). Dla każdego poziomu sumy punktów powstaje tabela 2 × 2 (grupa × odpowiedź), a tabele łączy się we wspólny iloraz szans αMH (Holland i Thayer, 1986). Metoda wychwytuje przede wszystkim DIF jednorodny.

Regresja logistyczna. Odpowiedź przewiduje się sumą punktów, grupą i ich interakcją. Efekt grupy oznacza DIF jednorodny, a interakcja – niejednorodny. W symulacjach Swaminathana i Rogers (1990) metoda była silniejsza od MH przy DIF niejednorodnym i równie silna przy jednorodnym.

IRT. W modelu wielogrupowym uwalnia się parametry badanej pozycji, a pozostałe pozycje są kotwicą (zob. IRT w R krok po kroku). Zumbo (2007) porządkuje te metody w trzy generacje analiz DIF.

Różnica średnich grup to jeszcze nie DIF. Grupa o naprawdę niższym poziomie cechy (ang. impact) odpowiada gorzej, ale przy tym samym poziomie cechy – tak samo.

Przykład

Dwie symulowane grupy po 500 osób rozwiązały 10 zadań. Grupa ogniskowa miała niższy poziom cechy (średnia suma 3.96 wobec 5.04), a zadanie 4 było dla niej dodatkowo trudniejsze. MH wskazał tylko zadanie 4: αMH = 2.13, ΔMH = −1.78, χ²(1) = 24.58, p < .001. Reszta różnicy sum to impact.

Jak opisać w pracy

DIF ze względu na grupę zbadano procedurą Mantela–Haenszela i regresją logistyczną. DIF wykazało tylko zadanie 4: αMH = 2.13, ΔMH = −1.78, χ²(1) = 24.58, p < .001. Był to DIF jednorodny, χ²(1) = 23.40, p < .001; test DIF niejednorodnego: χ²(1) = 0.06, p = .808.

Co zrobić z pozycją z DIF

  • Najpierw treść. Sprawdź sformułowanie i tłumaczenie, zwłaszcza w adaptacji kwestionariusza.
  • Potem decyzja. Pozycję można usunąć, zastąpić albo zostawić z parametrami swobodnymi w grupach, jak przy częściowej inwariancji pomiaru.
  • Istotność to nie wielkość. W dużej próbie nawet drobny DIF bywa istotny; podaj miarę efektu i uwzględnij liczbę testów. Porównanie metod opisuje wpis DIF krok po kroku.
Przykład reprodukowalny

DIF w R

Kod symuluje dwie grupy z różnym poziomem cechy i jedną pozycją z DIF, a potem testuje każdą pozycję procedurą Mantela–Haenszela (mantelhaen.test) i regresją logistyczną (glm).

Mantel–Haenszel i regresja logistyczna dla 10 zadań

Dane wejściowe: odpowiedzi 0/1 na 10 zadań w dwóch grupach po 500 osób; grupa ogniskowa ma średnio niższy poziom cechy, a zadanie 4 jest dla niej trudniejsze o 0.6 logita (dane symulowane, set.seed(3371)).

Co odczytać: średnie sumy w grupach, a dla każdego zadania αMH, ΔMH = −2.35·ln αMH, χ² i p oraz testy ilorazu wiarygodności DIF jednorodnego i niejednorodnego. Wartość 0.000 oznacza p < .001.

R
set.seed(3371)
n <- 500                                            # osób w każdej grupie
b <- seq(-1.5, 1.5, length.out = 10)                # trudności 10 zadań
theta <- c(rnorm(n, 0, 1), rnorm(n, -0.5, 1))       # grupa ogniskowa średnio niżej (impact)
grupa <- factor(rep(c("odniesienia", "ogniskowa"), each = n))
bb <- matrix(b, 2 * n, 10, byrow = TRUE)
bb[grupa == "ogniskowa", 4] <- b[4] + 0.6           # zadanie 4 trudniejsze w grupie ogniskowej (DIF)
X <- (matrix(runif(2 * n * 10), 2 * n) < plogis(theta - bb)) * 1
suma <- rowSums(X)
tapply(suma, grupa, mean)                           # różnica wyników = impact + DIF
mh <- function(j) {                                 # Mantel–Haenszel: warstwy = suma punktów
  s <- suma; ok <- s > 0 & s < 10
  t <- table(factor(X[ok, j], 1:0), grupa[ok], s[ok])
  t <- t[, , apply(t, 3, function(k) all(colSums(k) > 0)), drop = FALSE]
  w <- mantelhaen.test(t, correct = TRUE)
  c(alfa_MH = unname(w$estimate), delta_MH = -2.35 * log(unname(w$estimate)),
    chi2 = unname(w$statistic), p = w$p.value)
}
round(t(sapply(1:10, mh)), 3)                    # zadanie 4 (DIF) i 7 (bez DIF)
lr <- function(j) {                                 # regresja logistyczna: jednorodny i niejednorodny
  m0 <- glm(X[, j] ~ suma, family = binomial)
  m1 <- glm(X[, j] ~ suma + grupa, family = binomial)
  m2 <- glm(X[, j] ~ suma * grupa, family = binomial)
  a <- anova(m0, m1, m2, test = "LRT")
  c(chi2_jedn = a$Deviance[2], p_jedn = a$`Pr(>Chi)`[2],
    chi2_niejedn = a$Deviance[3], p_niejedn = a$`Pr(>Chi)`[3])
}
round(t(sapply(1:10, lr)), 3)
Wynik w R
odniesienia   ogniskowa 
      5.036       3.964 
      alfa_MH delta_MH   chi2     p
 [1,]   0.963    0.088  0.018 0.892
 [2,]   0.733    0.731  3.331 0.068
 [3,]   0.951    0.119  0.059 0.808
 [4,]   2.134   -1.781 24.577 0.000
 [5,]   1.028   -0.066  0.013 0.911
 [6,]   0.836    0.422  1.200 0.273
 [7,]   0.852    0.377  0.882 0.348
 [8,]   0.963    0.088  0.020 0.887
 [9,]   0.899    0.251  0.257 0.612
[10,]   1.006   -0.015  0.001 0.974
      chi2_jedn p_jedn chi2_niejedn p_niejedn
 [1,]     0.019  0.889        2.012     0.156
 [2,]     3.682  0.055        1.081     0.298
 [3,]     0.054  0.817        0.516     0.472
 [4,]    23.398  0.000        0.059     0.808
 [5,]     0.217  0.641        0.712     0.399
 [6,]     1.291  0.256        0.342     0.559
 [7,]     1.106  0.293        1.376     0.241
 [8,]     0.079  0.779        1.935     0.164
 [9,]     0.102  0.749        0.172     0.679
[10,]     0.010  0.920        0.251     0.616

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  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/

Najczęstsze pytania

Czym DIF różni się od różnicy średnich między grupami?

Różnica średnich może wynikać z rzeczywiście różnego poziomu cechy (impact). DIF dotyczy tylko różnicy, która zostaje po wyrównaniu poziomu cechy, czyli przy porównaniu osób o tym samym wyniku.

Którą metodę wykrywania DIF wybrać przy kilkuset osobach?

Mantel–Haenszel i regresja logistyczna działają na sumie punktów i dobrze sprawdzają się przy kilkuset osobach na grupę. Regresja logistyczna wykrywa też DIF niejednorodny (Swaminathan i Rogers, 1990).

Czy pozycję z istotnym DIF trzeba usunąć ze skali?

Nie zawsze. Najpierw oceń wielkość efektu i treść pozycji. Można ją usunąć, przeredagować albo zostawić z parametrami szacowanymi osobno w grupach (częściowa inwariancja).

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. Holland, P. W., & Thayer, D. T. (1986). Differential item functioning and the Mantel–Haenszel procedure. ETS Research Report Series, 1986(2). https://doi.org/10.1002/j.2330-8516.1986.tb00186.x
  2. Swaminathan, H., & Rogers, H. J. (1990). Detecting differential item functioning using logistic regression procedures. Journal of Educational Measurement, 27(4), 361–370. https://doi.org/10.1111/j.1745-3984.1990.tb00754.x
  3. Zumbo, B. D. (2007). Three generations of DIF analyses: Considering where it has been, where it is now, and where it is going. Language Assessment Quarterly, 4(2), 223–233. https://doi.org/10.1080/15434300701375832

Cytowania BibTeX

@article{holland1986differential, author={Holland, Paul W. and Thayer, Dorothy T.}, title={{Differential item functioning and the Mantel–Haenszel procedure}}, journal={ETS Research Report Series}, year={1986}, volume={1986}, number={2}, doi={10.1002/j.2330-8516.1986.tb00186.x}}
@article{swaminathan1990detecting, author={Swaminathan, Hariharan and Rogers, H. Jane}, title={{Detecting differential item functioning using logistic regression procedures}}, journal={Journal of Educational Measurement}, year={1990}, volume={27}, number={4}, pages={361--370}, doi={10.1111/j.1745-3984.1990.tb00754.x}}
@article{zumbo2007three, author={Zumbo, Bruno D.}, title={{Three generations of DIF analyses: Considering where it has been, where it is now, and where it is going}}, journal={Language Assessment Quarterly}, year={2007}, volume={4}, number={2}, pages={223--233}, doi={10.1080/15434300701375832}}
R