Publikacje naukowe · Psychometria

Macierz MTMM – wiele cech i wiele metod w walidacji skali

Skala koreluje z innymi miarami tej samej cechy, ale czy nie dlatego, że wszystkie wypełniła ta sama osoba? Pokazujemy, jak zaplanować badanie 3 cechy × 3 metody, sprawdzić cztery kryteria Campbella i Fiske’a, dopasować modele CFA-MTMM w lavaan i co zrobić, gdy model nie jest identyfikowany.

Strona główna / Blog / Macierz MTMM
W skrócie: Macierz MTMM zestawia korelacje kilku cech mierzonych kilkoma metodami. Według Campbella i Fiske’a (1959) korelacje tej samej cechy mierzonej różnymi metodami powinny przewyższać korelacje różnych cech, także mierzonych tą samą metodą. Modele CFA-MTMM rozdzielają wariancję cechy i metody, ale klasyczny model CTCM często nie daje dopuszczalnego rozwiązania, dlatego zaplanuj model CT-C(M−1) albo model skorelowanych reszt i raportuj, który i dlaczego.

Po co mierzyć kilka cech kilkoma metodami

Nowa skala koreluje .60 z uznanym kwestionariuszem tego samego konstruktu. To wygląda na dowód trafności zbieżnej, ale jeśli oba narzędzia wypełniła ta sama osoba w jednej ankiecie, część tej korelacji może wynikać ze sposobu pomiaru: stylu odpowiadania, chęci dobrego wypadnięcia, nastroju. To wspólna wariancja metody. Jednometodowe badanie walidacyjne nie pozwala oddzielić jej od wariancji cechy.

Campbell i Fiske (1959) zaproponowali rozwiązanie, które do dziś jest podstawą oceny trafności teoretycznej: zmierz co najmniej dwie cechy co najmniej dwiema metodami i zestaw wszystkie korelacje w jednej macierzy wielu cech i wielu metod (MTMM). Na tle innych dowodów trafności, które porządkuje wpis rodzaje trafności – mapa dowodów, MTMM jest jedynym schematem, który jednocześnie sprawdza zbieżność, różnicowanie i siłę efektu metody. Prosty przykład 2 × 2 znajdziesz w haśle o trafności zbieżnej. Tu idziemy dalej: układ 3 × 3, formalne kryteria i modele CFA, w których cechy i metody są osobnymi czynnikami.

Jak zaplanować badanie MTMM

Decyzje w planie badania MTMM i zalecenia
DecyzjaZalecenieDlaczego
Liczba cech i metodco najmniej 3 × 3Kryteria Campbella i Fiske’a działają już przy 2 × 2, ale modele CFA-MTMM przy małych macierzach często zawodzą (Marsh i Bailey, 1991)
Metodymożliwie różne: samoopis, ocena bliskiej osoby, obserwacja, zadanieDwa kwestionariusze samoopisowe to w praktyce jedna metoda
Cechywalidowana cecha i dwie cechy pokrewne, ale odrębneCechy zupełnie niezwiązane nie sprawdzą różnicowania
Rzetelnośćwielopozycyjne skale z policzoną α lub ωNiska rzetelność zaniża wszystkie korelacje w macierzy
Model analizywybrany przed zebraniem danych, z planem BKlasyczny model CTCM często nie daje dopuszczalnego rozwiązania

Przykład: trzy cechy osobowości, trzy źródła ocen

Czterysta osób (dane symulowane, set.seed(2711)) opisało swoją ekstrawersję (EKS), sumienność (SUM) i neurotyczność (NEU) czterema pozycjami 1–5 na każdą cechę. Te same cechy ocenił partner lub partnerka (PA) oraz przyjaciel lub przyjaciółka (PR). Daje to 9 miar: trzy cechy × trzy metody: samoopis (SO), ocena partnera i ocena przyjaciela. W symulacji ocena partnera ma najsilniejszy efekt metody (ogólnie życzliwa ocena przenosi się na wszystkie cechy), a przyjaciele słabo widzą neurotyczność. Dane możesz pobrać jako plik CSV (400 wierszy, 36 pozycji).

Macierz MTMM 9 × 9 dla ekstrawersji, sumienności i neurotyczności w samoopisie, ocenie partnera i ocenie przyjaciela: rzetelność α od .82 do .84, korelacje tej samej cechy różnymi metodami od .24 do .55, korelacje różnych cech tą samą metodą do −.43 w ocenach partnera, korelacje różnych cech różnymi metodami zwykle poniżej .25
Rysunek 1. Macierz MTMM. Na przekątnej rzetelność α, czerwone pola to przekątne trafności (ta sama cecha, różne metody), niebieskie trójkąty w ramkach – różne cechy mierzone tą samą metodą, szare – różne cechy i różne metody. Intensywność koloru rośnie z |r|. Obliczenia: R (dane symulowane).

Macierz czyta się blokami. Bloki jednometodowe (w ramkach) zawierają rzetelności i korelacje różnych cech mierzonych tą samą metodą. Bloki różnometodowe mają na przekątnej korelacje tej samej cechy z dwóch źródeł – to przekątne trafności – a poza nią korelacje różnych cech z różnych źródeł. Średnia wartość bezwzględna korelacji wyniosła .45 na przekątnych trafności, .25 w trójkątach jednometodowych i .13 w trójkątach różnometodowych. Ogólny obraz jest więc dobry, ale kryteria trzeba sprawdzić komórka po komórce.

Cztery kryteria Campbella i Fiske’a

Campbell i Fiske (1959) opisali kryteria porównań wewnątrz macierzy. Ponieważ neurotyczność koreluje z pozostałymi cechami ujemnie, porównujemy wartości bezwzględne korelacji Pearsona.

Kryteria Campbella i Fiske’a: co porównać i wynik w przykładzie
KryteriumCo porównujeszWynik w przykładzie
1. Zbieżnośćkorelacje na przekątnych trafności są wyraźnie różne od zerawszystkie 9 od .24, 95% CI [.14, .33], do .55, 95% CI [.47, .61]
2. Różnicowanie a tłokażda wartość trafności > korelacje w tym samym wierszu i kolumnie bloku różnometodowego36 z 36 porównań
3. Różnicowanie a metodakażda wartość trafności > korelacje różnych cech mierzonych tą samą metodą, w których udział biorą te same miary33 z 36 porównań
4. Ten sam wzórukład korelacji między cechami jest podobny we wszystkich trójkątachznaki zgodne w 9 z 9, kolejność siły w 5 z 9 trójkątów

Wszystkie trzy porażki kryterium 3 dotyczą neurotyczności w ocenie przyjaciela. Zgodność samoopisu z oceną przyjaciela (.24) nie przewyższa korelacji neurotyczności z ekstrawersją w samoopisie (−.24), a zgodność partnera z przyjacielem (.30) przegrywa z korelacjami neurotyczności z ekstrawersją (−.43) i sumiennością (−.32) w ocenach partnera. Innymi słowy, partner oceniający „dobrze” lub „źle” całą osobę łączy cechy silniej, niż dwóch oceniających zgadza się co do neurotyczności. Kryterium 4 wypada słabiej, bo korelacje różnych cech z różnych źródeł są bliskie zera i ich kolejność łatwo się odwraca; stały pozostaje kierunek (neurotyczność ujemnie z obiema cechami w każdym trójkącie).

Kryteria są czytelne, ale mają ograniczenia: porównania nie uwzględniają różnic w rzetelności miar, nie mają testów istotności i nie mówią, ile wariancji pochodzi z cechy, a ile z metody. Dlatego Widaman (1985) zaproponował zestaw hierarchicznie zagnieżdżonych modeli struktur kowariancji, w których trafność zbieżną, różnicową i wariancję metody sprawdza się porównaniami modeli.

Modele CFA-MTMM: cechy i metody jako czynniki

W modelach CFA-MTMM każdy wynik zależy od czynnika swojej cechy i od efektu swojej metody. Różnią się tym, jak modelują metodę. Wszystkie dopasowaliśmy w pakiecie lavaan (Rosseel, 2012) metodą największej wiarygodności na 9 wynikach skal:

Cztery modele CFA-MTMM: sposób modelowania metody, stopnie swobody i wynik w przykładzie
ModelJak modeluje metodędfWynik w przykładzie
CTCM (skorelowane cechy, skorelowane metody)3 czynniki metody, skorelowane ze sobą, nieskorelowane z cechami12brak zbieżności
CTUM (nieskorelowane metody)3 nieskorelowane czynniki metody15χ² = 26.85, CFI = .987, RMSEA = .044
CTCU (skorelowane reszty)bez czynników metody; reszty miar tej samej metody skorelowane15χ² = 26.85, CFI = .987, RMSEA = .044
CT-C(M−1)czynniki metody dla wszystkich metod poza metodą odniesienia (tu samoopis)17χ² = 22.37, CFI = .994, RMSEA = .028

Identyczne χ² modeli CTUM i CTCU nie są przypadkiem: przy trzech cechach trzy kowariancje reszt w obrębie metody i trzy ładunki nieskorelowanego czynnika metody odtwarzają ten sam zbiór kowariancji. Modele są równoważne i dopasowanie ich nie rozróżni. W modelu CTCU korelacje cech wyniosły .11 dla ekstrawersji i sumienności, −.42 dla ekstrawersji i neurotyczności oraz −.33 dla sumienności i neurotyczności, a w CT-C(M−1) odpowiednio .13, −.41 i −.33. Wszystkie leżą wyraźnie poniżej 1, więc cechy są odróżnialne. Szczegóły oceny trafności różnicowej w CFA opisuje wpis trafność zbieżna i różnicowa: AVE i HTMT.

Problemy z identyfikacją: dlaczego CTCM tak często zawodzi

CTCM jest najbardziej naturalnym modelem, ale ma złą sławę. Kenny i Kashy (1992) pokazali, że ważny szczególny przypadek tego modelu nie jest zidentyfikowany, a ponieważ większość danych MTMM jest do niego zbliżona, analizy cierpią na empiryczny brak identyfikacji: model formalnie ma dodatnie df, ale w konkretnych danych parametrów nie da się stabilnie oszacować. Marsh (1989) opisał w trzech badaniach częste źle określone rozwiązania i to, że tzw. czynniki metody wchłaniały też wariancję cech.

W naszym przykładzie lavaan zgłosił brak zbieżności. Po zwiększeniu limitu do 20 000 iteracji model „zbiegł” i wyglądał znakomicie: χ²(12) = 13.86, p = .310, CFI = .998, RMSEA = .020. Jednocześnie wariancja resztowa samoopisu sumienności wyniosła −595.59, a błędów standardowych nie dało się policzyć. To przypadek Heywooda, a nie dobry model. Przyczyna jest typowa: czynnik metody samoopisu jest słaby (w symulacji ładunki .25), więc jego trzy ładunki i trzy korelacje z innymi metodami są prawie nieokreślone.

Odsetek prób z rozwiązaniem zbieżnym i dopuszczalnym w 200 symulacjach: CTCM 16.5% przy N = 150 i 39.5% przy N = 400, CTUM 62.0% i 90.5%, CTCU 99.5% i 100.0%, CT-C(M−1) 81.0% i 97.5%
Rysunek 2. Odsetek z 200 prób z tej samej populacji, w których model dał rozwiązanie zbieżne i dopuszczalne (bez ujemnych wariancji i korelacji większych niż 1). Obliczenia: R, lavaan (dane symulowane).

Żeby sprawdzić, czy to pech jednej próby, powtórzyliśmy losowanie 200 razy dla N = 150 i N = 400. CTCM dał dopuszczalne rozwiązanie tylko w 16.5% i 39.5% prób, choć dane pochodziły dokładnie z modelu z czynnikami cech i metod. Model skorelowanych reszt działał prawie zawsze (99.5% i 100%), CT-C(M−1) w 81.0% i 97.5% prób. Ten obraz jest zgodny z symulacjami Marsha i Baileya (1991), w których model skorelowanych reszt dawał rozwiązania dopuszczalne w 96–99% macierzy, a ogólny model z czynnikami metody w 22–24%. Planując badanie MTMM, policz liczebność próby symulacyjnie, tak jak we wpisie liczebność próby do SEM – symulacja Monte Carlo, i sprawdzaj nie tylko moc, ale też odsetek rozwiązań dopuszczalnych.

Czy wobec tego zawsze wybierać skorelowane reszty? Nie. Lance i in. (2002) zwracają uwagę na teoretyczne słabości tego modelu i zalecają traktować CTCM jako model preferowany, a skorelowane reszty jako wyjście awaryjne. Model CTCU zakłada nieskorelowane metody i nie daje czynnika metody, który można by powiązać z innymi zmiennymi (np. z aprobatą społeczną). Jeśli metody w rzeczywistości korelują, jak oceny partnera i przyjaciela, ta wspólna część może trafić do czynników cech.

Model CT-C(M−1): metoda odniesienia

Eid (2000) zaproponował model, który ma tyle czynników cech, ile cech, i o jeden czynnik metody mniej, niż jest metod. Model jest zidentyfikowany także w warunkach, w których inne modele CFA-MTMM nie są. Jedna metoda jest metodą odniesienia i definiuje czynnik cechy. Czynniki pozostałych metod opisują to, czym ich wyniki różnią się od wyniku przewidywanego z metody odniesienia. Eid i in. (2003) rozszerzyli ten model na wiele wskaźników na każdą kombinację cechy i metody, z efektami metody specyficznymi dla cech.

Wybraliśmy samoopis jako metodę odniesienia, bo walidujemy skalę samoopisową, a oceny innych osób traktujemy jako źródła porównawcze. Model był dobrze dopasowany: χ²(17) = 22.37, p = .171, CFI = .994, TLI = .988, RMSEA = .028, SRMR = .035. Z ładunków standaryzowanych liczy się dla każdej miary spójność (odsetek wyjaśnionej wariancji pochodzący z cechy) i specyficzność metody (odsetek z czynnika metody):

Model CT-C(M−1): standaryzowane ładunki cech i metod, wariancja wyjaśniona, spójność i specyficzność metody dla ocen partnera i przyjaciela
MiaraŁadunek cechyŁadunek metodyR²SpójnośćSpecyficzność metody
Ekstrawersja · partner.69.49.72.66.34
Sumienność · partner.61.44.56.65.35
Neurotyczność · partner.58−.53.62.54.46
Ekstrawersja · przyjaciel.68.42.64.72.28
Sumienność · przyjaciel.55.42.48.63.37
Neurotyczność · przyjaciel.32−.41.27.37.63

Ocena neurotyczności przez przyjaciela jest przede wszystkim „wiedzą przyjaciela”: tylko 37% jej wyjaśnionej wariancji pokrywa się z samoopisem. To ten sam problem, który w macierzy pokazało kryterium 3, ale teraz zmierzony. Przeciwne znaki ładunków metody dla neurotyczności i pozostałych cech oznaczają ogólnie życzliwą lub krytyczną ocenę całej osoby. Czynniki metody partnera i przyjaciela korelują .47: oceniający zewnętrzni dzielą perspektywę, której nie ma w samoopisie. Pamiętaj, że w tym modelu „cecha” oznacza cechę widzianą w samoopisie. Gdyby metodą odniesienia był partner, liczby i ich znaczenie by się zmieniły.

Jak opisać analizę MTMM

Podaj układ cech i metod, macierz z rzetelnościami na przekątnej (jako tabelę lub rysunek), wynik każdego kryterium w liczbach porównań, wszystkie dopasowane modele z informacją o zbieżności i dopuszczalności oraz uzasadnienie wyboru modelu i metody odniesienia. Tabelę dopasowania przygotujesz według wzoru tabeli dopasowania modelu CFA w APA.

Trafność zbieżną i różnicową oceniono w schemacie wielu cech i wielu metod (MTMM): ekstrawersję, sumienność i neurotyczność zmierzono samoopisem oraz oceną partnera i przyjaciela (N = 400). Wszystkie 9 korelacji tej samej cechy mierzonej różnymi metodami było dodatnich, od r = .24, 95% CI [.14, .33], do r = .55, 95% CI [.47, .61]. Przewyższały one korelacje różnych cech mierzonych różnymi metodami w 36 z 36 porównań, a korelacje różnych cech mierzonych tą samą metodą w 33 z 36 porównań; wszystkie wyjątki dotyczyły neurotyczności w ocenie przyjaciela. Model CTCM nie dał rozwiązania dopuszczalnego (ujemna wariancja resztowa), dlatego jako model główny przyjęto CT-C(M−1) z samoopisem jako metodą odniesienia (Eid, 2000), χ²(17) = 22.37, p = .171, CFI = .994, TLI = .988, RMSEA = .028, SRMR = .035. Spójność ocen innych osób z samoopisem wynosiła od .54 do .72, z wyjątkiem neurotyczności w ocenie przyjaciela (.37).

Więcej o modelach z czynnikiem ogólnym i czynnikami specyficznymi, które bywają mylone z MTMM, znajdziesz we wpisie model bifactor i ESEM, a ogólny przebieg walidacji w przewodniku psychometria i budowa skal.

Przykład reprodukowalny

Przykład w R

Trzy przepisy uruchamiane po kolei w jednej sesji. Pierwszy tworzy dane, zapisuje plik mtmm-dane.csv (możesz go pobrać tutaj) i sprawdza kryteria Campbella i Fiske’a. Drugi dopasowuje cztery modele CFA-MTMM. Trzeci powtarza losowanie 200 razy i trwa kilka minut. Potrzebne są pakiety lavaan i MASS. Podstawy składni lavaan opisuje wpis CB-SEM w R (lavaan).

1. Macierz MTMM i kryteria Campbella i Fiske’a

Dane wejściowe: 400 osób, 3 cechy × 3 metody, po 4 pozycje 1–5 (dane symulowane, set.seed(2711)).

Co odczytać: macierz z α na przekątnej, średnie |r| w typach komórek (VD – przekątne trafności, HTMM – różne cechy i ta sama metoda, HTHM – różne cechy i różne metody), korelacje zbieżne z 95% CI, liczby spełnionych porównań w kryteriach 2 i 3 oraz trójkąty do kryterium 4.

R
# Dane symulowane: 400 osób; trzy cechy – ekstrawersja (EKS), sumienność (SUM), neurotyczność (NEU) –
# mierzone trzema metodami: samoopis (SO), ocena partnera (PA), ocena przyjaciela (PR); po 4 pozycje 1–5 na skalę
suppressPackageStartupMessages(library(lavaan))
set.seed(2711)
N <- 400
cechy <- c("EKS", "SUM", "NEU"); metody <- c("SO", "PA", "PR")
Phi_T <- matrix(c(1, .25, -.45,
                  .25, 1, -.35,
                  -.45, -.35, 1), 3, dimnames = list(cechy, cechy))
Phi_M <- matrix(c(1, 0, 0,
                  0, 1, .30,
                  0, .30, 1), 3, dimnames = list(metody, metody))     # oceniający zewnętrzni dzielą część perspektywy
T <- MASS::mvrnorm(N, rep(0, 3), Phi_T); M <- MASS::mvrnorm(N, rep(0, 3), Phi_M)
lT <- matrix(c(.85, .80, .75,       # ładunki cech: wiersze = cechy, kolumny = metody
               .85, .75, .70,
               .85, .65, .45), 3, byrow = TRUE, dimnames = list(cechy, metody))
lM <- matrix(c(.25, .50, .40,       # ładunki metody (efekt aureoli); dla NEU ujemne: „dobra ocena” = mniej neurotyczności
               .25, .50, .40,
               -.25, -.50, -.40), 3, byrow = TRUE, dimnames = list(cechy, metody))
dane <- data.frame(id = sprintf("o%03d", 1:N))
for (m in metody) for (t in cechy) {
  # wynik prawdziwy skali = cecha + metoda + część specyficzna dla tej skali (wariancja 1)
  wynik_prawdziwy <- lT[t, m] * T[, t] + lM[t, m] * M[, m] + sqrt(1 - lT[t, m]^2 - lM[t, m]^2) * rnorm(N)
  for (j in 1:4) {            # pozycja = wynik prawdziwy + błąd pozycji, zaokrąglona do skali 1–5
    poz <- wynik_prawdziwy + rnorm(N, 0, 0.8)
    dane[[paste(t, m, j, sep = "_")]] <- pmin(pmax(round(3 + 0.9 * poz), 1), 5)
  }
}
write.csv(dane, "mtmm-dane.csv", row.names = FALSE)

# Wyniki skal (średnie z 4 pozycji) i rzetelność α
miary <- as.vector(outer(cechy, metody, paste, sep = "_"))       # kolejność: cechy w obrębie metod
skale <- sapply(miary, function(v) rowMeans(dane[, paste(v, 1:4, sep = "_")]))
alfa <- sapply(miary, function(v) { x <- dane[, paste(v, 1:4, sep = "_")]; k <- 4
  k / (k - 1) * (1 - sum(apply(x, 2, var)) / var(rowSums(x))) })
R <- cor(skale)
mtmm <- round(R, 2); diag(mtmm) <- round(alfa, 2)                # na przekątnej rzetelność α
print(mtmm)

# Typ każdej komórki: przekątna trafności (VD), różne cechy–ta sama metoda (HTMM), różne cechy–różne metody (HTHM)
cecha <- sub("_.*", "", miary); metoda <- sub(".*_", "", miary)
typ <- outer(seq_along(miary), seq_along(miary), Vectorize(function(i, j)
  if (i == j) "rzetelnosc" else if (cecha[i] == cecha[j]) "VD" else if (metoda[i] == metoda[j]) "HTMM" else "HTHM"))
dolny <- lower.tri(R)
round(tapply(abs(R[dolny]), typ[dolny], mean), 2)               # średnie wartości bezwzględne w typach komórek

# Kryterium 1: korelacje na przekątnej trafności z 95% CI
vd <- which(typ == "VD" & dolny, arr.ind = TRUE)
k1 <- data.frame(para = paste(miary[vd[, 2]], miary[vd[, 1]], sep = " – "), r = R[vd])
k1$dolny95 <- tanh(atanh(k1$r) - 1.96 / sqrt(N - 3)); k1$gorny95 <- tanh(atanh(k1$r) + 1.96 / sqrt(N - 3))
print(cbind(k1[1], round(k1[-1], 2)), row.names = FALSE)

# Kryteria 2 i 3: ile porównań |r| na przekątnej trafności > |r| w odpowiednich komórkach
k2 <- k3 <- c(spelnione = 0, wszystkie = 0)
for (w in seq_len(nrow(vd))) {
  i <- vd[w, 1]; j <- vd[w, 2]; v <- abs(R[i, j])
  hthm <- c(R[i, metoda == metoda[j] & cecha != cecha[i]], R[j, metoda == metoda[i] & cecha != cecha[j]])
  htmm <- c(R[i, metoda == metoda[i] & cecha != cecha[i]], R[j, metoda == metoda[j] & cecha != cecha[j]])
  k2 <- k2 + c(sum(v > abs(hthm)), length(hthm)); k3 <- k3 + c(sum(v > abs(htmm)), length(htmm))
  if (any(v <= abs(htmm))) cat("Kryterium 3 niespełnione dla", miary[j], "–", miary[i], "\n")
}
rbind(kryterium2 = k2, kryterium3 = k3)

# Kryterium 4: ten sam wzór korelacji między cechami we wszystkich trójkątach (3 jednometodowe + 6 różnometodowych)
wzor <- function(mi, mj) c(EKS_SUM = R[paste0("EKS_", mi), paste0("SUM_", mj)],
                           EKS_NEU = R[paste0("EKS_", mi), paste0("NEU_", mj)],
                           SUM_NEU = R[paste0("SUM_", mi), paste0("NEU_", mj)])
pary <- rbind(cbind(metody, metody), t(combn(metody, 2)), t(combn(metody, 2))[, 2:1])
trojkaty <- t(apply(pary, 1, function(p) wzor(p[1], p[2])))
rownames(trojkaty) <- paste(pary[, 1], pary[, 2], sep = "×")
print(round(trojkaty, 2))
# zgodność wzoru: te same znaki i ta sama kolejność wartości bezwzględnych co we wzorze średnim
sredni <- colMeans(trojkaty)
zgodny <- apply(trojkaty, 1, function(x) all(sign(x) == sign(sredni)) && identical(order(abs(x)), order(abs(sredni))))
c(zgodne_trojkaty = sum(zgodny), wszystkie = length(zgodny))
Wynik w R
       EKS_SO SUM_SO NEU_SO EKS_PA SUM_PA NEU_PA EKS_PR SUM_PR NEU_PR
EKS_SO   0.82   0.14  -0.24   0.55   0.05  -0.15   0.54  -0.02  -0.02
SUM_SO   0.14   0.82  -0.23   0.06   0.50  -0.16   0.07   0.46  -0.11
NEU_SO  -0.24  -0.23   0.83  -0.25  -0.14   0.45  -0.23  -0.11   0.24
EKS_PA   0.55   0.06  -0.25   0.83   0.24  -0.43   0.55   0.08  -0.14
SUM_PA   0.05   0.50  -0.14   0.24   0.83  -0.32   0.11   0.43  -0.20
NEU_PA  -0.15  -0.16   0.45  -0.43  -0.32   0.83  -0.27  -0.12   0.30
EKS_PR   0.54   0.07  -0.23   0.55   0.11  -0.27   0.83   0.19  -0.20
SUM_PR  -0.02   0.46  -0.11   0.08   0.43  -0.12   0.19   0.84  -0.23
NEU_PR  -0.02  -0.11   0.24  -0.14  -0.20   0.30  -0.20  -0.23   0.83
HTHM HTMM   VD 
0.13 0.25 0.45 
            para    r dolny95 gorny95
 EKS_SO – EKS_PA 0.55    0.48    0.62
 EKS_SO – EKS_PR 0.54    0.47    0.61
 SUM_SO – SUM_PA 0.50    0.42    0.57
 SUM_SO – SUM_PR 0.46    0.38    0.53
 NEU_SO – NEU_PA 0.45    0.36    0.52
 NEU_SO – NEU_PR 0.24    0.14    0.33
 EKS_PA – EKS_PR 0.55    0.47    0.61
 SUM_PA – SUM_PR 0.43    0.35    0.51
 NEU_PA – NEU_PR 0.30    0.21    0.39
Kryterium 3 niespełnione dla NEU_SO – NEU_PR 
Kryterium 3 niespełnione dla NEU_PA – NEU_PR 
           spelnione wszystkie
kryterium2        36        36
kryterium3        33        36
      EKS_SUM EKS_NEU SUM_NEU
SO×SO    0.14   -0.24   -0.23
PA×PA    0.24   -0.43   -0.32
PR×PR    0.19   -0.20   -0.23
SO×PA    0.05   -0.15   -0.16
SO×PR   -0.02   -0.02   -0.11
PA×PR    0.08   -0.14   -0.20
PA×SO    0.06   -0.25   -0.14
PR×SO    0.07   -0.23   -0.11
PR×PA    0.11   -0.27   -0.12
zgodne_trojkaty       wszystkie 
              5               9 

2. Modele CTCM, CTUM, CTCU i CT-C(M−1)

Dane wejściowe: 9 wyników skal z przepisu 1.

Co odczytać: dopasowanie, zbieżność i dopuszczalność czterech modeli; CTCM z limitem 20 000 iteracji i jego ujemną wariancję; korelacje cech; tabelę spójności i specyficzności metody w CT-C(M−1) oraz korelację czynników metody.

R
# CFA-MTMM na 9 wynikach skal z przepisu 1 (obiekt skale); estymator ML, wariancje czynników = 1
d9 <- as.data.frame(skale)
cechy_model <- '
  EKS =~ EKS_SO + EKS_PA + EKS_PR
  SUM =~ SUM_SO + SUM_PA + SUM_PR
  NEU =~ NEU_SO + NEU_PA + NEU_PR
'
# 1. CTCM: skorelowane cechy i skorelowane metody; cechy nieskorelowane z metodami
ctcm <- paste(cechy_model, '
  mSO =~ EKS_SO + SUM_SO + NEU_SO
  mPA =~ EKS_PA + SUM_PA + NEU_PA
  mPR =~ EKS_PR + SUM_PR + NEU_PR
  EKS ~~ 0*mSO + 0*mPA + 0*mPR
  SUM ~~ 0*mSO + 0*mPA + 0*mPR
  NEU ~~ 0*mSO + 0*mPA + 0*mPR
')
# 2. CTCU: skorelowane cechy, metoda jako skorelowane reszty w obrębie metody
ctcu <- paste(cechy_model, '
  EKS_SO ~~ SUM_SO + NEU_SO
  SUM_SO ~~ NEU_SO
  EKS_PA ~~ SUM_PA + NEU_PA
  SUM_PA ~~ NEU_PA
  EKS_PR ~~ SUM_PR + NEU_PR
  SUM_PR ~~ NEU_PR
')
# 3. CT-C(M-1): samoopis jako metoda odniesienia; czynniki metody tylko dla ocen partnera i przyjaciela
ctcm1 <- paste(cechy_model, '
  mPA =~ EKS_PA + SUM_PA + NEU_PA
  mPR =~ EKS_PR + SUM_PR + NEU_PR
  EKS ~~ 0*mPA + 0*mPR
  SUM ~~ 0*mPA + 0*mPR
  NEU ~~ 0*mPA + 0*mPR
')
# CTUM: jak CTCM, ale metody nieskorelowane
ctum <- paste(ctcm, '
  mSO ~~ 0*mPA + 0*mPR
  mPA ~~ 0*mPR
')
modele <- list(CTCM = ctcm, CTUM = ctum, CTCU = ctcu, "CT-C(M-1)" = ctcm1)
fity <- lapply(modele, function(m) cfa(m, data = d9, std.lv = TRUE, estimator = "ML"))

# Dopasowanie i sprawdzenie, czy rozwiązanie jest zbieżne i dopuszczalne (brak ujemnych wariancji, |r| ≤ 1)
ocena <- function(f) {
  zb <- lavInspect(f, "converged")
  dop <- zb && suppressWarnings(lavInspect(f, "post.check"))
  miary_dop <- c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "srmr")
  ind <- if (zb) fitMeasures(f, miary_dop) else setNames(rep(NA, 7), miary_dop)
  c(round(ind, 3), zbiezny = zb, dopuszczalny = dop)
}
t(sapply(fity, ocena))

# CTCM jeszcze raz z limitem 20 000 iteracji: dobre dopasowanie, ale rozwiązanie niedopuszczalne
ctcm_dl <- cfa(ctcm, data = d9, std.lv = TRUE, estimator = "ML", control = list(iter.max = 20000))
ocena(ctcm_dl)
pe <- suppressWarnings(parameterEstimates(ctcm_dl, standardized = TRUE))
pe[pe$op == "~~" & pe$lhs == pe$rhs & pe$est < 0, c("lhs", "op", "rhs", "est", "se", "std.all")]

# Korelacje cech (standaryzowane) w trzech modelach
kor_cech <- function(f) { s <- standardizedSolution(f)
  s <- s[s$op == "~~" & s$lhs %in% c("EKS", "SUM", "NEU") & s$rhs %in% c("EKS", "SUM", "NEU") & s$lhs != s$rhs, ]
  setNames(round(s$est.std, 2), paste(s$lhs, s$rhs, sep = "–")) }
sapply(fity[c("CTCU", "CT-C(M-1)")], kor_cech)

# CT-C(M-1): ładunki standaryzowane, spójność (część wariancji prawdziwej z cechy) i specyficzność metody
s <- standardizedSolution(fity$"CT-C(M-1)")
lad <- s[s$op == "=~", c("lhs", "rhs", "est.std")]
tab <- data.frame(miara = names(d9))
tab$cecha <- sapply(tab$miara, function(v) lad$est.std[lad$rhs == v & lad$lhs %in% c("EKS", "SUM", "NEU")])
tab$metoda <- sapply(tab$miara, function(v) { x <- lad$est.std[lad$rhs == v & lad$lhs %in% c("mPA", "mPR")]; if (length(x)) x else 0 })
tab$R2 <- tab$cecha^2 + tab$metoda^2
tab$spojnosc <- tab$cecha^2 / tab$R2
tab$specyficznosc <- tab$metoda^2 / tab$R2
print(cbind(tab[1], round(tab[-1], 2)), row.names = FALSE)
round(s$est.std[s$lhs == "mPA" & s$op == "~~" & s$rhs == "mPR"], 2)   # korelacja czynników metody
Wynik w R
Warning: lavaan->lav_step11_estoptim():  
   the optimizer warns that a solution has NOT been found!
           chisq df pvalue   cfi   tli rmsea  srmr zbiezny dopuszczalny
CTCM          NA NA     NA    NA    NA    NA    NA       0            0
CTUM      26.851 15  0.030 0.987 0.969 0.044 0.036       1            1
CTCU      26.851 15  0.030 0.987 0.969 0.044 0.036       1            1
CT-C(M-1) 22.368 17  0.171 0.994 0.988 0.028 0.035       1            1
Warning: lavaan->lav_model_vcov():  
   Could not compute standard errors! The information matrix could not be 
   inverted. This may be a symptom that the model is not identified.
Warning: lavaan->lav_object_post_check():  
   some estimated ov variances are negative
       chisq           df       pvalue          cfi          tli        rmsea 
      13.859       12.000        0.310        0.998        0.994        0.020 
        srmr      zbiezny dopuszczalny 
       0.024        1.000        0.000 
      lhs op    rhs      est se  std.all
31 SUM_SO ~~ SUM_SO -595.593 NA -735.737
         CTCU CT-C(M-1)
EKS–SUM  0.11      0.13
EKS–NEU -0.42     -0.41
SUM–NEU -0.33     -0.33
  miara cecha metoda   R2 spojnosc specyficznosc
 EKS_SO  0.82   0.00 0.68     1.00          0.00
 SUM_SO  0.85   0.00 0.72     1.00          0.00
 NEU_SO  0.77   0.00 0.59     1.00          0.00
 EKS_PA  0.69   0.49 0.72     0.66          0.34
 SUM_PA  0.61   0.44 0.56     0.65          0.35
 NEU_PA  0.58  -0.53 0.62     0.54          0.46
 EKS_PR  0.68   0.42 0.64     0.72          0.28
 SUM_PR  0.55   0.42 0.48     0.63          0.37
 NEU_PR  0.32  -0.41 0.27     0.37          0.63
[1] 0.47

3. Symulacja: jak często model daje rozwiązanie dopuszczalne

Dane wejściowe: populacja z przepisu 1, po 200 prób dla N = 150 i N = 400 (set.seed(27113)).

Co odczytać: odsetek prób, w których model był zbieżny i nie miał ujemnych wariancji ani korelacji większych niż 1.

R
# Jak często modele MTMM dają rozwiązanie zbieżne i dopuszczalne? 200 prób z tej samej populacji co w przepisie 1
generuj <- function(n) {
  T <- MASS::mvrnorm(n, rep(0, 3), Phi_T); M <- MASS::mvrnorm(n, rep(0, 3), Phi_M)
  out <- list()
  for (m in metody) for (t in cechy) {
    wp <- lT[t, m] * T[, t] + lM[t, m] * M[, m] + sqrt(1 - lT[t, m]^2 - lM[t, m]^2) * rnorm(n)
    poz <- sapply(1:4, function(j) pmin(pmax(round(3 + 0.9 * (wp + rnorm(n, 0, 0.8))), 1), 5))
    out[[paste(t, m, sep = "_")]] <- rowMeans(poz)
  }
  as.data.frame(out)
}
ok <- function(model, d) {
  f <- tryCatch(suppressWarnings(cfa(model, data = d, std.lv = TRUE, estimator = "ML")), error = function(e) NULL)
  !is.null(f) && lavInspect(f, "converged") && suppressWarnings(lavInspect(f, "post.check"))
}
set.seed(27113)
wyniki_sym <- do.call(rbind, lapply(c(150, 400), function(n) {
  r <- t(replicate(200, { d <- generuj(n); sapply(modele, ok, d = d) }))
  data.frame(N = n, model = names(modele), dopuszczalne_proc = round(100 * colMeans(r), 1))
}))
print(reshape(wyniki_sym, idvar = "model", timevar = "N", direction = "wide"), row.names = FALSE)
Wynik w R
     model dopuszczalne_proc.150 dopuszczalne_proc.400
      CTCM                  16.5                  39.5
      CTUM                  62.0                  90.5
      CTCU                  99.5                 100.0
 CT-C(M-1)                  81.0                  97.5

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3; rysunki przygotowano w pakiecie ggplot2. 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/
  2. lavaan (wersja 0.7.2): Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1–36. https://doi.org/10.18637/jss.v048.i02
  3. MASS (wersja 7.3-65): Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer. https://www.stats.ox.ac.uk/pub/MASS4/
  4. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org

Najczęstsze błędy

  • „Wiele metod”, które są jedną metodą. Dwa kwestionariusze samoopisowe z tej samej ankiety nie oddzielą cechy od metody.
  • Raport samego kryterium 1. Wysoka zbieżność nic nie znaczy, jeśli korelacje różnych cech mierzonych tą samą metodą są równie wysokie.
  • Ignorowanie ostrzeżeń lavaan. Dobre CFI przy ujemnej wariancji lub braku błędów standardowych to sygnał braku identyfikacji, a nie sukces.
  • Zmiana modelu bez słowa. Jeśli CTCM zawiódł i przeszedłeś na CT-C(M−1) albo skorelowane reszty, napisz to i podaj powód.
  • Interpretacja CT-C(M−1) jak CTCM. Czynnik cechy to cecha w metodzie odniesienia, a nie „prawdziwa” cecha niezależna od metody.
  • Mała próba. Przy N = 150 nawet CT-C(M−1) dał w przykładzie rozwiązanie dopuszczalne tylko w 81.0% prób.

Najczęstsze pytania

Czy do modeli CFA-MTMM wystarczy układ 2 cechy × 2 metody?

Do samych kryteriów Campbella i Fiske’a tak, ale modele CFA-MTMM wymagają zwykle co najmniej trzech cech i trzech metod. W symulacjach Marsha i Baileya (1991) ogólny model z czynnikami metody najczęściej zawodził właśnie przy małych macierzach i małych próbach.

Co zrobić, gdy model CTCM nie jest zbieżny albo ma ujemną wariancję?

Nie usuwaj ostrzeżenia, zwiększając liczbę iteracji. W przykładzie po 20 000 iteracjach model miał świetne dopasowanie, ale ujemną wariancję resztową. Przejdź do modelu, który jest identyfikowany w Twoim układzie danych: CT-C(M−1) z metodą odniesienia (Eid, 2000) albo modelu skorelowanych reszt, i opisz tę decyzję.

Czym jest metoda odniesienia w modelu CT-C(M−1)?

To metoda, której nie przypisuje się czynnika metody, np. samoopis – dlatego model ma o jeden czynnik metody mniej, niż jest metod (Eid, 2000). Czynnik cechy jest wtedy zdefiniowany przez metodę odniesienia, a czynniki pozostałych metod opisują tę część ich wyników, której nie da się przewidzieć z tej cechy. Wybór metody odniesienia zmienia interpretację, więc uzasadnij go teoretycznie.

Czy model skorelowanych reszt jest lepszy od CTCM?

Częściej daje dopuszczalne rozwiązanie (Marsh i Bailey, 1991), ale zakłada, że metody są nieskorelowane, i nie daje czynnika metody, który można korelować z innymi zmiennymi. Lance i in. (2002) zalecają traktować go jako rozwiązanie zapasowe, gdy CTCM zawodzi.

Czy macierz MTMM można zrobić na jednej ankiecie?

Tylko wtedy, gdy metody naprawdę się różnią, np. różne formaty odpowiedzi lub różni respondenci. Dwa kwestionariusze samoopisowe wypełnione tego samego dnia to w praktyce jedna metoda, więc ich zgodność może wynikać ze wspólnej wariancji metody.

Powiązane hasła

Przeczytaj też

Planujesz walidację skali z kilkoma metodami pomiaru?

Pomożemy zaplanować układ cech i metod, wybrać model CFA-MTMM, który da się oszacować w Twoich danych, i przygotować opis wyników, który samodzielnie przedstawisz i obronisz przed recenzentem.

Oferta dla badaczyPorozmawiaj o projekcie

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Campbell, D. T., & Fiske, D. W. (1959). Convergent and discriminant validation by the multitrait-multimethod matrix. Psychological Bulletin, 56(2), 81–105. https://doi.org/10.1037/h0046016 ● Otwarty dostęp: pełny tekst
  2. Eid, M. (2000). A multitrait-multimethod model with minimal assumptions. Psychometrika, 65(2), 241–261. https://doi.org/10.1007/bf02294377
  3. Eid, M., Lischetzke, T., Nussbeck, F. W., & Trierweiler, L. I. (2003). Separating trait effects from trait-specific method effects in multitrait-multimethod models: A multiple-indicator CT-C(M-1) model. Psychological Methods, 8(1), 38–60. https://doi.org/10.1037/1082-989x.8.1.38
  4. Kenny, D. A., & Kashy, D. A. (1992). Analysis of the multitrait-multimethod matrix by confirmatory factor analysis. Psychological Bulletin, 112(1), 165–172. https://doi.org/10.1037/0033-2909.112.1.165
  5. Lance, C. E., Noble, C. L., & Scullen, S. E. (2002). A critique of the correlated trait-correlated method and correlated uniqueness models for multitrait-multimethod data. Psychological Methods, 7(2), 228–244. https://doi.org/10.1037/1082-989x.7.2.228
  6. Marsh, H. W. (1989). Confirmatory factor analyses of multitrait-multimethod data: Many problems and a few solutions. Applied Psychological Measurement, 13(4), 335–361. https://doi.org/10.1177/014662168901300402
  7. Marsh, H. W., & Bailey, M. (1991). Confirmatory factor analyses of multitrait-multimethod data: A comparison of alternative models. Applied Psychological Measurement, 15(1), 47–70. https://doi.org/10.1177/014662169101500106 ● Otwarty dostęp: pełny tekst
  8. Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1–36. https://doi.org/10.18637/jss.v048.i02 ● Otwarty dostęp
  9. Widaman, K. F. (1985). Hierarchically nested covariance structure models for multitrait-multimethod data. Applied Psychological Measurement, 9(1), 1–26. https://doi.org/10.1177/014662168500900101

Cytowania BibTeX

@article{campbell1959convergent, author={Campbell, Donald T. and Fiske, Donald W.}, title={{Convergent and discriminant validation by the multitrait-multimethod matrix}}, journal={Psychological Bulletin}, year={1959}, volume={56}, number={2}, pages={81--105}, doi={10.1037/h0046016}}
@article{eid2000multitrait, author={Eid, Michael}, title={{A multitrait-multimethod model with minimal assumptions}}, journal={Psychometrika}, year={2000}, volume={65}, number={2}, pages={241--261}, doi={10.1007/bf02294377}}
@article{eid2003separating, author={Eid, Michael and Lischetzke, Tanja and Nussbeck, Fridtjof W. and Trierweiler, Lisa I.}, title={{Separating trait effects from trait-specific method effects in multitrait-multimethod models: A multiple-indicator CT-C(M-1) model}}, journal={Psychological Methods}, year={2003}, volume={8}, number={1}, pages={38--60}, doi={10.1037/1082-989x.8.1.38}}
@article{kenny1992analysis, author={Kenny, David A. and Kashy, Deborah A.}, title={{Analysis of the multitrait-multimethod matrix by confirmatory factor analysis}}, journal={Psychological Bulletin}, year={1992}, volume={112}, number={1}, pages={165--172}, doi={10.1037/0033-2909.112.1.165}}
@article{lance2002critique, author={Lance, Charles E. and Noble, Carrie L. and Scullen, Steven E.}, title={{A critique of the correlated trait-correlated method and correlated uniqueness models for multitrait-multimethod data}}, journal={Psychological Methods}, year={2002}, volume={7}, number={2}, pages={228--244}, doi={10.1037/1082-989x.7.2.228}}
@article{marsh1989confirmatory, author={Marsh, Herbert W.}, title={{Confirmatory factor analyses of multitrait-multimethod data: Many problems and a few solutions}}, journal={Applied Psychological Measurement}, year={1989}, volume={13}, number={4}, pages={335--361}, doi={10.1177/014662168901300402}}
@article{marsh1991confirmatory, author={Marsh, Herbert W. and Bailey, Michael}, title={{Confirmatory factor analyses of multitrait-multimethod data: A comparison of alternative models}}, journal={Applied Psychological Measurement}, year={1991}, volume={15}, number={1}, pages={47--70}, doi={10.1177/014662169101500106}}
@article{rosseel2012lavaan, author={Rosseel, Yves}, title={{lavaan: An R package for structural equation modeling}}, journal={Journal of Statistical Software}, year={2012}, volume={48}, number={2}, pages={1--36}, doi={10.18637/jss.v048.i02}}
@article{widaman1985hierarchically, author={Widaman, Keith F.}, title={{Hierarchically nested covariance structure models for multitrait-multimethod data}}, journal={Applied Psychological Measurement}, year={1985}, volume={9}, number={1}, pages={1--26}, doi={10.1177/014662168500900101}}
R