Co to jest transformacja Boxa–Coxa?
Transformacja Boxa–Coxa (ang. Box–Cox transformation) to rodzina potęgowych przekształceń dodatniej zmiennej zależnej z jednym parametrem λ, dobieranym tak, by model liniowy na przekształconych danych miał reszty możliwie bliskie normalnym i o stałej wariancji. Box i Cox (1964) zaproponowali wybór λ metodą największej wiarygodności i rozdzielili wkład normalności, stałości wariancji i addytywności w ten wybór. Stosuje się ją przy prawostronnej skośności czasów, stężeń czy kwot.
Jak liczyć
λ = 1 oznacza brak zmiany kształtu, λ = 0.5 to w praktyce pierwiastek, λ = 0 to logarytm, a λ = −1 odwrotność. W R funkcja MASS::boxcox() liczy profil wiarygodności dla modelu lm(), więc λ dobiera się do reszt modelu, a nie do surowej zmiennej. Wymaga ona wartości dodatnich.
Przykład
Porównano czas rozwiązania zadania w warunku presji i w grupie kontrolnej, po 50 osób (dane symulowane, od 9.1 do 118.5 s). Najlepsze λ wyniosło 0.36, 95% CI [0.02, 0.71]. Przedział wyklucza λ = 1, czyli dane bez zmian, a obejmuje pierwiastek (λ = 0.5). Po transformacji skośność reszt spadła z 0.75 do 0.08, a test Shapiro–Wilka przestał wskazywać odchylenie od normalności (p = .003 przed, .892 po). Różnica między warunkami pozostała istotna, t(98) = −2.74, p = .007.
Jak opisać w pracy
Na co uważać
- Przekształcona skala nie ma jednostek. Średnich po transformacji nie da się czytać w sekundach, dlatego opisuj wyniki medianami lub wartościami po transformacji odwrotnej.
- Zaokrąglij λ do wartości, którą da się zinterpretować, jeśli mieści się w przedziale ufności. Keene (1995) przekonuje, że logarytm ma szczególne zalety i decyzję o nim lepiej podjąć w protokole niż na podstawie danych.
- Transformacja to nie jedyna droga. Przy skośnych wynikach rozważ też model z innym rozkładem albo sprawdź, czy odchylenie od normalności w ogóle ma znaczenie przy Twojej liczebności.
Jak ocenić rozkład reszt przed decyzją o transformacji, pokazujemy we wpisie jak sprawdzić normalność rozkładu.
Box–Cox w R
Kod wyznacza λ z profilu wiarygodności, przekształca czas i porównuje skośność reszt oraz test Shapiro–Wilka przed transformacją i po niej.
Wybór λ funkcją MASS::boxcox()
R
library(MASS)
bc <- boxcox(lm(czas ~ warunek), lambda = seq(-2, 2, 0.01), plotit = FALSE)
lam <- bc$x[which.max(bc$y)]
ci <- range(bc$x[bc$y > max(bc$y) - qchisq(0.95, 1) / 2]) # 95% CI dla lambda
round(c(lambda = lam, CI_lo = ci[1], CI_hi = ci[2]), 2)
czas_bc <- (czas^lam - 1) / lam
round(c(skosnosc_przed = skos(resid(lm(czas ~ warunek))),
skosnosc_po = skos(resid(lm(czas_bc ~ warunek)))), 2)
round(c(SW_p_przed = shapiro.test(resid(lm(czas ~ warunek)))$p.value,
SW_p_po = shapiro.test(resid(lm(czas_bc ~ warunek)))$p.value), 3)Wynik w R
lambda CI_lo CI_hi
0.36 0.02 0.71
skosnosc_przed skosnosc_po
0.75 0.08
SW_p_przed SW_p_po
0.003 0.892 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietem MASS.
- 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/
- MASS (wersja 7.3.65): Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer.
Najczęstsze pytania
Co zrobić, gdy zmienna ma zera lub wartości ujemne przed transformacją Boxa–Coxa?
Klasyczny wzór wymaga wartości dodatnich. Można dodać stałą, ale jej wybór zmienia wynik. Przy zerach i zliczeniach lepiej rozważyć model z odpowiednim rozkładem.
Jak interpretować λ z transformacji Boxa–Coxa?
λ bliskie 1 oznacza, że transformacja jest zbędna, 0.5 to pierwiastek, 0 to logarytm, a −1 odwrotność. Jeśli przedział ufności obejmuje taką wartość, użyj jej.
Czy Box–Cox przekształca predyktory, czy zmienną zależną?
Klasycznie zmienną zależną, a λ dobiera się do reszt modelu z predyktorami. Do predyktorów stosuje się czasem osobne przekształcenia potęgowe.
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)
- Box, G. E. P., & Cox, D. R. (1964). An analysis of transformations. Journal of the Royal Statistical Society: Series B (Methodological), 26(2), 211–243. https://doi.org/10.1111/j.2517-6161.1964.tb00553.x
- Keene, O. N. (1995). The log transformation is special. Statistics in Medicine, 14(8), 811–819. https://doi.org/10.1002/sim.4780140810
Cytowania BibTeX
@article{box1964analysis, author={Box, George E. P. and Cox, David R.}, title={{An analysis of transformations}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1964}, volume={26}, number={2}, pages={211--243}, doi={10.1111/j.2517-6161.1964.tb00553.x}}@article{keene1995log, author={Keene, Oliver N.}, title={{The log transformation is special}}, journal={Statistics in Medicine}, year={1995}, volume={14}, number={8}, pages={811--819}, doi={10.1002/sim.4780140810}}