Вы можете быстро получить m
и c
, используя fminsearch
.В первом примере ниже функция ошибки представляет собой сумму квадратов ошибок (SSE).Во втором примере используется сумма абсолютных ошибок .Ключевым моментом здесь является обеспечение того, что функция ошибок является выпуклой.
Обратите внимание, что c = Beta(1)
и m = Beta(2)
.
Воспроизводимый пример (код MATLAB):
% Generate some data
N = 50;
X = 2 + 13*random(makedist('Beta',.7,.8),N,1);
Y = 5 + 1.5.*X + randn(N,1);
% Example 1
SSEh =@(Beta) sum((Y - (Beta(1) + (Beta(2).*X))).^2);
Beta0 = [0.5 0.5]; % Initial Guess
[Beta SSE] = fminsearch(SSEh,Beta0)
% Example 2
SAEh =@(Beta) sum(abs(Y-(Beta(1) + Beta(2).*X)));
[Beta SumAbsErr] = fminsearch(SAEh,Beta0)