2 x n 배열을 사용하여 데이터 집합에 대한 선형 회귀 방정식 (y = mx + c)을 찾는 가장 효율적인 방법을 찾으려고합니다. ,MATLAB : Linear regression
inputData 제 2 n 개의 배열입니다 :
는 기본적으로 나는 50
내 현재의 방법은 원하는 수 많은 나뭇잎, X는, 예를 들면, 때 Y의 값이 무엇인지 알고 싶어 첫 번째 열에 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
위에서 볼 수 있듯이 위의 방법은 주어진 X 값 중 5 개 이내의 Y 값을 찾고 해당 값을 얻으려고 시도합니다. 이것은 끔찍한 방법이며, 처리하는 데 절대적으로 오래 걸립니다. I는 식 Y = MX + C를 통해 값 ...
PS를 찾을 수 있도록 정말 필요한 것은
는 X 및 Y에 대한 선형 회귀 계산을위한 강력한 방법이다. 위의 방법에서는 실제로 메모리를 미리 할당하고 끝에 0을 제거하지만이 부분을 단순화하기 위해 제거했습니다.
당신이 선형 회귀에 대한 Matlab의 문서를 읽을 수 있나요? http://www.mathworks.co.uk/help/techdoc/data_analysis/f1-5937.html –
'polyfit'이 실제로 반환하는 것을 볼 수는 없지만 두 값을 제공하지만 문서는 그렇지 않습니다. 그들이 입력 데이터의 첫 번째 또는 두 번째 값을 예측하는지 여부를 말하십시오. – CaptainProg
두 값이 'm'과 'c'라고 가정하고, 두 번째 변수에 'y'가 작용한다고 가정합니다. 따라서 'x'를 찾고 싶다면 polyfit() 함수에서 'x'와 'y'를 반대로하여 x = my + c가 필요합니다 ... – CaptainProg