Gtld simpleAR1
Перейти к навигации
Перейти к поиску
Краткое описание
Функция предназначена для формирования трендов.
Cодержание функции может дополняться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __ar1 = simpleAR1(data, phi, steps = 3);
Аргументы
data- исходный массив данных;phi- коэффициент авторегрессии;forecastSteps- количество точек прогноза;
Содержание функции
// Протсая ARIMA-модель (авторегрессия — интегрированное скользящее среднее)
/*
Коэффициент авторегрессии Ф подбирается "на глаз"
Ф=0: вибрация почти случайна, мало зависит от предыдущих значений.
0<Ф<1: положительная автокорреляция — рост/падение вибрации имеет инерцию (типично для износа оборудования).
Ф=1: процесс близок к случайному блужданию (возможна нестационарность).
Ф<0: отрицательная автокорреляция (редкий случай для вибрации).
Как влияет на прогноз
Значение Ф напрямую определяет динамику прогноза:
Большие значения (0.8–0.9): прогноз плавно продолжает тренд с умеренным ростом/падением.
Малые значения (0.1–0.3): прогноз быстро «затухает» к среднему уровню.
Отрицательные значения: прогноз будет осциллировать (чередовать рост и падение).
*/
function simpleAR1(data, phi, steps = 3) {
const n = data.length;
if (n === 0) return [];
// Оцениваем среднее значение ряда
const mean = data.reduce((sum, val) => sum + val, 0) / n;
const result = [...data];
// Центрируем последнее значение
let lastDeviation = data[n - 1] - mean;
for (let i = 0; i < steps; i++) {
// Прогноз отклонения
const nextDeviation = lastDeviation * phi;
// Возвращаем среднее
result.push(nextDeviation + mean);
lastDeviation = nextDeviation;
}
return result;
}