Почему стандартные ошибки, полученные с помощью функций lsqcurvefit и fminunc в MATLAB, отличаются? - PullRequest
0 голосов
/ 14 мая 2019

Я подгоняю модель к экспериментальным данным. Для этой модели я хотел найти параметры, сводя к минимуму сумму квадратных вычетов между экспериментальным и модельным набором данных. Модель имеет вид, показанный ниже:

G (x) = G0 / (1+ (x / x_c) ^ (2 м))

где G0, x_c и m - параметры для оптимизации.

Чтобы определить параметры, я использовал оба инструмента lsqcurvefit и fminunc на Matlab. Для lsqcurvefit я использую выходную матрицу Якоби с инструментом nlparci для определения 95% доверительного интервала и обратного трека для расчета стандартных ошибок, как показано ниже.

[x,resnorm,residual,exitflag,output,lambda,jacobian] = lsqcurvefit(___)
ci = nlparci(x,residual,'Jacobian',J);    %Returns 95% confidence interval
err = ((ci(:,2)-ci(:,1))./3.92);          %Standard error

Затем я вычислил стандартную ошибку, используя функцию fminunc, минимизировав сумму квадратных остатков. С помощью этого процесса можно получить матрицу гессиана. Матрица гессиана использовалась для определения стандартной ошибки, как показано ниже:

err = sqrt(diag(inv(Hessian)));           %Standard error

Проблема в том, что стандартные ошибки, которые я получаю от lsqcurvefit и fminunc, отличаются. Я не уверен, как поступить. Любая помощь будет оценена.

С уважением,

Vin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...