Kalkulatory · Korelacja

Kalkulator korelacji – istotność, porównanie dwóch korelacji i korelacja cząstkowa

Sprawdź istotność jednej korelacji, porównaj dwie korelacje z dwóch grup albo z tej samej próby (testy Steigera, Williamsa i Menga) i policz korelację cząstkową oraz semicząstkową z trzech r – z przedziałami ufności i gotowym opisem APA.

Strona główna / Blog / Kalkulator korelacji
W skrócie: Najpierw ustal, skąd pochodzą korelacje. Jedną korelację sprawdza test t = r√(n − 2)/√(1 − r²) z przedziałem z transformacji Fishera. Dwie korelacje z dwóch grup porównuje test z po transformacji Fishera. Dwie korelacje z tej samej próby wymagają testu, który uwzględnia pozostałe korelacje: Z1* Steigera albo t Williamsa, gdy jest wspólna zmienna, i Z2* Steigera, gdy jej nie ma. Obok wyniku testu podaj różnicę z przedziałem ufności (metoda Zou). Korelację cząstkową policzysz z trzech zwykłych r i przetestujesz testem t z N − 3 stopniami swobody.

Kalkulator korelacji

Istotność r, dwie korelacje albo korelacja cząstkowa

Wybierz pytanie i wpisz współczynniki korelacji Pearsona z wydruku albo z tabeli korelacji. Domyślne wartości to przykład omówiony niżej. Obliczenia wykonuje Twoja przeglądarka: wpisane liczby nie są nigdzie wysyłane ani zapisywane.

Kalkulator wymaga włączonej obsługi JavaScriptu. Wyniki dla wartości domyślnych znajdziesz w przykładzie poniżej.

Gotowy opis do pracy

Opis wyniku pojawi się tutaj po obliczeniu.

Jak używać kalkulatora

Każdy z pięciu trybów odpowiada na inne pytanie o korelację dwóch zmiennych ilościowych, mierzoną współczynnikiem Pearsona. Wystarczą współczynniki r i liczebności, np. z tabeli korelacji w artykule albo z wydruku SPSS czy R.

Który tryb kalkulatora wybrać
PytanieTrybCo wpisać
Czy czas nauki wiąże się z wynikiem egzaminu?(a) istotność rr i n
Czy ten związek jest silniejszy u studentów stacjonarnych niż u niestacjonarnych?(b) dwie grupyr i n w każdej grupie
Czy wynik egzaminu silniej wiąże się z wynikiem kolokwium niż z czasem nauki?(c) ta sama próba, wspólna zmiennar12, r13, r23, N
Czy lęk tak samo wiąże się z wynikiem na kolokwium i na egzaminie?(d) ta sama próba, bez wspólnej zmiennejsześć korelacji, N
Czy lęk wiąże się z wynikiem egzaminu u osób o tym samym wyniku kolokwium?(e) cząstkowatrzy korelacje, N
  1. Ustal, skąd pochodzą korelacje. Korelacje z dwóch różnych grup osób są niezależne – wybierz tryb (b). Korelacje policzone na tych samych osobach są zależne, a test musi uwzględnić korelacje między pozostałymi zmiennymi – wybierz tryb (c) albo (d). Szerzej omawiamy ten wybór we wpisie jak porównać dwie korelacje.
  2. Przepisz korelacje z trzema miejscami po przecinku, jeśli je masz. Przy dwóch miejscach wynik testu może się nieco różnić. Działa kropka i przecinek dziesiętny.
  3. Sprawdź n. Przy usuwaniu braków parami (pairwise) każda korelacja może mieć inne n. Testy w trybach (c)–(e) zakładają jedną próbę, więc wpisz najmniejsze n albo policz korelacje na kompletnych danych.
  4. Odczytaj wynik i opis. Wykres pokazuje korelacje z przedziałami ufności, a niżej jest zdanie w stylu APA do skopiowania.

Kalkulator sprawdza też, czy wpisane korelacje mogą wystąpić razem. Na przykład r12 = .90, r13 = .90 i r23 = −.50 są niemożliwe. Taki komunikat zwykle oznacza, że liczby trafiły do złych pól.

Wzory

(a) Istotność jednej korelacji

Hipotezę zerową ρ = 0 sprawdza test t z n − 2 stopniami swobody. To ten sam test, który wykonuje cor.test() w R i procedura korelacji w SPSS:

t = r √(n − 2) / √(1 − r²)

Przedział ufności liczy się na skali z′ po transformacji Fishera. Fisher (1915) badał rozkład współczynnika korelacji w próbach z bardzo dużej populacji. Rozkład r jest skośny, gdy korelacja w populacji jest daleka od zera. Po transformacji jest w przybliżeniu normalny, z błędem standardowym 1/√(n − 3):

z′ = ½ ln[(1 + r) / (1 − r)]     SE = 1 / √(n − 3)

Granice z′ ± zα/2 × SE przelicza się z powrotem na skalę korelacji. Gdy hipoteza zerowa zakłada inną wartość niż zero (np. ρ0 = .50 z wcześniejszego badania), kalkulator używa testu z = (z′ − z′0) √(n − 3). Sam przedział, także dla innych statystyk, policzysz w kalkulatorze przedziału ufności.

(b) Dwie korelacje niezależne

z = (z′1 − z′2) / √[1/(n1 − 3) + 1/(n2 − 3)]

Różnica q = z′1 − z′2 to miara wielkości efektu q Cohena. Przydaje się w analizie mocy, np. w kalkulatorze liczebności próby.

(c) Zależne korelacje ze wspólną zmienną

Gdy obie korelacje dotyczą zmiennej 1, ich oszacowania są skorelowane w stopniu, który zależy od r23. Steiger (1980) zebrał testy dla takich porównań i wskazał statystyki, których lepiej unikać. Kalkulator podaje trzy testy. Pierwszy to Z1* Steigera (opisany w haśle test Steigera), w którym w kowariancji używa się średniej r̄ = (r12 + r13)/2:

ψ = r23(1 − 2r̄²) − ½r̄²(1 − 2r̄² − r23²)     s = ψ / (1 − r̄²)²     Z1* = (z′12 − z′13) √(N − 3) / √(2 − 2s)

Drugi to test t Williamsa (1959) z N − 3 stopniami swobody, w postaci podanej przez Steigera (1980). |R| oznacza wyznacznik macierzy korelacji trzech zmiennych:

|R| = 1 − r12² − r13² − r23² + 2r12r13r23
t = (r12 − r13) √{(N − 1)(1 + r23) / [2|R|(N − 1)/(N − 3) + r̄²(1 − r23)³]}

Trzeci to test Menga, Rosenthala i Rubina (1992). Autorzy rozszerzyli podejście Dunna i Clark (1969) oparte na transformacji Fishera. Tu r̄² oznacza średnią kwadratów obu korelacji:

f = (1 − r23) / [2(1 − r̄²)] ≤ 1     h = (1 − f r̄²) / (1 − r̄²)     z = (z′12 − z′13) √{(N − 3) / [2(1 − r23)h]}

(d) Zależne korelacje bez wspólnej zmiennej

Test Z2* Steigera (1980) ma tę samą budowę co Z1*. Kowariancję ψ liczy się jednak z czterech korelacji krzyżowych (wzór Pearsona–Filona), podstawiając r̄ = (r12 + r34)/2 za obie porównywane korelacje:

ψ = ½[(r13 − r̄r23)(r24 − r23r̄) + (r14 − r13r̄)(r23 − r̄r13) + (r13 − r14r̄)(r24 − r̄r14) + (r14 − r̄r24)(r23 − r24r̄)]
Z2* = (z′12 − z′34) √(N − 3) / √(2 − 2ψ/(1 − r̄²)²)

W trybach (b)–(d) kalkulator podaje też przedział ufności dla różnicy korelacji metodą Zou (2007). Łączy ona przedziały Fishera obu korelacji i ich wzajemną korelację. Dlatego przedział może być niesymetryczny wokół różnicy.

(e) Korelacja cząstkowa i semicząstkowa

rXY·Z = (rXY − rXZrYZ) / √[(1 − rXZ²)(1 − rYZ²)]     srX = (rXY − rXZrYZ) / √(1 − rXZ²)
t = rXY·Z √(N − 3) / √(1 − rXY·Z²),   df = N − 3

Korelacja semicząstkowa srX usuwa Z tylko z X. Wersja srY usuwa Z tylko z Y i ma w mianowniku √(1 − rYZ²). Przedział ufności korelacji cząstkowej liczy się jak dla zwykłego r, ale z SE = 1/√(N − 4), bo kontrolujesz jedną zmienną.

Przykład liczbowy

Dane dotyczą 140 studentów (80 stacjonarnych i 60 niestacjonarnych) i pięciu zmiennych: tygodniowy czas nauki, wynik kolokwium (0–30 pkt), wynik egzaminu (0–60 pkt) oraz lęk przed kolokwium i przed egzaminem (10–40 pkt). Dane są symulowane. Wszystkie liczby pochodzą z kodu R poniżej i są wpisane domyślnie w kalkulator.

Wyniki pięciu trybów kalkulatora dla danych przykładowych
TrybKorelacjeTestRóżnica lub przedział
(a) czas nauki – egzaminr = .298, n = 140t(138) = 3.67, p < .00195% CI [.139, .442]
(b) stacjonarne a niestacjonarne.417 (n = 80) a .162 (n = 60)z = 1.61, p = .108.255, 95% CI [−.055, .562]
(c) egzamin: kolokwium a czas nauki.617 a .298 (r23 = .222)Z1* = 3.64, p < .001; t(137) = 3.73, p < .001.319, 95% CI [.147, .493]
(d) lęk a wynik: kolokwium a egzamin−.274 a −.406Z2* = 1.60, p = .111.132, 95% CI [−.030, .293]
(e) lęk – egzamin, kontrola kolokwiumr = −.406 → pr = −.295t(137) = −3.61, p < .00195% CI [−.440, −.135]; srX = −.232

(a) Korelacja czasu nauki z wynikiem egzaminu jest dodatnia i istotna, ale przedział od .14 do .44 jest szeroki. Dane pasują zarówno do słabego, jak i do umiarkowanego związku. Jak oceniać taką wartość, piszemy we wpisie czy korelacja .30 to dużo.

(b) U studentów stacjonarnych korelacja jest istotna, a u niestacjonarnych nie. Mimo to test różnicy daje p = .108. Przedział dla różnicy rozciąga się od −.06 do .56, więc nie wiadomo, czy grupy się różnią. To dobry przykład, że różnica między wynikiem istotnym a nieistotnym sama nie musi być istotna. Dlatego zawsze testuj różnicę bezpośrednio. Różnica z′ wynosi q = 0.28.

(c) Wynik kolokwium wiąże się z egzaminem wyraźnie silniej niż deklarowany czas nauki. Wszystkie trzy testy dają zgodny wniosek: Z1* = 3.64, t Williamsa = 3.73 i z Menga i in. = 3.61. Błędny test dla dwóch grup dałby z = 3.42 – wniosek ten sam, ale ze źle policzonym błędem standardowym.

(d) Lęk przed egzaminem wiąże się z wynikiem nieco silniej niż lęk przed kolokwium z wynikiem kolokwium. Różnica .13 nie jest jednak istotna (Z2* = 1.60, p = .111). Przedział obejmuje zero i różnice do około .29.

(e) Po kontroli wyniku kolokwium ujemna korelacja lęku z wynikiem egzaminu słabnie z −.41 do −.29, ale pozostaje istotna. Korelacja semicząstkowa −.23 oznacza, że część lęku niezwiązana z kolokwium wyjaśnia sama sr² = 5.4% wariancji wyniku egzaminu. W regresji wyniku egzaminu na lęk i wynik kolokwium współczynnik lęku ma t(137) = −3.61, tyle samo co test korelacji cząstkowej.

Przykład reprodukowalny

Ten sam przykład w R

Kod symuluje dane 140 studentów, zaokrągla korelacje do trzech miejsc i liczy wszystkie pięć trybów: wzorami zapisanymi wprost oraz funkcjami r.test() i partial.r() z pakietu psych. Na końcu sprawdza, że test korelacji cząstkowej daje to samo t co współczynnik w regresji.

Istotność r, porównanie korelacji i korelacja cząstkowa

Dane wejściowe: dane symulowane (set.seed(2204)): 80 studentów stacjonarnych i 60 niestacjonarnych; czas nauki, wynik kolokwium i egzaminu, lęk przed kolokwium i przed egzaminem.

Co odczytać: macierz korelacji; w (a) t, p i granice CI; w (b) z, p, różnicę z przedziałem Zou, q i liczebność na grupę; w (c) Z1*, t Williamsa, z Menga i in. i przedział różnicy; w (d) Z2* i przedział; w (e) pr, sr, t, p, CI i wiersz z lm().

R
# K22 – kalkulator korelacji: istotność r, porównanie dwóch korelacji, korelacja cząstkowa
# Dane symulowane: 140 studentów (80 stacjonarnych, 60 niestacjonarnych), pięć zmiennych.
# Uruchomienie: LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 Rscript k22-przyklad.R > k22-przyklad-wynik.txt
suppressPackageStartupMessages({library(MASS); library(psych)})

set.seed(2204)
zm <- c("nauka", "wynik_kol", "wynik_egz", "lek_kol", "lek_egz")
# korelacje w populacji (stacjonarne); u niestacjonarnych czas nauki słabiej wiąże się z wynikami
R_st <- matrix(c(  1,  .35,  .40,  .00,  .00,
                 .35,    1,  .60, -.25, -.25,
                 .40,  .60,    1, -.20, -.40,
                 .00, -.25, -.20,    1,  .65,
                 .00, -.25, -.40,  .65,    1), 5, dimnames = list(zm, zm))
R_ns <- R_st; R_ns["nauka", "wynik_egz"] <- R_ns["wynik_egz", "nauka"] <- .10
R_ns["nauka", "wynik_kol"] <- R_ns["wynik_kol", "nauka"] <- .20
sym <- function(n, R) {
  z <- mvrnorm(n, rep(0, 5), R)
  data.frame(nauka     = pmax(0, round(8 + 3.5 * z[, 1], 1)),            # godziny nauki tygodniowo
             wynik_kol = pmin(30, pmax(0, round(18 + 5 * z[, 2]))),        # kolokwium, 0–30 pkt
             wynik_egz = pmin(60, pmax(0, round(36 + 10 * z[, 3]))),       # egzamin, 0–60 pkt
             lek_kol   = pmin(40, pmax(10, round(24 + 6 * z[, 4]))),       # lęk przed kolokwium, 10–40
             lek_egz   = pmin(40, pmax(10, round(26 + 6 * z[, 5]))))       # lęk przed egzaminem, 10–40
}
dane <- rbind(cbind(tryb = "stacjonarne", sym(80, R_st)),
              cbind(tryb = "niestacjonarne", sym(60, R_ns)))
N <- nrow(dane)
r <- round(cor(dane[, zm]), 3)        # korelacje zaokrąglone do 3 miejsc – tak wpisujemy je do kalkulatora
r

# (a) Istotność jednej korelacji: czas nauki a wynik egzaminu
cor.test(dane$nauka, dane$wynik_egz)
ra <- r["nauka", "wynik_egz"]
round(c(r = ra, t = ra * sqrt(N - 2) / sqrt(1 - ra^2), df = N - 2,
        p = 2 * pt(-abs(ra * sqrt(N - 2) / sqrt(1 - ra^2)), N - 2),
        tanh(atanh(ra) + c(dolna = -1, gorna = 1) * qnorm(.975) / sqrt(N - 3))), 4)

# (b) Dwie korelacje niezależne: ten sam związek u studentów stacjonarnych i niestacjonarnych
rg <- sapply(split(dane, dane$tryb), function(g) c(n = nrow(g), r = round(cor(g$nauka, g$wynik_egz), 3)))
rg
r1 <- rg["r", "stacjonarne"]; n1 <- rg["n", "stacjonarne"]; r2 <- rg["r", "niestacjonarne"]; n2 <- rg["n", "niestacjonarne"]
z_b <- (atanh(r1) - atanh(r2)) / sqrt(1 / (n1 - 3) + 1 / (n2 - 3))
round(c(z = z_b, p = 2 * pnorm(-abs(z_b))), 4)
rb <- r.test(n = n1, r12 = r1, r34 = r2, n2 = n2)                     # psych: to samo (|z|)
round(c(z = rb$z, p = rb$p), 4)
ci_r <- function(r, n, poz = .95) tanh(atanh(r) + c(-1, 1) * qnorm(1 - (1 - poz) / 2) / sqrt(n - 3))
zou <- function(r1, l1, r2, l2, c12 = 0)                                  # Zou (2007), przedział dla r1 − r2
  c(r1 - r2 - sqrt((r1 - l1[1])^2 + (l2[2] - r2)^2 - 2 * c12 * (r1 - l1[1]) * (l2[2] - r2)),
    r1 - r2 + sqrt((l1[2] - r1)^2 + (r2 - l2[1])^2 - 2 * c12 * (l1[2] - r1) * (r2 - l2[1])))
round(c(roznica = r1 - r2, zou(r1, ci_r(r1, n1), r2, ci_r(r2, n2))), 4)
q_cohena <- atanh(r1) - atanh(r2); round(q_cohena, 2)                    # q Cohena
ceiling(((qnorm(.975) + qnorm(.80)) / q_cohena)^2 + 3)                   # n na grupę dla mocy .80 przy takim q

# (c) Dwie korelacje zależne ze wspólną zmienną (wynik egzaminu = 1):
#     r12 = egzamin–kolokwium, r13 = egzamin–czas nauki, r23 = kolokwium–czas nauki
r12 <- r["wynik_egz", "wynik_kol"]; r13 <- r["wynik_egz", "nauka"]; r23 <- r["wynik_kol", "nauka"]
c(r12 = r12, r13 = r13, r23 = r23)
rbar <- (r12 + r13) / 2                                                 # Steiger (1980), Z1*
psi <- r23 * (1 - 2 * rbar^2) - 0.5 * rbar^2 * (1 - 2 * rbar^2 - r23^2)
s <- psi / (1 - rbar^2)^2
z1 <- (atanh(r12) - atanh(r13)) * sqrt(N - 3) / sqrt(2 - 2 * s)
round(c(Z1 = z1, p = 2 * pnorm(-abs(z1))), 4)
rc <- r.test(n = N, r12 = r12, r13 = r13, r23 = r23)                     # psych: test Williamsa
round(c(t = rc$t, df = N - 3, p = rc$p), 4)
r2m <- (r12^2 + r13^2) / 2                                              # Meng, Rosenthal i Rubin (1992)
f <- min(1, (1 - r23) / (2 * (1 - r2m)))
h <- (1 - f * r2m) / (1 - r2m)
z_mrr <- (atanh(r12) - atanh(r13)) * sqrt((N - 3) / (2 * (1 - r23) * h))
round(c(z = z_mrr, p = 2 * pnorm(-abs(z_mrr))), 4)
c_ov <- ((r23 - .5 * r12 * r13) * (1 - r12^2 - r13^2 - r23^2) + r23^3) / ((1 - r12^2) * (1 - r13^2))
round(c(roznica = r12 - r13, zou(r12, ci_r(r12, N), r13, ci_r(r13, N), c_ov)), 4)
round((atanh(r12) - atanh(r13)) / sqrt(2 / (N - 3)), 2)                # BŁĘDNIE: test dla grup niezależnych

# (d) Dwie korelacje zależne bez wspólnej zmiennej: lęk a wynik na kolokwium (r12) i na egzaminie (r34)
#     1 = lęk przed kolokwium, 2 = wynik kolokwium, 3 = lęk przed egzaminem, 4 = wynik egzaminu
v <- c("lek_kol", "wynik_kol", "lek_egz", "wynik_egz")
q <- r[v, v]; dimnames(q) <- list(1:4, 1:4)
q
rd <- r.test(n = N, r12 = q[1, 2], r34 = q[3, 4], r13 = q[1, 3], r14 = q[1, 4], r23 = q[2, 3], r24 = q[2, 4])  # Steiger, Z2*
round(c(Z2 = rd$z, p = rd$p), 4)
psi_d <- .5 * ((q[1, 3] - q[1, 2] * q[2, 3]) * (q[2, 4] - q[2, 3] * q[3, 4]) + (q[1, 4] - q[1, 3] * q[3, 4]) * (q[2, 3] - q[1, 2] * q[1, 3]) +
               (q[1, 3] - q[1, 4] * q[3, 4]) * (q[2, 4] - q[1, 2] * q[1, 4]) + (q[1, 4] - q[1, 2] * q[2, 4]) * (q[2, 3] - q[2, 4] * q[3, 4]))
c_no <- psi_d / ((1 - q[1, 2]^2) * (1 - q[3, 4]^2))
round(c(roznica = q[1, 2] - q[3, 4], zou(q[1, 2], ci_r(q[1, 2], N), q[3, 4], ci_r(q[3, 4], N), c_no)), 4)

# (e) Korelacja cząstkowa i semicząstkowa: lęk przed egzaminem (X) a wynik egzaminu (Y), kontrola wyniku kolokwium (Z)
rxy <- r["lek_egz", "wynik_egz"]; rxz <- r["lek_egz", "wynik_kol"]; ryz <- r["wynik_egz", "wynik_kol"]
pr  <- (rxy - rxz * ryz) / sqrt((1 - rxz^2) * (1 - ryz^2))
srx <- (rxy - rxz * ryz) / sqrt(1 - rxz^2)                               # Z usunięte tylko z X
sry <- (rxy - rxz * ryz) / sqrt(1 - ryz^2)                               # Z usunięte tylko z Y
t_e <- pr * sqrt(N - 3) / sqrt(1 - pr^2)
round(c(r = rxy, t = rxy * sqrt(N - 2) / sqrt(1 - rxy^2), ci_r(rxy, N), sr2_X = srx^2), 4)  # korelacja zerowego rzędu i sr²
round(c(pr = pr, sr_X = srx, sr_Y = sry, t = t_e, df = N - 3, p = 2 * pt(-abs(t_e), N - 3),
        tanh(atanh(pr) + c(dolna = -1, gorna = 1) * qnorm(.975) / sqrt(N - 4))), 4)
Rm <- r[c("lek_egz", "wynik_egz", "wynik_kol"), c("lek_egz", "wynik_egz", "wynik_kol")]
round(c(partial.r(Rm, c("lek_egz", "wynik_egz"), "wynik_kol")[1, 2],
        partial.r(Rm, wynik_egz ~ lek_egz - wynik_kol, part = TRUE)[1, 2]), 4)  # psych: pr i sr (Z usunięte z X)
# test t korelacji cząstkowej = test współczynnika lęku w regresji wyniku egzaminu na lęk i kolokwium
summary(lm(wynik_egz ~ lek_egz + wynik_kol, data = dane))$coefficients["lek_egz", ]
r_raw <- cor(dane$lek_egz, dane$wynik_egz); rxz_raw <- cor(dane$lek_egz, dane$wynik_kol); ryz_raw <- cor(dane$wynik_egz, dane$wynik_kol)
pr_raw <- (r_raw - rxz_raw * ryz_raw) / sqrt((1 - rxz_raw^2) * (1 - ryz_raw^2))
round(pr_raw * sqrt(N - 3) / sqrt(1 - pr_raw^2), 4)                      # ta sama wartość t co w lm()
Wynik w R
           nauka wynik_kol wynik_egz lek_kol lek_egz
nauka      1.000     0.222     0.298  -0.080  -0.091
wynik_kol  0.222     1.000     0.617  -0.274  -0.299
wynik_egz  0.298     0.617     1.000  -0.248  -0.406
lek_kol   -0.080    -0.274    -0.248   1.000   0.682
lek_egz   -0.091    -0.299    -0.406   0.682   1.000

	Pearson's product-moment correlation

data:  dane$nauka and dane$wynik_egz
t = 3.6626, df = 138, p-value = 0.0003548
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.1385905 0.4417397
sample estimates:
      cor 
0.2976501 

       r        t       df        p    dolna    gorna 
  0.2980   3.6673 138.0000   0.0003   0.1390   0.4420 
  niestacjonarne stacjonarne
n         60.000      80.000
r          0.162       0.417
     z      p 
1.6060 0.1083 
     z      p 
1.6060 0.1083 
roznica                 
 0.2550 -0.0554  0.5618 
[1] 0.28
[1] 103
  r12   r13   r23 
0.617 0.298 0.222 
    Z1      p 
3.6368 0.0003 
       t       df        p 
  3.7325 137.0000   0.0003 
     z      p 
3.6109 0.0003 
roznica                 
 0.3190  0.1471  0.4925 
[1] 3.42
       1      2      3      4
1  1.000 -0.274  0.682 -0.248
2 -0.274  1.000 -0.299  0.617
3  0.682 -0.299  1.000 -0.406
4 -0.248  0.617 -0.406  1.000
    Z2      p 
1.5955 0.1106 
roznica                 
 0.1320 -0.0298  0.2933 
      r       t                   sr2_X 
-0.4060 -5.2189 -0.5358 -0.2574  0.0539 
      pr     sr_X     sr_Y        t       df        p    dolna    gorna 
 -0.2950  -0.2321  -0.2815  -3.6134 137.0000   0.0004  -0.4399  -0.1351 
[1] -0.2950 -0.2321
     Estimate    Std. Error       t value      Pr(>|t|) 
-0.4326714547  0.1198029424 -3.6115261123  0.0004261309 
[1] -3.6115

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiety psych i MASS oraz funkcje cor.test(), lm(), pt() i pnorm() z pakietu stats; testy Steigera Z1*, Menga i in. oraz przedziały Zou zapisano wprost według wzorów). Zgodność kalkulatora z R sprawdzono na 268 przypadkach testowych, w tym korelacjach bliskich ±1, próbach od n = 4 i bardzo małych wartościach p; test Williamsa i Z2* porównano z r.test(), a korelacje cząstkowe i semicząstkowe – z partial.r().

  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. psych (wersja 2.6.5): Revelle, W. (2026). psych: Procedures for psychological, psychometric, and personality research (R package version 2.6.5) [Computer software]. Northwestern University. https://CRAN.R-project.org/package=psych
  3. MASS (wersja 7.3.65): Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer. https://doi.org/10.1007/978-0-387-21706-2

Jak interpretować wynik

  • Istotność a siła związku. Przy dużej próbie nawet r = .10 bywa istotne, a przy n = 20 nawet r = .40 może nie być. Raportuj więc r z przedziałem ufności, a wartość p traktuj jako informację dodatkową. Sam test t dla dowolnego r policzysz też w kalkulatorze wartości p.
  • Różnica korelacji wymaga dużych prób. W przykładzie (b) różnica .26 nie była istotna przy 140 osobach. Przy q = 0.28, α = .05 i mocy .80 potrzeba ok. 103 osób w każdej grupie. W korelacjach zależnych (c) ta sama różnica bywa istotna, bo test korzysta z tego, że obie korelacje policzono na tych samych osobach.
  • Który test dla korelacji zależnych? Hittner i in. (2003) porównali w symulacjach osiem testów dla korelacji ze wspólną zmienną. Najlepsze łączne własności (błąd I rodzaju i moc) miały test z Dunna i Clark oraz test t Williamsa. Przy umiarkowanych i dużych próbach Z1*, t Williamsa i test Menga i in. prowadzą zwykle do tego samego wniosku. W pracy podaj jeden test, wybrany przed analizą, i nazwij go.
  • Korelacja cząstkowa a przyczynowość. Spadek korelacji po kontroli Z nie dowodzi, że Z jest przyczyną. Kontroluj tylko zmienne, które mogą być wspólną przyczyną X i Y (zmienne zakłócające), a nie mediatory. Więcej piszemy w haśle korelacja a przyczynowość. Gdy korelacja cząstkowa zmienia znak albo rośnie, zajrzyj do hasła supresja.
  • Cząstkowa czy semicząstkowa? Cząstkowa opisuje związek X i Y przy stałym Z, a sr² – unikalny wkład X w wariancję Y, podawany obok wyników regresji wielorakiej.

Ograniczenia

  • Tylko korelacja Pearsona i normalność. Wszystkie testy zakładają w przybliżeniu normalny rozkład wielu zmiennych. Przy silnie skośnych danych przedziały Fishera tracą pokrycie. Rozważ wtedy korelację Spearmana albo bootstrap i opisz to w pracy. Wybór między Pearsonem a Spearmanem omawiamy w poradniku korelacja Pearsona i Spearmana krok po kroku.
  • Testy asymptotyczne. Wzory dla korelacji zależnych są przybliżeniami dla dużych prób. Steiger (1980) przedstawia je jako bezpieczne przy średnich i dużych próbach. Przy N < 20 kalkulator pokazuje ostrzeżenie.
  • Dwie korelacje naraz. Kalkulator nie porównuje trzech i więcej korelacji ani całych macierzy. Pakiet R cocor (Diedenhofen i Musch, 2015) ma więcej wariantów testów, a porównania wielu par wymagają poprawki na wielokrotne porównania.
  • Korelacja cząstkowa pierwszego rzędu. Tryb (e) kontroluje jedną zmienną. Przy kilku zmiennych kontrolowanych użyj macierzy korelacji w R albo regresji wielorakiej.

Zapis w pracy (APA)

Korelację zapisuj bez zera wiodącego, z liczbą stopni swobody w nawiasie: r(138) = .30. Przy porównaniu korelacji podaj obie wartości, nazwę testu, statystykę z p oraz różnicę z przedziałem ufności. Przy korelacji cząstkowej nazwij zmienną kontrolowaną. Wiele korelacji naraz najlepiej pokazać w tabeli – wzór znajdziesz w haśle tabela korelacji w APA.

Korelacja czasu nauki z wynikiem egzaminu wyniosła r = .42 u studentów stacjonarnych (n = 80) i r = .16 u studentów niestacjonarnych (n = 60). Różnica między korelacjami nie była istotna statystycznie, z = 1.61, p = .108 (test z po transformacji Fishera); różnica = .26, 95% CI [−.06, .56] (metoda Zou, 2007).
W całej próbie (N = 140) wynik egzaminu silniej korelował z wynikiem kolokwium (r = .62) niż z czasem nauki (r = .30; korelacja wyniku kolokwium z czasem nauki: r = .22). Różnica między tymi zależnymi korelacjami była istotna statystycznie, Z = 3.64, p < .001 (test Z1* Steigera; Steiger, 1980); różnica = .32, 95% CI [.15, .49].
Lęk przed egzaminem korelował ujemnie z wynikiem egzaminu, r(138) = −.41, 95% CI [−.54, −.26], p < .001. Po kontroli wyniku kolokwium korelacja cząstkowa wyniosła r(137) = −.29, 95% CI [−.44, −.14], p < .001, a korelacja semicząstkowa (wpływ wyniku kolokwium usunięty tylko z lęku) sr = −.23, sr² = .054.

Gotowe zdania dla innych testów znajdziesz w generatorze opisu wyników APA.

Najczęstsze pytania

Który test wybrać do porównania dwóch korelacji z tej samej próby: Steigera, Williamsa czy Menga?

Przy wspólnej zmiennej wszystkie trzy testy zwykle prowadzą do tego samego wniosku. W przykładzie na tej stronie Z1* Steigera = 3.64, t Williamsa = 3.73, a z Menga, Rosenthala i Rubina = 3.61, wszystkie z p < .001. W symulacjach Hittnera i in. (2003) najlepsze łączne własności miały test t Williamsa i test z Dunna i Clark. Wybierz jeden test przed analizą, nazwij go w pracy i nie zmieniaj go po zobaczeniu wyników. Gdy korelacje nie mają wspólnej zmiennej, użyj Z2* Steigera.

Co wpisać do kalkulatora, gdy korelacje policzono na różnej liczbie osób z powodu braków danych?

Testy dla korelacji zależnych zakładają, że wszystkie korelacje pochodzą od tych samych osób. Najlepiej policz je ponownie tylko na osobach z kompletnymi danymi we wszystkich zmiennych (w R: cor(dane, use = "complete.obs")). Jeśli masz tylko tabelę z artykułu, wpisz najmniejsze n – wynik będzie wtedy raczej ostrożny. Przy dwóch grupach niezależnych każda korelacja ma po prostu swoje n.

Jak policzyć korelację cząstkową, mając tylko tabelę korelacji z artykułu?

Wystarczą trzy korelacje: X z Y, X z Z i Y z Z, oraz liczebność próby. Wpisz je w tryb (e). Dla lęku, wyniku egzaminu i wyniku kolokwium (−.406, −.299 i .617, N = 140) kalkulator daje korelację cząstkową −.295, 95% CI [−.440, −.135], t(137) = −3.61, p < .001. W R ten sam wynik zwraca psych::partial.r() wywołana na macierzy korelacji. Przy kilku zmiennych kontrolowanych potrzebna jest cała macierz korelacji.

Czy tym kalkulatorem można porównać korelacje Spearmana?

Tylko w przybliżeniu. Wzory i błędy standardowe wyprowadzono dla korelacji Pearsona przy normalnym rozkładzie zmiennych. Dla korelacji rangowych dają wynik orientacyjny. Jeśli wybrałeś korelację Spearmana z powodu silnie nienormalnych danych, różnicę lepiej oszacować bootstrapem na danych surowych i opisać tę metodę w pracy.

Dlaczego przedział ufności dla różnicy dwóch korelacji nie jest symetryczny?

Kalkulator liczy go metodą Zou (2007), która składa przedział różnicy z przedziałów Fishera obu korelacji. Te przedziały są niesymetryczne, bo rozkład r jest skośny, gdy korelacja jest daleka od zera. W przykładzie dwóch grup różnica wynosi .255, a przedział [−.055, .562] sięga dalej w górę niż w dół. Zou (2007) pokazał w symulacjach, że taki przedział działa dobrze przy małych i umiarkowanych próbach.

Powiązane hasła

Przeczytaj też

Porównujesz korelacje w pracy i nie wiesz, który test podać?

Sprawdzimy, czy Twoje korelacje są zależne czy niezależne, policzymy właściwy test z przedziałem ufności dla różnicy i pomożemy opisać wynik tak, żebyś umiał(a) go obronić przed promotorem i recenzentem.

Oferta dla studentówWyceń analizę

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Diedenhofen, B., & Musch, J. (2015). cocor: A comprehensive solution for the statistical comparison of correlations. PLOS ONE, 10(4), Article e0121945. https://doi.org/10.1371/journal.pone.0121945 ● Otwarty dostęp
  2. Dunn, O. J., & Clark, V. (1969). Correlation coefficients measured on the same individuals. Journal of the American Statistical Association, 64(325), 366–377. https://doi.org/10.1080/01621459.1969.10500981
  3. Fisher, R. A. (1915). Frequency distribution of the values of the correlation coefficient in samples from an indefinitely large population. Biometrika, 10(4), 507–521. https://doi.org/10.1093/biomet/10.4.507 ● Otwarty dostęp: pełny tekst
  4. Hittner, J. B., May, K., & Silver, N. C. (2003). A Monte Carlo evaluation of tests for comparing dependent correlations. The Journal of General Psychology, 130(2), 149–168. https://doi.org/10.1080/00221300309601282
  5. Meng, X.-L., Rosenthal, R., & Rubin, D. B. (1992). Comparing correlated correlation coefficients. Psychological Bulletin, 111(1), 172–175. https://doi.org/10.1037/0033-2909.111.1.172 ● Otwarty dostęp: pełny tekst
  6. Steiger, J. H. (1980). Tests for comparing elements of a correlation matrix. Psychological Bulletin, 87(2), 245–251. https://doi.org/10.1037/0033-2909.87.2.245
  7. Williams, E. J. (1959). The comparison of regression variables. Journal of the Royal Statistical Society: Series B (Methodological), 21(2), 396–399. https://doi.org/10.1111/j.2517-6161.1959.tb00346.x
  8. Zou, G. Y. (2007). Toward using confidence intervals to compare correlations. Psychological Methods, 12(4), 399–413. https://doi.org/10.1037/1082-989x.12.4.399

Cytowania BibTeX

@article{diedenhofen2015cocor, author={Diedenhofen, Birk and Musch, Jochen}, title={{cocor: A comprehensive solution for the statistical comparison of correlations}}, journal={PLOS ONE}, year={2015}, volume={10}, number={4}, eid={e0121945}, doi={10.1371/journal.pone.0121945}}
@article{dunn1969correlation, author={Dunn, Olive Jean and Clark, Virginia}, title={{Correlation coefficients measured on the same individuals}}, journal={Journal of the American Statistical Association}, year={1969}, volume={64}, number={325}, pages={366--377}, doi={10.1080/01621459.1969.10500981}}
@article{fisher1915frequency, author={Fisher, R. A.}, title={{Frequency distribution of the values of the correlation coefficient in samples from an indefinitely large population}}, journal={Biometrika}, year={1915}, volume={10}, number={4}, pages={507--521}, doi={10.1093/biomet/10.4.507}}
@article{hittner2003monte, author={Hittner, James B. and May, Kim and Silver, N. Clayton}, title={{A Monte Carlo evaluation of tests for comparing dependent correlations}}, journal={The Journal of General Psychology}, year={2003}, volume={130}, number={2}, pages={149--168}, doi={10.1080/00221300309601282}}
@article{meng1992comparing, author={Meng, Xiao-Li and Rosenthal, Robert and Rubin, Donald B.}, title={{Comparing correlated correlation coefficients}}, journal={Psychological Bulletin}, year={1992}, volume={111}, number={1}, pages={172--175}, doi={10.1037/0033-2909.111.1.172}}
@article{steiger1980tests, author={Steiger, James H.}, title={{Tests for comparing elements of a correlation matrix}}, journal={Psychological Bulletin}, year={1980}, volume={87}, number={2}, pages={245--251}, doi={10.1037/0033-2909.87.2.245}}
@article{williams1959comparison, author={Williams, E. J.}, title={{The comparison of regression variables}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1959}, volume={21}, number={2}, pages={396--399}, doi={10.1111/j.2517-6161.1959.tb00346.x}}
@article{zou2007toward, author={Zou, Guang Yong}, title={{Toward using confidence intervals to compare correlations}}, journal={Psychological Methods}, year={2007}, volume={12}, number={4}, pages={399--413}, doi={10.1037/1082-989x.12.4.399}}
R