Як налаштувати згладжування в моделі Gcm mgcv


14

Я намагаюся розібратися, як контролювати параметри згладжування в гем-моделі mgcv: gam.

У мене є біноміальна змінна, яку я намагаюся моделювати як головну функцію координат x і y на нерухомій сітці, а також деякі інші змінні з меншими впливами. Раніше я будував досить хорошу модель локальної регресії, використовуючи параметри locfit та лише значення (x, y).

Однак я хочу спробувати включити в модель інші змінні, і, схоже, узагальнені моделі добавок (GAM) були гарною можливістю. Переглянувши пакунки gam та mgcv, обидва з яких мають функцію GAM, я вибрав останнє, оскільки ряд коментарів у потоках списку розсилки, як видається, рекомендує це. Одним із недоліків є те, що він, схоже, не підтримує локальну регресію, більш гладку, як льос або локафіт.

Для початку я просто хотів спробувати повторити приблизно модель локафітів, використовуючи просто (x, y) координати. Я намагався як із звичайними, так і з тензорними гладкими виробами:

my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1)

my.gam.s  <- gam(z ~  s(x, y), family=binomial(logit), data=my.data, scale = -1)

Однак, будуючи передбачення з моделі, вони набагато більш згладжені порівняно з моделлю локафіт. Тому я намагався налаштувати модель, щоб не загладжувати стільки. Я намагався коригувати параметри sp і k, але мені незрозуміло, як вони впливають на згладжування. У локафіті параметр nn контролює проміжок використовуваного мікрорайону, з меншими значеннями, що дозволяють зменшити згладжування та більше "хитання", що допомагає захопити деякі ділянки в сітці, де ймовірність результатів біноміальних швидко змінюється. Як би я почав налаштовувати ігрову модель, щоб вона могла поводитися аналогічно?

Відповіді:


23

kАргумент ефективно встановлює розмірність матриці згладжує для кожного терміна. gam()використовує показник GCV або UBRE для вибору оптимальної кількості гладкості, але він може працювати лише в межах розмірності матриці згладжування. За замовчуванням te()гладкі є k = 5^2для 2d поверхонь. Я забуваю, що це таке, s()щоб перевірити документи. Поточна порада Саймона Вуда, автора mgcv , полягає в тому, що якщо ступінь гладкості, обрана моделлю, дорівнює або наближається до межі розмірності, накладеної для використовуваного значення k, вам слід збільшити kта заново встановити модель, щоб побачити, чи Більш складна модель вибирається з матриці вирівнювання більш високої міри.

Однак я не знаю, як працює локафіт , але вам потрібно мати щось, що перешкоджає встановленню надто складної поверхні (GCV та UBRE, або (RE) ML), якщо ви вирішите використовувати їх [ви не можете як set scale = -1], намагаються зробити саме це), що не підтримується даними. Іншими словами, ви могли б відповідати дуже локальним особливостям даних, але ви підходите до шуму у вибірці зібраних даних або підходите до середнього рівня розподілу ймовірностей? gam() може розповісти вам щось про те, що можна оцінити за вашими даними, припускаючи, що ви відібрали розмірність основи (вище).

Інша річ, на яку слід звернути увагу, полягає в тому, що плавніші, які ви зараз використовуєте, є глобальними в тому сенсі, що вибрана гладкість застосовується на весь діапазон гладкого. Адаптивні згладжувачі можуть витрачати виділену гладкість «надбавки» в частині даних, де реакція швидко змінюється. gam()має можливості використання адаптивних плавнішек.

Подивіться ?smooth.termsта ?adaptive.smoothперевірте, що може бути встановлено за допомогою gam(). te()може поєднувати більшість, якщо не всі ці плавніші (перевірити документи, для яких можна і не можна включати тензорні продукти), щоб ви могли використовувати адаптивну більш гладку основу, щоб спробувати захопити більш точний локальний масштаб у частинах даних, де реакція швидко змінюється.

Додам, що ви можете отримати R для оцінки моделі з фіксованим набором ступенів свободи, що використовується гладким терміном, використовуючи fx = TRUEаргумент до s()та te(). В принципі, набір до бути те , що ви хочете , і fx = TRUEта gam()буде просто відповідати регресійний сплайн фіксованих ступенів свободи не порушує регресійний сплайн.


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