Box Cox Трансформації для регресії


9

Я намагаюся встановити лінійну модель на деякі дані лише з одним предиктором (скажімо, (x, y)). Дані є такими, що для малих значень x значення y дають чітке прилягання до прямої лінії, однак у міру збільшення значень x значення y стають більш мінливими. Ось приклад таких даних (код R)

y = c(3.2,3.4,3.5,3.8,4.2,5.5,4.5,6.8,7.4,5.9)
x = seq(1,10,1)

Мені цікаво дізнатись, чи існує якась трансформація потужності (можливо, Кокс Кокс?), Яка дозволяє мені краще підходити до даних, ніж просто робити лінійну підгонку, як показано нижче.

fit = lm(y ~ x)

Як я розумію, мета таких перетворень, як Box Cox, полягає не в тому, щоб краще підходити, а відповідати припущенням моделі. Це може отримати кращу форму, гіршу форму або не сильно змінити, але це буде придатність, яка не порушує припущення.
Пітер Флом

нелінійне перетворення зробить лінійне відношення нелінійним (хоча іноді ви можете перетворити х так само і виправити це). Однак трансформація також може випрямити вигнуту і в той же час знизити гетероскідкастичність (хоча не завжди можливо зробити обидва з однаковою трансформацією). Для цих даних дещо допомагає перетворення журналу.
Glen_b -Встановіть Моніку

4
Використовуючи два крайніх та середніх (п'ятих) значень , метод, показаний на stats.stackexchange.com/questions/35711/…, вказує, що логарифм (перетворення Box-Кокса з параметром 0) був би доречним для лінеаризації відносин. Використання першого, шостого та останнього значень вказує, що зворотне (параметр -1) було б добре. Це говорить про те, що майже будь-який параметр між 0 і -1 може працювати. Діапазон не дивно, враховуючи, наскільки мало даних. Жодне монотонне повторне вираження не стабілізує варіацію цих даних. у
whuber

Відповіді:


6

У пакеті MASS, який вже постачається з вашим R, є boxcox()функція, яку ви можете використовувати: Після читання даних виконайте:

library(MASS)
boxcox(y ~ x)

Потім подивіться на отриманий графік, який графічно показує 95% довірчий інтервал для параметра трансформації boxcox. Але у вас дійсно не вистачає даних (n = 10) для цього, отриманий довірчий інтервал становить майже від -2 до 2 !, з максимальною оцінкою ймовірності приблизно 0 (log-перетворення, як було сказано раніше). Якщо у ваших реальних даних є більше спостережень, вам слід спробувати це.

Як говорили інші, ця трансформація справді намагається стабілізувати дисперсії. Це зовсім не очевидно з теорії: те, що це робить, полягає у намаганні максимізувати функцію ймовірності, засновану на нормальному розподілі, яка передбачає постійну дисперсію. Можна подумати, що максимізація ймовірності на основі нормальних норм намагатиметься нормалізувати розподіл залишків, але на практиці основний внесок у максимізацію ймовірності походить від стабілізації дисперсій. Це, можливо, не так дивно, враховуючи, що ймовірність, яку ми максимізуємо, ґрунтується на постійній дисперсії сімейства нормального розподілу!

Я колись написав демонстрацію на основі слайдера в XLispStat, яка це наочно продемонструвала!


3

Коли у вас є лінійне співвідношення, але неоднакові дисперсії, то вам, як правило, потрібно перетворити і x, і y, щоб отримати лінійне співвідношення з рівними дисперсіями (або просто використовувати зважену найменшу регресію квадратів на неперетворених змінних).

Процедуру AVAS можна використовувати, щоб запропонувати можливі перетворення.


Погляньте на дані: у тенденції монотонно для Росії х з 1 до 5, то систематично коливається багато х між 5 і 10. Це означає, що не існує безперервного монотонного повторного вираженняувдасться стабілізувати дисперсії. Ваша пропозиція про зважені найменші квадрати виглядає перспективною з огляду на це обмеження, але як слід обирати ваги?
whuber

Погодьтеся з @whuber
брокколі

1
Я погоджуюся з @whuber для цього конкретного набору даних, я просто припустив, що ці дані були швидко створені для ілюстрації (і тому показують відсутність випадковості / реальності у людини). Моя відповідь - це більше загальна порада для загального випадку неоднакових розбіжностей.
Грег Сноу

З огляду на те, що дисперсія збільшується з x, чи glmрозрізає би її рамка з функцією Пуассона зв'язку?
Роман Луштрик

3
@ RomanLuštrik, пуассонова регресія - це щось, що слід враховувати, але вибір слід робити на основі науки, а не даних. Наведені вище дані мають нецілі числа дляу, тож для пуассонової регресії потрібно мати певний тип ваги або спостереження для нецілих чисел. Це слід враховувати лише в тому випадку, якщо змінна відповіді представляє підрахунки і наука, що стоїть на даних, узгоджується з розподілом Пуассона.
Грег Сніг

1

Ну, в R ви можете спробувати це:

library(MASS)
boxcox(y~x)
plot(1/y^2~x) # since the profile likelihood has a maximum near 2

введіть тут опис зображення

Але це дійсно залежить від того, що ви маєте на увазі під «кращим пристосуванням до даних»


-2

добре, якщо всі ваші дані для x є негативними, то ви можете використовувати перетворення коксу коксу ... для оцінки ідеального значення параметра лямбда параметра перетворення ви можете використовувати матлаб ... http://www.mathworks.in/ help / finance / boxcox.html


1
"Ідеально" тут означає щось інше, ніж просити у питанні. Питання спрямоване на стабілізацію дисперсій, тоді як рішення Matlab прагне зробити їх максимально наближеними до нормального розподілу.
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.