Słownik metodologiczny · Statystyka opisowa

Transformacja Fishera z – po co przekształcać korelację?

Transformacja Fishera z zamienia współczynnik korelacji na wielkość o rozkładzie bliskim normalnemu. Pokazujemy wzór, przedział ufności dla r krok po kroku w R, opis do pracy i ograniczenia przy danych nienormalnych.

Strona główna / Słownik / Transformacja Fishera z
W skrócie: Transformacja Fishera z przekształca korelację r według wzoru z = ½ ln[(1 + r)/(1 − r)]. Wartość z ma w przybliżeniu rozkład normalny z błędem standardowym 1/√(n − 3), dlatego służy do przedziałów ufności dla r, porównywania korelacji i ich łączenia w metaanalizie.

Co to jest transformacja Fishera z?

Transformacja Fishera z (ang. Fisher z transformation, z′ Fishera) to przekształcenie współczynnika korelacji r według wzoru z = ½ ln[(1 + r)/(1 − r)], czyli area tangens hiperboliczny z r. Rozkład samego r w próbie jest skośny, zwłaszcza przy silnych korelacjach, a jego rozrzut zależy od wartości korelacji. Po transformacji z ma rozkład w przybliżeniu normalny o błędzie standardowym 1/√(n − 3), niezależnym od korelacji. Nie myl jej ze standaryzowanym wynikiem z pojedynczej obserwacji.

Do czego się jej używa

  • Przedział ufności dla r. Liczysz go w skali z, a granice przeliczasz z powrotem na r (zob. przedział ufności i kalkulator przedziału ufności).
  • Porównanie korelacji. Różnicę dwóch korelacji z niezależnych grup testuje się na wartościach z; na tej transformacji opierają się też metody Menga i in. (1992) dla korelacji skorelowanych, opisane w haśle test Steigera. Zou (2007) buduje przedziały dla różnicy korelacji z granic przedziałów dla pojedynczych r, uwzględniając ich asymetrię. Szczegóły podaje poradnik jak porównać dwie korelacje.
  • Łączenie korelacji z wielu badań w metaanalizie.

Przykład

W symulowanej próbie 50 osób korelacja Pearsona wyniosła r = .649, co daje z = 0.773 i błąd standardowy 0.146. Przedział 95% w skali z to [0.487, 1.059], a po przeliczeniu na r – [.452, .785]. Przedział jest asymetryczny: dolna granica leży .197 poniżej r, górna tylko .137 powyżej. Funkcja cor.test w R daje te same granice. Istotność i porównania korelacji policzysz też w kalkulatorze korelacji.

Jak opisać w pracy

Korelacja między zmiennymi X i Y była dodatnia i silna, r(48) = .65, 95% CI [.45, .79]. Przedział ufności wyznaczono metodą transformacji Fishera z.

Na co uważać

  • Dane nienormalne. W symulacjach (Bishara i Hittner, 2017) przy dużej skośności lub kurtozie rzeczywiste pokrycie nominalnie 95% przedziału spadało nawet do 68%, a odporne okazały się metody rangowe, np. korelacja Spearmana.
  • Błąd standardowy w skali r. Wartość 1/√(n − 3) dotyczy z, nie r; nie dodawaj jej do samego współczynnika.
  • Wynik bez przeliczenia. Granice i średnie z przelicz z powrotem na r (tanh), zanim je zinterpretujesz.
Przykład reprodukowalny

Transformacja Fishera z w R

Kod liczy korelację w symulowanej próbie, przechodzi do skali z, wyznacza przedział ufności i przelicza go z powrotem na r.

Przedział ufności dla r przez transformację Fishera

Dane wejściowe: 50 symulowanych par obserwacji; set.seed(4311).

Co odczytać: r, z, błąd standardowy, granice w skali z i w skali r oraz asymetrię przedziału.

R
set.seed(4311)
n <- 50
x <- rnorm(n); y <- 0.5 * x + rnorm(n)
r <- cor(x, y)
z <- atanh(r)                        # z = 0.5 * log((1 + r) / (1 - r))
se <- 1 / sqrt(n - 3)
ci_z <- z + c(-1, 1) * qnorm(.975) * se
round(c(r = r, z = z, se = se, z_dol = ci_z[1], z_gor = ci_z[2]), 3)
round(tanh(ci_z), 3)                 # przedział z powrotem w skali r
round(r - tanh(ci_z), 3)             # odległość od r: przedział jest asymetryczny
round(cor.test(x, y)$conf.int, 3)    # cor.test używa tej samej metody
Wynik w R
    r     z    se z_dol z_gor
0.649 0.773 0.146 0.487 1.059
[1] 0.452 0.785
[1]  0.197 -0.137
[1] 0.452 0.785
attr(,"conf.level")
[1] 0.95

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (bez dodatkowych pakietów). 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

Po co zamieniać korelację r na z Fishera?

Rozkład r w próbie jest skośny, zwłaszcza przy silnych korelacjach, a jego rozrzut zależy od samej korelacji. Po transformacji z ma rozkład bliski normalnemu i stały błąd 1/√(n − 3).

Jak w R policzyć z Fishera i wrócić do r?

atanh(r) zamienia korelację na z, a tanh(z) przelicza wynik z powrotem na r. Przedział ufności dla r oparty na tej metodzie podaje też cor.test().

Czy z Fishera to to samo co wynik standaryzowany z?

Nie. Wynik standaryzowany z opisuje położenie pojedynczej obserwacji względem średniej w odchyleniach standardowych, a z Fishera jest przekształceniem współczynnika korelacji. Dlatego pisze się je czasem jako z′.

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. Bishara, A. J., & Hittner, J. B. (2017). Confidence intervals for correlations when data are not normal. Behavior Research Methods, 49(1), 294–309. https://doi.org/10.3758/s13428-016-0702-8 ● Otwarty dostęp
  2. 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
  3. 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{bishara2017confidence, author={Bishara, Anthony J. and Hittner, James B.}, title={{Confidence intervals for correlations when data are not normal}}, journal={Behavior Research Methods}, year={2017}, volume={49}, number={1}, pages={294--309}, doi={10.3758/s13428-016-0702-8}}
@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{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