Вопрос или проблема
0
Я использую Prophet на временном ряду с экзогенными признаками.
Я хочу понять значимость (значение p) каждого из этих признаков в моей модели Prophet, чтобы я мог выполнить обратное исключение признаков, итеративно работать и прийти к надежной модели.
Я понимаю, что не могу просто провести t-тест по масштабированным коэффициентам (бетам), чтобы проверить, отличается ли коэффициент статистически значимо от 0. Причина в нормализациях, происходящих “за кулисами”, как объясняется здесь: https://github.com/facebook/prophet/issues/1264
Я также нашел это, но не уверен, как на самом деле получить какую-либо значимость/провести статистику: https://stackoverflow.com/questions/62654951/how-to-get-feature-importance-of-fb-prophet
Любая помощь будет очень признательна!
Ответ или решение
Как проверить значимость регрессора в модели FB Prophet
Когда вы работаете с временными рядами и используете методологию, такую как FB Prophet, важно понимать, как учитывать экзогенные переменные (регрессоры). Вопрос значимости этих регрессоров особенно актуален, когда вы хотите оптимизировать модель, например, через обратное исключение переменных. Однако, как вы правильно заметили, анализ коэффициентов регрессора в Prophet не так прост из-за нормализации данных, происходящей в модели. В этом ответе мы рассмотрим несколько подходов к проверке значимости регрессоров.
1. Понимание внутренней работы Prophet
FB Prophet — это модель, основанная на аддитивной или мультипликативной сфере. При добавлении регрессоров в модель, Prophet выполняет автоматическое масштабирование и нормализацию данных, что может затруднить интерпретацию статических коэффициентов. Поэтому вам нужно искать альтернативные методы для оценки влияния регрессоров.
2. Экспериментальный подход
Один из подходов для проверки значимости регрессоров — использовать методы padlock-экспериментов. Суть метода заключается в том, что вы можете создать две модели:
- Модель A: включает все ваши регрессоры.
- Модель B: исключите интересующий вас регрессор.
Вы затем сравниваете производительность обеих моделей, используя такие метрики, как RMSE (среднеквадратичная ошибка) или MAE (средняя абсолютная ошибка). Если модель A обеспечивает значительно лучшую производительность по сравнению с моделью B, то это может свидетельствовать о значимости этого регрессора.
3. Кросс-валидация
Более надёжным способом проверки значимости регрессора является использование кросс-валидации. Вы можете использовать время-точечную кросс-валидацию (Time-series cross-validation), чтобы систематически проверять модели с различными наборами регрессоров и учитывать стабильность их предсказаний.
Эти проверки позволят вам оценить средние метрики качества модели и понять, какой вклад вносят отдельные регрессоры.
4. Модели с фиксированными эффектами
Если вы работаете с панельными данными, можно рассмотреть возможность применения моделей с фиксированными эффектами для определения значимости регрессоров по отношению к временным периодам и объектам. В этом случае значимость переменных можно проверить с использованием тестов на основе суммы квадратов остатков (SSR).
5. Импортанция переменных и дополнительные визуализации
Также стоит обратиться к концепции важности переменных (feature importance). Вы можете рассмотреть различные подходы, такие как использование модельных выходов с выборками или важности путём роста, которые могут помочь прогнозировать, какие регрессоры наиболее значимы.
Заключение
В заключение, проверка значимости регрессоров в модели FB Prophet предполагает несколько альтернативных подходов. От экспериментальных методов до кросс-валидации и визуализации важности переменных — существует множество способов оценить вклад экзогенных переменных в ваши предсказания. Принятие этих методов не только поможет вам оптимизировать модель, но и обеспечит её надёжность и интерпретируемость.
Помните, что итоговый выбор подхода зависит от специфики ваших данных и целей анализа. Удачи в вашей работе с Prophet!