Надання більшої ваги останнім спостереженням в області регресії


9

Як надати більше ваги останнім спостереженням в R?

Я вважаю це запитанням чи бажанням, але мені важко зрозуміти, як саме це здійснити. Я намагався багато шукати для цього, але не можу знайти хорошого практичного прикладу.

У моєму прикладі я мав би великий набір даних із часом. Хочу сказати, застосувати якесь експоненціальне зважування рядків даних, які є останніми. Тому я мав би якусь експоненціальну функцію, яка говорить про те, що спостереження у 2015 році ___ важливіші для підготовки моделі, ніж спостереження у 2012 році.

Мої змінні набору даних містять суміш категоричних та числових значень, і моя ціль - це числове значення - якщо це має значення.

Я хотів би перевірити / спробувати це, використовуючи такі моделі, як GBM / Random Forest, в ідеалі в пакеті CARET.

оновлення-питання

Я ціную відповідь, подану нижче про те, як експоненціально розкласти вагу на відстань дати між двома точками.

Однак, коли мова заходить про тренування цієї моделі з каретою, як саме враховують ваги? Значення ваги в кожному з навчальних рядів - це відстань між деякою точкою в майбутньому та коли ця точка сталася історично.

Чи вступають у вагу лише під час прогнозування? Тому що, якби вони почали грати під час тренувань, чи не це спричинило б всілякі проблеми, оскільки різні перехресні склади мали б різну вагу, намагаючись передбачити щось, що може бути насправді за певний час до цього?


3
Близький голос, оскільки запитуючий повинен уточнити статистичні питання. Мені незрозуміло, що тут доречні GBN або РФ. Пропонуємо перенести це на CV.com
DWin

добре. Я скоро додам приклад. Я просто бачу подібне питання в Інтернеті, але немає конкретних прикладів того, як його застосувати / вирішити.
користувач3788557

Відповіді:


5

Як надати більше ваги останнім спостереженням в R?

Я думаю, у вас є позначка часу, пов'язана з кожним спостереженням. Ви можете обчислити змінну timeElapsed = modelingTime - observationTime. Тепер ви застосуєте просту експоненціальну функцію як W=K*exp(-timeElapsed/T), де Kє константа масштабування і Tє постійною часом для функції занепаду. Wпрацює як обставина ваги.

Наскільки мені відомо, багато функціонують у caretдозволі weight, щоб параметр, що представляє собою стовпець вагових випадків, повинен бути наданий відповідним спостереженням (таким чином, має таку ж довжину, як #rows).


1
Функція в caret::trainє weights.
timcdlucas

Дякую Уджувальду - але яка методологія визначення "К" у вашому рівнянні? будь-які вказівки чи найкращі практики? Крім того, що ви маєте на увазі під «періодом часу» для функції розпаду?
користувач3788557

K - це лише константа масштабування, і це не вплине сильно на результати моделі. Ви можете встановити деяке значення, щоб діапазон значень ваги у регістрі, можливо, був близький до діапазону 0-1. Щодо "періоду часу", його також називають постійною часом для функції експоненціального розпаду першого порядку АБО середньою тривалістю життя. Ви можете подивитися на wikipedia.
Ujjwal Kumar

Перегляньте моє оновлення до моєї публікації. Чи правильно це буде працювати під час тренінгу? Чи матиме модель тренувань упередженість, оскільки Ваги можна застосовувати лише тоді, коли вона буде використана проти тестового набору? Коли тренувальний набір випадковим чином перемішується, це може бути погано, якщо більш високі ваги будуть використані для прогнозування цін у минулому або проти періоду часу, який не знаходиться поруч.
користувач3788557

Без вагових обставин ваше навчання моделі надало б однакового значення як старим, так і новим даним, але при запропонованому вазі випадків воно надасть більшого значення новим даним, тому в цьому сенсі воно упереджене до нових спостережень, але це чого ти хотів. Я не розумію, чому "ваги можуть бути дозволені лише для тестових випадків" . Крім того, як використовуються більш високі ваги для старих значень, коли тренувальний набір випадковим чином переміщується? коли modelingTime зберігається однаково для всіх навчальних випадків. Ваги PS не застосовуються при використанні моделі, вони застосовуються лише для навчального періоду.
Ujjwal Kumar

0

Дані (не аналітик, який робить припущення - здогадки) часто можуть підказувати форму схеми зважування. Це робиться за допомогою GLS, коли відповідні ваги для моделі найменш зважених квадратів отримують із статистично значущих відмінностей, виявлених у дисперсії помилок. Погляньте на визначення змін та переживань за допомогою ARIMA (процедура Цей) і тут http://docplayer.net/12080848-Outliers-level-shifts-and-variance-changes-in-time-series.html . Якщо ви хочете опублікувати дані, будь ласка, зробіть це тут, і я спробую допомогти далі, оскільки у мене є звичайний доступ до програмного забезпечення, яке може вас освітити.

Існує R версія програмного забезпечення, яке я використовую.

Ви можете подивитися, як включити контрольні змінні в аналіз втручання з ARIMA? оскільки він має приклад того, як ваги визначаються та використовуються для стабілізації дисперсії помилок, таким чином ефективно вірячи / не вірячи / дисконтуючи / зважуючи / довіряючи певним попереднім значенням.

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