Gtld exponentialSmoothing
Перейти к навигации
Перейти к поиску
Краткое описание
Функция предназначена для формирования трендов для стационарного ряда.
Cодержание функции может дополняться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __exp = exponentialSmoothing(data, alpha, forecastSteps = 0);
Аргументы
data- исходный массив данных;alpha- коэффициент сглаживания;
Коэффициент сглаживания alpha alpha = 0 (близко к нулю): Новые данные почти не учитываются, сглаженный ряд почти не меняется, повторяет начальное значение. Подходит для почти стационарных процессов без тренда. alpha = 1 (близко к единице): Новые данные имеют максимальный вес, модель мгновенно реагирует на изменения. Может усиливать шум вместо сглаживания. alpha = (0.1-0.3) (типичные значения): Баланс между учётом новых данных и сглаживанием шума, плавная реакция на изменения тренда. Стандартный выбор для большинства практических задач. alpha = (0.3-0.5): Быстрая реакция на изменения, меньше сглаживания, больше следования за данными; Подходит для трендов с частыми изменениями.
forecastSteps- количество точек прогноза;
Содержание функции
function exponentialSmoothing(data, alpha, forecastSteps = 0) {
if (data.length === 0) return [];
const result = [data[0]];
let prevForecast = data[0];
// Сглаживание исторических данных
for (let i = 1; i < data.length; i++) {
const currentForecast = alpha * data[i] + (1 - alpha) * prevForecast;
result.push(currentForecast);
prevForecast = currentForecast;
}
// Прогноз: простое экспоненциальное сглаживание даёт константный прогноз
const lastSmoothed = prevForecast;
for (let i = 0; i < forecastSteps; i++) {
result.push(lastSmoothed);
}
return result;
}