Co to jest macierz korelacji?
Macierz korelacji (ang. correlation matrix) to kwadratowa tabela współczynników korelacji, np. Pearsona, dla każdej pary k zmiennych. Ma trzy cechy:
- jest symetryczna, a na przekątnej ma jedynki;
- zawiera k(k − 1)/2 różnych korelacji: 10 przy pięciu zmiennych, 45 przy dziesięciu;
- jest dodatnio półokreślona, czyli nie ma ujemnych wartości własnych.
Z trzeciej cechy wynika, że nie każdy zestaw korelacji jest możliwy. Jeśli zmienna A koreluje z B i z C na poziomie .80, to B i C nie mogą korelować na poziomie −.20. Najmniejsza wartość własna takiej macierzy wynosi −0.236. Sposób pokazania macierzy opisują hasła tabela korelacji w APA i mapa cieplna korelacji. Tu chodzi o jej liczenie.
Braki danych i spójność macierzy
Przy brakach danych masz dwie proste opcje. Usuwanie całych przypadków daje jedną wspólną liczebność. Usuwanie parami liczy każdą korelację na innych osobach, więc macierz może przestać być spójna. Marsh (1998) uzyskał w symulacji macierz niedodatnio określoną dopiero przy 50% braków i n = 200, ale statystyki χ² modeli dopasowanych do takich macierzy były wyraźnie obciążone. Macierz niespójną można zastąpić najbliższą poprawną (Higham, 2002; w R Matrix::nearPD()), choć zwykle lepsza jest imputacja wielokrotna. Ma to znaczenie, gdy macierz trafia do analizy czynnikowej lub PCA.
Wiele korelacji naraz
Dziesięć testów to dziesięć okazji do fałszywie istotnego wyniku. Procedura Holma (1979) kontroluje błąd I rodzaju dla całego zestawu i jest mniej zachowawcza niż korekta Bonferroniego.
Przykład
Pięć zmiennych (stres, lęk, sen, wsparcie, satysfakcja) u 150 osób z brakami danych (dane symulowane). Pełne dane miało 97 osób, a pary od 122 do 132 osób. Najmniejsza wartość własna macierzy wyniosła 0.369, więc macierz jest poprawna. Osiem z 10 korelacji miało p < .05, po korekcie Holma – sześć. Istotność straciły stres–sen i lęk–wsparcie (oba r = −.20, pHolm = .084).
Jak opisać w pracy
Na co uważać
- Podaj całą macierz, a nie tylko istotne korelacje.
- Obejrzyj wykresy rozrzutu. Jedna obserwacja odstająca albo związek nieliniowy potrafi wyraźnie zmienić r.
Jak opisać taką macierz w tekście, pokazuje wpis jak opisać tabelę korelacji.
Macierz korelacji w R
Kod liczy macierz korelacji z usuwaniem braków parami, liczebności par, najmniejszą wartość własną, wartości własne niemożliwego układu korelacji i liczbę istotnych korelacji przed korektą Holma i po niej.
Macierz, braki danych, wartości własne i korekta Holma
R
set.seed(2984)
S <- matrix(c(1, .50, -.30, -.40, -.20, .50, 1, -.15, -.20, -.30, -.30, -.15, 1, .20, .30,
-.40, -.20, .20, 1, .45, -.20, -.30, .30, .45, 1), 5)
X <- matrix(rnorm(150 * 5), 150) %*% chol(S) # dane symulowane, n = 150
X[cbind(sample(150, 60, replace = TRUE), sample(5, 60, replace = TRUE))] <- NA # braki danych
d <- setNames(as.data.frame(X), c("stres", "lek", "sen", "wsparcie", "satysfakcja"))
R <- cor(d, use = "pairwise.complete.obs")
round(R, 2)
choose(ncol(d), 2) # liczba różnych korelacji
range(crossprod(!is.na(d))[upper.tri(R)]) # n dla par zmiennych
sum(complete.cases(d)) # n przy usuwaniu całych przypadków
round(min(eigen(R)$values), 3) # > 0: macierz poprawna
Z <- matrix(c(1, .8, .8, .8, 1, -.2, .8, -.2, 1), 3) # układ, którego nie da się uzyskać z danych
round(eigen(Z)$values, 3)
pary <- which(upper.tri(R), arr.ind = TRUE)
p <- apply(pary, 1, function(i) cor.test(d[[i[1]]], d[[i[2]]])$p.value)
c(p_ponizej_05 = sum(p < .05), po_Holmie = sum(p.adjust(p, "holm") < .05))Wynik w R
stres lek sen wsparcie satysfakcja
stres 1.00 0.52 -0.20 -0.40 -0.42
lek 0.52 1.00 -0.13 -0.20 -0.44
sen -0.20 -0.13 1.00 0.15 0.35
wsparcie -0.40 -0.20 0.15 1.00 0.45
satysfakcja -0.42 -0.44 0.35 0.45 1.00
[1] 10
[1] 122 132
[1] 97
[1] 0.369
[1] 2.036 1.200 -0.236
p_ponizej_05 po_Holmie
8 6 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (bez dodatkowych pakietów).
- 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 korelacji zawiera macierz korelacji?
Przy k zmiennych jest k(k − 1)/2 różnych korelacji: 10 dla pięciu zmiennych, 45 dla dziesięciu. Drugi trójkąt macierzy powtarza pierwszy, a przekątna to same jedynki.
Usuwać braki danych parami czy całymi przypadkami przy macierzy korelacji?
Usuwanie parami wykorzystuje więcej danych, ale każda korelacja ma inne n, a macierz może być niespójna. Przy większych brakach lepsza jest imputacja wielokrotna albo FIML.
Co znaczy, że macierz korelacji nie jest dodatnio określona?
Ma ujemną wartość własną, więc takiego układu korelacji nie da się uzyskać z żadnych pełnych danych. Zdarza się przy usuwaniu braków parami i blokuje analizę czynnikową czy SEM.
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ówBibliografia i dalsza literatura naukowa (APA 7)
- Higham, N. J. (2002). Computing the nearest correlation matrix—a problem from finance. IMA Journal of Numerical Analysis, 22(3), 329–343. https://doi.org/10.1093/imanum/22.3.329
- Holm, S. (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2), 65–70. https://www.jstor.org/stable/4615733
- Marsh, H. W. (1998). Pairwise deletion for missing data in structural equation models: Nonpositive definite matrices, parameter estimates, goodness of fit, and adjusted sample sizes. Structural Equation Modeling: A Multidisciplinary Journal, 5(1), 22–36. https://doi.org/10.1080/10705519809540087
Cytowania BibTeX
@article{higham2002computing, author={Higham, Nicholas J.}, title={{Computing the nearest correlation matrix—a problem from finance}}, journal={IMA Journal of Numerical Analysis}, year={2002}, volume={22}, number={3}, pages={329--343}, doi={10.1093/imanum/22.3.329}}@article{holm1979simple, author={Holm, Sture}, title={{A simple sequentially rejective multiple test procedure}}, journal={Scandinavian Journal of Statistics}, year={1979}, volume={6}, number={2}, pages={65--70}, url={https://www.jstor.org/stable/4615733}}@article{marsh1998pairwise, author={Marsh, Herbert W.}, title={{Pairwise deletion for missing data in structural equation models: Nonpositive definite matrices, parameter estimates, goodness of fit, and adjusted sample sizes}}, journal={Structural Equation Modeling: A Multidisciplinary Journal}, year={1998}, volume={5}, number={1}, pages={22--36}, doi={10.1080/10705519809540087}}