Я пытаюсь найти наиболее эффективный метод, чтобы найти уравнение линейной регрессии (y = mx + c) для набора данных с массивом 2 на n.
По сути, я хочу знать, каково значение Y, когда X составляет, например, 50.
Мой текущий метод оставляет желать лучшего:
inputData - это мой массив размером 2 на n, с X в первом столбце и Y во втором.
x = 50
for i = 1 : size(inputData,1) % for every line in the inputData array
if (inputData(i,1) < x + 5) | (inputData(i,1) > x - 5) % if we're within 5 of the specified X value
arrayOfCloseYValues(i) = inputData(i, 2); % add the other position to the array
end
end
y = mean(arrayOfCloseYValues) % take the mean to find Y
Как видите, мой метод, описанный выше, просто пытается найти значения Y, которые находятся в пределах 5 от заданного значения X, и получает среднее значение. Это ужасный метод, плюс для его обработки требуется совсем много времени.
Что мне действительно нужно, так это надежный метод расчета линейной регрессии для X и Y, чтобы я мог найти значение с помощью уравнения y = mx + c ...
PS. В моем методе выше я фактически предварительно выделяю память и удаляю конечные нули в конце, но я удалил эту часть для простоты.