Як передбачити нові дані за допомогою сплайну / плавної регресії


11

Чи може хто-небудь допомогти дати концептуальне пояснення того, як робляться прогнози для нових даних при використанні гладких / сплайнів для прогнозної моделі? Наприклад, враховуючи модель, створену за gamboostдопомогою mboostпакету в R, з p-сплайнами, як робляться прогнози для нових даних? Що використовується з даних про навчання?

Скажіть, що є нове значення незалежної змінної x, і ми хочемо передбачити y. Чи застосовується формула для створення сплайну до цього нового значення даних за допомогою вузлів або df, що використовуються при навчанні моделі, а потім застосовуються коефіцієнти від підготовленої моделі для виведення прогнозу?

Ось приклад з R, що прогнозують, щоб зробити концептуально вихід 899,4139 для нових даних mean_radius = 15,99?

#take the data wpbc as example
library(mboost)
data(wpbc)

modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)

Питання: це стосується інтерполяції (інтер'єр домену) або екстраполяції? З ними по-різному поводиться. Вони також дуже залежать від функції "основи". Функція радіальної основи, як можна було б очікувати в ГЛМ, матиме істотно іншу поведінку, особливо поза хвостами, ніж деякі поліномічні основи високого (ер) порядку.
EngrStudent

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

У поліноміальних основах є явища, які іноді називають «ефектом Гіббса». Якщо ви помістите дані, що є рівномірними зразками звичайного нормального розподілу, на щось на зразок полінома 10-го порядку, а потім подивіться на якість інтерполяції, ви побачите, що на кінцях схили високі і інтерполяція дуже погана. У поліномних підставах прийнято використовувати екстраполянт нижчого порядку, ніж інтерполянт. Не знаючи "фізики", що визначає явища, екстраполянти часто є лінійними. Я використовую MatLab: mathworks.com/help/matlab/ref/interp1.html .
EngrStudent

Відповіді:


10

Спосіб обчислення прогнозу виглядає таким чином:

З початкового вмісту mean_radiusу вас є місця вузлів, що поширюються в межах ваших навчальних даних. Разом зі ступенем базису B-сплайна (кубічне за замовчуванням у mboost) ці місця вузлів визначають форму ваших базових функцій B-сплайна. За замовчуванням в ньому mboostє 20 внутрішніх вузлів, які визначають 24 кубічні B-сплайн-базисні функції (не питайте ...). Давайте можемо називати ці основні функції . Ефект коваріату `` середній_радіус '' представлений просто як Це дуже акуратний трюк, оскільки це зменшує важку проблему оцінки невизначена функція до набагато простішої задачі оцінки лінійної ваги регресіїBj(x);j=1,,24x=

f(x)=j24Bj(x)θj
f(x)θj пов'язаний із колекцією синтетичних коваріатів .Bj(x)

Прогнозування тоді не таке складне: Враховуючи розрахункові коефіцієнти , нам потрібно оцінити для даних прогнозування . Для цього все, що нам потрібно, - це місця вузлів, які визначають основні функції вихідних даних. Тоді ми отримуємо прогнозовані значення як θ^jBj();j=1,,24xnew

f^(xnew)=j24Bj(xnew)θ^j.

Оскільки прискорення є ітераційною процедурою, розрахункові коефіцієнти при ітерації зупинки насправді є сумою оновлень коефіцієнта в ітераціях . Якщо ви дійсно хочете зрозуміти деталі, погляньте на результат, який ви отримаєтеmstop1,,mstop

bbs(rnorm(100))$dpp(rep(1,100))$predict,

і піти досліджувати звідти. Наприклад,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

дзвінки

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

оцінити на .Bj()xnew


це чудово. Цікаво, чи не заперечуєте ви пояснити широко, що ці функції виконують? Чи правда, що для "зарахування" нових даних тоді необхідний набір коефіцієнтів, розташування вузлів, які використовуються під час тренувань, та формула сплайнів? Чи потрібні будь-які інші дані про навчання для оцінки нових даних (наприклад, у моделі KNN)?
B_Miner

1
Яка інформація вам потрібна, залежить від типу основи сплайну, який ви використовуєте. Для B-сплайнів все, що вам потрібно знати, - це порядок B-сплайнів (квадратичний / кубічний / тощо) та місця розташування вузлів. "Формула" для B-сплайнів - це рекурсія, рекурсія Кокса-де-Бура . Я додав піввідповіді до своєї відповіді.
fabians
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.