Метод Бокса-Кокса
Материал из MachineLearning.
Строка 22: | Строка 22: | ||
где <tex>\quad \operatorname{GM}(y) = (y_1\cdots y_n)^{1/n}</tex>. | где <tex>\quad \operatorname{GM}(y) = (y_1\cdots y_n)^{1/n}</tex>. | ||
+ | |||
+ | == Пример == | ||
+ | [[Изображение:data_qqplot.png|thumb|qqplot для исходных данных.]] | ||
+ | [[Изображение:norm_tests_plot.png|thumb|Графики статистик для всех использованных тестов на нормальность.]] | ||
+ | [[Изображение:transformed_qqplot.png|thumb|qqplot для данных, преобразованных методом Бокса-Кокса с <tex>\lambda=-0.06</tex>.]] | ||
+ | |||
+ | В системе R с использованием пакета <code>AID</code>: | ||
+ | <pre> | ||
+ | > data = textile[,1] | ||
+ | > shapiro.test(data) | ||
+ | Shapiro-Wilk normality test | ||
+ | data: data | ||
+ | W = 0.7604, p-value = 3.031e-05 | ||
+ | > bctr = boxcoxnc(data) | ||
+ | > bctr$result | ||
+ | sw ad cvm pt sf lt jb ac | ||
+ | lambda.hat -0.06 -0.08 -0.1 0.02 -0.06 -0.06 -0.06 -0.04866667 | ||
+ | sw.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000 | ||
+ | sf.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000 | ||
+ | jb.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000 | ||
+ | </pre> | ||
== Реализации == | == Реализации == | ||
Строка 31: | Строка 52: | ||
* Статьи по автоматическому трейдингу и оптимизации стратегий: [http://www.mql5.com/ru/articles/363 "Преобразование Бокса-Кокса"]. | * Статьи по автоматическому трейдингу и оптимизации стратегий: [http://www.mql5.com/ru/articles/363 "Преобразование Бокса-Кокса"]. | ||
* А.Н. Порунов (2010). [http://bijournal.hse.ru/data/2011/01/11/1207996673/2010_2_%D1%81.3-10_%D0%9F%D0%BE%D1%80%D1%83%D0%BD%D0%BE%D0%B2.pdf "Бокс-Кокс преобразование и иллюзия "нормальности" макроэкономического ряда"]. | * А.Н. Порунов (2010). [http://bijournal.hse.ru/data/2011/01/11/1207996673/2010_2_%D1%81.3-10_%D0%9F%D0%BE%D1%80%D1%83%D0%BD%D0%BE%D0%B2.pdf "Бокс-Кокс преобразование и иллюзия "нормальности" макроэкономического ряда"]. | ||
- | * [http://onlinestatbook.com/2/transformations/box-cox.html " | + | * D. Scott, [http://onlinestatbook.com/2/transformations/box-cox.html "Box-Cox transformation"]. |
Версия 22:13, 28 декабря 2013
В реальности часто приходится иметь дело со статистическими данными, которые по тем или иным причинам не проходят тест на нормальность. В этой ситуации есть два выхода: либо обратиться к непараметрическим методам, либо воспользоваться специальными методами, позволяющими преобразовать исходную «ненормальную статистику» в «нормальную». Среди множества таких методов преобразований одним из лучших (при неизвестном типе распределения) считается преобразование Бокса-Кокса.
Содержание |
Вид преобразования
Для исходной последовательности однопараметрическое преобразование Бокса-Кокса с параметром определяется следующим образом:
Параметр можно выбирать , максимизируя логарифм правдоподобия. Еще один способ поиска оптимального значения параметра основан на поиске максимальной величины коэффициента корреляции между квантилями функции нормального распределения и отсортированной преобразованной последовательностью.
Модификации
Так как исходный метод предполагает работу только с положительными величинами, было предложено несколько модификаций, учитывающих нулевые и отрицательные значения.
Самый очевидный вариант - сдвиг всех значений на константу так, чтобы выполнялось условие . После этого преобразование выглядит так:
Еще более общая форма:
где .
Пример
В системе R с использованием пакета AID
:
> data = textile[,1] > shapiro.test(data) Shapiro-Wilk normality test data: data W = 0.7604, p-value = 3.031e-05 > bctr = boxcoxnc(data) > bctr$result sw ad cvm pt sf lt jb ac lambda.hat -0.06 -0.08 -0.1 0.02 -0.06 -0.06 -0.06 -0.04866667 sw.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000 sf.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000 jb.pvalue 1.00 1.00 1.0 1.00 1.00 1.00 1.00 1.00000000
Реализации
- MATLAB: функция
boxcox
изFinancial toolbox
. - R: функция
boxcox
для линейных моделей в пакетеMASS
,boxcoxnc
в пакетеAID
,box.cox
в пакетеcar
.
Ссылки
- Box, Cox (1964) "An Analysis of Transformations"
- Статьи по автоматическому трейдингу и оптимизации стратегий: "Преобразование Бокса-Кокса".
- А.Н. Порунов (2010). "Бокс-Кокс преобразование и иллюзия "нормальности" макроэкономического ряда".
- D. Scott, "Box-Cox transformation".