getCorr was cahged

develop
Aleksey_K 2024-06-27 10:55:27 +09:00
parent b954000b3c
commit 5f6b316f5e
1 changed files with 4 additions and 5 deletions

View File

@ -23,17 +23,16 @@ export function getAutoCorr(options) {
let lag = 0.5; let lag = 0.5;
let X = 0; //аргумент 1 let X = 0; //аргумент 1
let Y = 0; //аргумент 2 let Y = 0; //аргумент 2
if (options.lag < 0.5) { lag = options.lag } else { lag = 0.5 }; if (options.lag <= 0.5) { lag = options.lag } else { lag = 0.5 };
let T = Math.floor(arr.length * lag); //определяем количество индексов (шагов) для смещения массива let T = Math.floor(arr.length * lag); //определяем количество индексов (шагов) для смещения массива
let arr0 = arr.slice(0, T); //обрезаем массив на величину смещения let avg = arr.reduce((acc, item) => (acc + item)) / arr.length; //среднее значение массива
let avg = arr0.reduce((acc, item) => (acc + item)) / arr0.length; //среднее значение массива Y = arr.reduce((acc, item) => (acc + (item - avg) ** 2)); //рассчитываем знаменатель функции
Y = arr0.reduce((acc, item) => (acc + (item - avg) ** 2)); //рассчитываем знаменатель функции
for (let i = 0; i < T; i++) { for (let i = 0; i < T; i++) {
let Rh = arr.slice(- i); //отделяем "хвост" массива let Rh = arr.slice(- i); //отделяем "хвост" массива
let Lt = arr.slice(0, - i); //отделяем "тело" массива let Lt = arr.slice(0, - i); //отделяем "тело" массива
let arr2 = [].concat(Rh, Lt); //соединяем части массива let arr2 = [].concat(Rh, Lt); //соединяем части массива
for (let j = 0; j < T; j++) { X += (arr[j] - avg) * (arr2[j] - avg); }; for (let j = 0; j < arr.length; j++) { X += (arr[j] - avg) * (arr2[j] - avg); };
plot.push(X / Y); //записываем значение в массив коэффициентов plot.push(X / Y); //записываем значение в массив коэффициентов
X = 0; X = 0;
}; //смещение массива }; //смещение массива