Нелинейные доверительные интервалы параметра регрессии
ci = nlparci(beta,resid,'covar',sigma)
ci = nlparci(beta,resid,'jacobian',J)
ci = nlparci(...,'alpha',alpha)
ci = nlparci(beta,resid,'covar',sigma)
возвращает 95% доверительных интервалов, ci
для параметра нелинейного метода наименьших квадратов оценивает beta
. Прежде, чем вызвать nlparci
, используйте nlinfit
, чтобы соответствовать нелинейной модели регрессии и добраться, коэффициент оценивает beta
, невязки resid
и оцененная содействующая ковариационная матрица sigma
.
ci = nlparci(beta,resid,'jacobian',J)
альтернативный синтаксис, который также вычисляет 95% доверительных интервалов. J
является якобианом, вычисленным nlinfit
. Если опция 'robust'
используется с nlinfit
, используйте вход 'covar'
, а не вход 'jacobian'
так, чтобы необходимый параметр sigma
принял устойчивый подбор кривой во внимание.
ci = nlparci(...,'alpha',alpha)
возвращает доверительные интервалы % 100(1-alpha)
.
nlparci
обрабатывает NaN
s в resid
или J
как отсутствующие значения, и игнорирует соответствующие наблюдения.
Вычисление доверительного интервала допустимо для систем, где длина resid
превышает длину beta
, и J
имеет полный ранг столбца. Когда J
плохо обусловлен, доверительные интервалы могут быть неточными.
Предположим, что вы имеете данные и хотите подобрать модель формы
yi = a 1 + a 2exp (–a3xi) + εi.
Здесь ai является параметрами, которые вы хотите оценить, xi точки данных, yi ответы, и εi является шумовыми условиями.
Запишите указатель на функцию, который представляет модель:
mdl = @(a,x)(a(1) + a(2)*exp(-a(3)*x));
Сгенерируйте синтетические данные с параметрами a
= [1;3;2]
с точками данных x
, распределенными экспоненциально с параметром 2
и нормально распределенный шум со стандартным отклонением 0.1
:
rng(9845,'twister') % for reproducibility a = [1;3;2]; x = exprnd(2,100,1); epsn = normrnd(0,0.1,100,1); y = mdl(a,x) + epsn;
Соответствуйте модели к данным, начинающим с произвольного предположения a0 = [2;2;2]
:
a0 = [2;2;2]; [ahat,r,J,cov,mse] = nlinfit(x,y,mdl,a0); ahat ahat = 1.0153 3.0229 2.1070
Проверяйте, является ли [1;3;2]
в 95%-м доверительном интервале с помощью якобиевского аргумента в nlparci
:
ci = nlparci(ahat,r,'Jacobian',J) ci = 0.9869 1.0438 2.9401 3.1058 1.9963 2.2177
Можно получить тот же результат с помощью аргумента ковариации:
ci = nlparci(ahat,r,'covar',cov) ci = 0.9869 1.0438 2.9401 3.1058 1.9963 2.2177