2 x n 配列を指定して、データセットの線形回帰方程式 (y = mx + c) を見つける最も効率的な方法を見つけようとしています。
基本的に、たとえば X が 50 のときの Y の値を知りたいです。
私の現在の方法には、多くのことが望まれています。
inputData は 2 行 n 列の配列で、最初の列に X があり、2 番目の列に 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
ご覧のとおり、上記の方法は、指定された X 値の 5 以内にある Y の値を見つけようとして、平均を取得するだけです。これは恐ろしい方法であり、さらに処理にはかなりの時間がかかります。
私が本当に必要としているのは、方程式 y = mx + c... を通じて値を見つけることができるように、X と Y の線形回帰を計算するための堅牢な方法です。
PS。上記の方法では、実際にメモリを事前に割り当て、最後に末尾のゼロを削除しますが、簡単にするためにこの部分を削除しました。