Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Добавить ответ в эту темуОткрыть тему
> Трансформация Бокса-Кокса
Игорь
сообщение 16.07.2008 - 09:56
Сообщение #16





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Поизучал немного источники по данной новой для себя теме. Ну вот, оказалось все так.
Цитата(nokh @ 13.07.2008 - 18:21) *
>Сходный с представленным выше Плавом алгоритм Заребки нашел тоже в C. Dougherty. Introduction to Econometrics (видно издание другое стр. 167 и без вывода формул): http://www.iaaeg.de/documents/kapitel_5.pdf .Только там не максимизируется коэффициент корреляции x и y, а минимизируется сумма квадратов отклонений от линейной регресии x и y, что аналогично.

Есть русское издание "Доугерти К. Введение в эконометрику. - М.: ИНФРА-М, 1999". Причем даже в Сети smile.gif
Цитата(nokh @ 13.07.2008 - 18:21) *
В моем примере преобразование Бокса-Кокса использовалось для другой цели - нормализации распределения (в одной выборке). Если будете разбираться с алгоритмами, подскажите, пожалуйста, автора алгоритма в примере. Встречал также третью разновидность преобразования - программную реализацию алгоритма Б-K с одновременной оптимизацией нормальности и однородности дисперсий (для случая нескольких выборок) в бесплатной программе Rundom-BC: http://pjadw.tripod.com/legacy.htm#j2. Мой ручной расчет совпадает с выдаваемым этой программой для одновыборочного случая (не SAS, конечно, но тоже приятно smile.gif).

Алгоритм практически из статьи Бокса-Кокса "Box G.E.P., Cox D.R. An analysis of transformations // Journal of Royal Statistical Society: Series B (Statistical Methodology), 1964, vol. 26, no. 2, pp. 211-246" с той разницей, что, в отличие от примера, в оригинале (в формуле для логарифмической функции максимального правдоподобия) нет умножения на "ню" (смысл? - разве если не игнорировать константу - вот здесь полная версия ФМП: http://projecteuclid.org/euclid.lnms/121546484) и на n не делится второе слагаемое, а умножается первое. Собственно, для максимизации ФМП все это не имеет никакого значения.
Поиск оптимальной лямбды перебором неэффективен. Можно использовать любой метод оптимизации. Хотя бы метод деления отрезка пополам.

Наверное, неплохо бы сделать и еще ряд преобразований. Хотя бы гиперболический арксинус, который, в отличие от Бокса-Кокса, может производить преобразование не только положительных, но и любых данных. ФМП для гиперболического арксинуса имеет другой вид, нежели для Бокса-Кокса. Для Бокса-Кокса - это кривая типа параболы. Для гиперболического арксинуса - две кривых, симметричных относительно нуля. Лямбда для Бокса-Кокса в наших экспериментах всегда была в интервале от -2 до 2. Для гиперболического арксинуса лямбда находилась в интервале от 0 (не включая) до 1. Источники: http://personal.lse.ac.uk/lintono/downloads/llvtrafo.pdf, http://citeseer.ist.psu.edu/linton97analysis.html. В обоих источниках только, по-моему, небольшая ошибка в ФМП (нет 1/2) и явная ошибка (лямбда должна быть в квадрате) в якобиане для гиперболического арксинуса.

Численные эксперименты показали следующее:

1. Вместо ФМП с успехом можно применить любой критерий проверки нормальности (например, статистику или p-значение критерия Шапиро-Франсиа). Представляется, что это даже более объективная характеристика. ФМП дает лучшую, в рамках рассматриваемой модели, трансформацию. Но "лучшая" еще не значит "верная". Так, некоторые наборы данных, в рамках модели, нельзя трансформировать в данные с нужными свойствами. Например, нормальны ли новые данные, все равно необходимо проверить. Почему бы это не сделать сразу?

2. Возможно организовать трансформацию данных для получения результата с требуемыми свойствами (симметричность, скошенность, функция распределения). Например, требуется симметричность. В качестве критерия используем значимость коэффициента асимметрии. И т.п.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 17.07.2008 - 18:28
Сообщение #17





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Большое спасибо за информацию! Доугерти в и-нете нашел сразу, AtteStat опробовал. По поводу добавления преобразований: может их в отдельный модуль вынести, если много набирается?
С гиперболическим арксинусом не встречался, а по Вашим ссылкам еще не сходил. Полезная вещь - угловое фи-преобразование для частот (y'=2arcsinSQRT(p)). Также широко использовал преобразование Фримана-Тьюки (Freeman-Tukey transformations y'=SQRT(y)+SQRT(y+1)), правда это было до освоения Бокса-Кокса. Существует также вариант углового преобразование Фримана-Тьюки для частот (встречались разные формулы). К сожалению, оригинальными работами не располагаю. Отдельного внимания заслуживают преобразования для работы с композиционными данными. Но не знаю, стоит ли их включать, т.к. бесплатно распространяется пакет CoDaPack (тоже надстройка к Excel), который их делает. (Анализ композиционных данных - огромный вал работ, который, похоже, пока до нас не докатился. Кому интересно - можно начать знакомство отсюда: http://ima.udg.edu/Activitats/CoDaWork08/. Все работы CoDaWork за 2003 и 2005 гг - в свободном доступе).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 18.07.2008 - 08:27
Сообщение #18





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(nokh @ 17.07.2008 - 18:28) *
По поводу добавления преобразований: может их в отдельный модуль вынести, если много набирается?

Согласен, так и нужно сделать. Модуль называется "Преобразования данных".


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 26.07.2008 - 12:58
Сообщение #19





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(fruitfly @ 10.12.2007 - 02:46) *
Здравствуйте,
Ситуация: есть данные по шести экспериментальным группам. Хочу сделать АНОВУ, знаю что для этого данные должны быть нормально распределены. Вопрос такой: Как смотреть распределение (1) у всех групп по отдельности или (2) у всех групп вместе. Если (1) у 5 групп нормально распределены а у одной нет. Что делать. Что такое Cox-Box трансформация. Как ее сделать. Правда ли что это самая мощная трансформация?

Хотя в данной теме мы всячески обсудили преобразования данных и задали хороший импульс для дальнейшего изучения интересного раздела прикладного анализа, считаю, применять классическое (одномерное) преобразование Бокса-Кокса в данном случае нельзя.

В данном случае, видимо, следует применять его многомерное обобщение. Вот источник http://citeseer.ist.psu.edu/377978.html.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 26.07.2008 - 16:51
Сообщение #20





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Цитата(Игорь @ 26.07.2008 - 13:58) *
Хотя в данной теме мы всячески обсудили преобразования данных и задали хороший импульс для дальнейшего изучения интересного раздела прикладного анализа, считаю, применять классическое (одномерное) преобразование Бокса-Кокса в данном случае нельзя.

В данном случае, видимо, следует применять его многомерное обобщение. Вот источник http://citeseer.ist.psu.edu/377978.html.

Не могу с этим однозначно согласиться. Описанное задание (так как оно сформулировано) напоминает классическое задание для применения трансформации Бокса-Кокса. Есть переменная отклика (возможно, не нормальная) и влияющая переменная с шестью уровнями. Соответственно, находится лямбда, которая минимизирует ошибку, иными словами делаем следующую дисперсионную модель: boxcox(dependent) ~ independent
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 27.07.2008 - 09:09
Сообщение #21





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Прошу прощения, что отнимаю внимание собеседников, но применение преобразований - очень важная тема на том основании, что их использование позволяет применить мощные методы параметрической статистики к данным, до преобразований нормального распределения не показывавшим. Поэтому ряд вопросов нуждается в уточнении.
Цитата(плав @ 26.07.2008 - 16:51) *
Не могу с этим однозначно согласиться. Описанное задание (так как оно сформулировано) напоминает классическое задание для применения трансформации Бокса-Кокса. Есть переменная отклика (возможно, не нормальная) и влияющая переменная с шестью уровнями. Соответственно, находится лямбда, которая минимизирует ошибку, иными словами делаем следующую дисперсионную модель: boxcox(dependent) ~ independent

Означает ли это, что практически для вычислений оптимальной лямбды используется весь представленный массив данных?
Либо нужно находить оптимальную лямбду для каждого вектора данных без учета всех остальных?


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 27.07.2008 - 10:48
Сообщение #22





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Цитата(Игорь @ 27.07.2008 - 10:09) *
Прошу прощения, что отнимаю внимание собеседников, но применение преобразований - очень важная тема на том основании, что их использование позволяет применить мощные методы параметрической статистики к данным, до преобразований нормального распределения не показывавшим. Поэтому ряд вопросов нуждается в уточнении.

Означает ли это, что практически для вычислений оптимальной лямбды используется весь представленный массив данных?
Либо нужно находить оптимальную лямбду для каждого вектора данных без учета всех остальных?

Конечно, находим одну лямбда для всего массива данных, поскольку мы же тестируем нулевую гипотезу о том, что (в данном случае) все шесть выборок произошли из одной популяции (mu1=mu2=mu3=mu4=mu5=mu6), соответственно, распределение в этом случае у всех шести должно быть одно. Если же предположить, что распределения разные, то это автоматически отвергает нулевую гипотезу.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 27.07.2008 - 15:08
Сообщение #23





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(плав @ 26.07.2008 - 16:51) *
Не могу с этим однозначно согласиться. Описанное задание (так как оно сформулировано) напоминает классическое задание для применения трансформации Бокса-Кокса. Есть переменная отклика (возможно, не нормальная) и влияющая переменная с шестью уровнями. Соответственно, находится лямбда, которая минимизирует ошибку, иными словами делаем следующую дисперсионную модель: boxcox(dependent) ~ independent

Обдумал. Вы совершенно правы, уважаемый плав. Я ошибся. В данной задаче так и должно быть.

Еще раз посмотрел найденные материалы по ссылке, которые указал выше, о многомерном преобразовании Бокса-Кокса. Автор настоятельно рекомендует его использование в случае применения факторного и дискриминантного анализа. Словом, там, где исходные данные, при внешней схожести (таблица) представляют собой не набор выборок, а одну многомерную выборку. В этом случае ведь действительно нужно применять многомерное обобщение Бокса-Кокса, а не обычное преобразование для каждого "измерения"?


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 27.07.2008 - 21:54
Сообщение #24





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Цитата(Игорь @ 27.07.2008 - 16:08) *
Обдумал. Вы совершенно правы, уважаемый плав. Я ошибся. В данной задаче так и должно быть.

Еще раз посмотрел найденные материалы по ссылке, которые указал выше, о многомерном преобразовании Бокса-Кокса. Автор настоятельно рекомендует его использование в случае применения факторного и дискриминантного анализа. Словом, там, где исходные данные, при внешней схожести (таблица) представляют собой не набор выборок, а одну многомерную выборку. В этом случае ведь действительно нужно применять многомерное обобщение Бокса-Кокса, а не обычное преобразование для каждого "измерения"?

Вы абсолютно правы, в той статье речь идет о многомерных методиках, т.е. случаях, когда у нас есть несколько разных переменных. Иными словами, если бы автор изучал влияние взаимосвязь уровней систолического, диастолического артериального давления, триглицеридов, холестрина и возраста, то тогда надо было бы использовать многомероное обобщение.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Pinus
сообщение 5.02.2010 - 10:58
Сообщение #25





Группа: Пользователи
Сообщений: 244
Регистрация: 28.08.2009
Пользователь №: 6286



Разбираюсь с Боксом-Коксом, в целом технология вроде бы понятна, но появляются вопросы. Например, почему для регрессии нужно преобразовывать и отклик, и предиктор? Скажем в однофакторном ANOVA преобразуем только Y (X - просто уровни фактора). Но регрессия - это почти ANOVA, только фактор непрерывен. Тогда почему надо преобразовывать еще и X?

Сообщение отредактировал Pinus - 5.02.2010 - 10:59
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Pinus
сообщение 6.02.2010 - 13:52
Сообщение #26





Группа: Пользователи
Сообщений: 244
Регистрация: 28.08.2009
Пользователь №: 6286



Нашел еще хороший русский источник по Боксу-Коксу:
Айвазян С.А. Прикладная статистика. Основы эконометрики: Учебник для вузов; В 2 т. 2-е изд., испр. ? Т. 2. ? М.: ЮНИТИ-ДАНА, 2001. ? 432 с.
Там, кстати есть ответ на мой вопрос: можно преобразовывать и один Y, и Y с X вместе. Только есть разница в алгоритме определения лямбда.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 7.02.2010 - 10:46
Сообщение #27





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(Pinus @ 6.02.2010 - 15:52) *
Нашел еще хороший русский источник по Боксу-Коксу:
Айвазян С.А. Прикладная статистика. Основы эконометрики: Учебник для вузов; В 2 т. 2-е изд., испр. ? Т. 2. ? М.: ЮНИТИ-ДАНА, 2001. ? 432 с.
Там, кстати есть ответ на мой вопрос: можно преобразовывать и один Y, и Y с X вместе. Только есть разница в алгоритме определения лямбда.

Это преобразование можно использовать руководствуясь разными целями, соответственно и результат будет разный. Классическое преобразование БК используется для нормализации распределения одной переменной. Следовательно в регрессии речь идёт о таком преобразовании зависимой переменной Y.
Про линеаризирующую модификацию преобразования БК, полагаю, в мире знает не так много людей - иначе спецы в эконометрике уже раструбили бы это по всем учебникам - больше чем они никто с регрессиями не работает. Я наткнулся на него случайно и из любопытства тогда попробовал - получилось. Применение этой модификации к независимой переменной X позволяет изменять степень кривизны регрессии. Можете поиграться с ним построив несколько простеньких нелинейных зависимостей известных типов (степенное, показательное, обратное) с известными параметрами регрессии и посмотреть как оно работает (я игрался).
В случае многомерного анализа типа главных компонент в идеале нужно многомерное нормальное распределение, которое нужно сказать на практике не наблюдается (даже идеальное двумерное норм. распределение - редкость). Следовательно правильнее будет трансформировать не каждый признак по отдельности, а весь массив. Это будет уже другая модификация пр-я Бокса-Кокса, которой нас Игорь порадовал в AtteStat.
Также его можно "заточить" и на что-то ещё, например на однородность дисперсии. Главное чтобы семейство степенных преобразований решало проблему (преобразование Бокса-Кокса не подходит для долей, не устраняет периодичность и др.)
Т.о. для случая регрессии можно одновременно применить 2 модификации Бокса-Кокса. Нормализующее преобразование для Y и линеализирующее для X. Вопрос на засыпку: какое делать вперёд? smile.gif

Сообщение отредактировал nokh - 7.02.2010 - 10:52
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Pinus
сообщение 7.02.2010 - 12:50
Сообщение #28





Группа: Пользователи
Сообщений: 244
Регистрация: 28.08.2009
Пользователь №: 6286



Цитата(nokh @ 7.02.2010 - 17:46) *
Т.о. для случая регрессии можно одновременно применить 2 модификации Бокса-Кокса. Нормализующее преобразование для Y и линеализирующее для X. Вопрос на засыпку: какое делать вперёд?

Айвазян пишет, что после преобразования Б-К совокупность удовлетворяет всем требованиям нормальной классической линейной модели регрессии (включая нормальность остатков и однородность дисперсий). Может быть я не правильно понял, или не все знаю, но может быть или один Y, или Y и X вместе? И в том и в другом случае нормализует, а во втором случае еще делает однородными дисперсии остатков и линеаризует. А один X без Y в регрессии похоже нельзя.
Что значит заточить под однородность дисперсий? Методом подбора найти нужный эффект?

Сообщение отредактировал Pinus - 7.02.2010 - 12:53
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Green
сообщение 7.02.2010 - 13:45
Сообщение #29





Группа: Пользователи
Сообщений: 120
Регистрация: 27.08.2009
Пользователь №: 6284



> Нормализующее преобразование для Y и линеализирующее для X. Вопрос на засыпку: какое делать вперёд?

Опять я Вас не совсем понимаю.
Ведь если взять формулу для преобразования Б-К, то там стоит один аргумент, а не два сразу.
Поэтому какая разница?
Если же для линеаризации Х используется одновременно Y - тогда часть информации будет уже использована для линеаризации, перед построением регрессии. Как-то неправильно...?
Но тогда уж пусть Y - будет нормально. Т.е. сначала тянуть до нормальности. Потом тянуть до линейности.


>Айвазян пишет, что после преобразования Б-К совокупность удовлетворяет всем требованиям...
Надо посмотреть Айвазяна внимательно , потому что если опять же смотреть на формулу Б-К - то она не вытянет, к примеру функцию с двумя экстремумами к функции с одним. Преобразование Б-К - монотонно (возрастающее/убывающее).
Постараюсь найти Айвазяна. Скорее всего, там еще ограничения на использование или что-то такое...
А то получается, что синусоиду выпрямим до прямой линии.

Сообщение отредактировал Green - 7.02.2010 - 16:39


Signature
Это не кованализ :)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 8.02.2010 - 00:35
Сообщение #30





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(Pinus @ 7.02.2010 - 14:50) *
Айвазян пишет, что после преобразования Б-К совокупность удовлетворяет всем требованиям нормальной классической линейной модели регрессии (включая нормальность остатков и однородность дисперсий). Может быть я не правильно понял, или не все знаю, но может быть или один Y, или Y и X вместе? И в том и в другом случае нормализует, а во втором случае еще делает однородными дисперсии остатков и линеаризует. А один X без Y в регрессии похоже нельзя.
Что значит заточить под однородность дисперсий? Методом подбора найти нужный эффект?

Неоднородность дисперсий часто вызывается тем, что в асимметричных распределениях среднее связано с дисперсией (см. Закс, стр. 466-468). Поэтому нормализация данных "развязывает" среднее и дисперсию и т.о. помимо собственно нормализации ведёт и к повышению однородности дисперсий. Но если причина неоднородности дисперсий не была связана с асимметричностью распределения - преобразование проблему гетероскедастичности не решит. Например известно, что с возрастом шум биологических процессов увеличивается, поэтому теоретически можно предположить существование таких признаков, которые будучи нормально распределены, тем не менее с возрастом увеличивают изменчивость. Тогда классический нормализующий Бокс-Кокс не поможет. Кстати параметр лямбда ищется именно методом подбора, а функцию правдоподобия можно переписать в зависимости от цели: нормализация, увеличение гомоскедастичности, увеличение линейности отклика. Просто обычно речь идёт только о нормализации.

Цитата(Green @ 7.02.2010 - 15:45) *
... Но тогда уж пусть Y - будет нормально. Т.е. сначала тянуть до нормальности. Потом тянуть до линейности.

А как мы определим ненормальность Y? Построим зависимость, найдём остатки и проанализируем их распределение. А какой функцией мы будем приближать нелинейную зависимость, если её истинная форма нам не известна? - ведь мы и выбрали линеаризирующее преобразование Бокса-Кокса чтобы максимально спрямить неизвестную функцию. Если выберем для криволинейной зависимости прямую - остатки будут помимо вариабельности Y содержать также отклонения от линейности, а это помешает правильно нормализовать Y. Выходит сначала нужно линеаризовать зависимость преобразованием X, а уже затем подбирать нормализующее преобразование для Y. Но тогда, учитывая ненормальность Y линеаризация будет сделана с погрешностью. Такой вот замкнутый круг. Поэтому и написал, что вопрос - на засыпку.




Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

3 страниц V  < 1 2 3 >
Добавить ответ в эту темуОткрыть тему