nlparci

Нелинейный параметр регрессии доверия интервалами

Синтаксис

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 лечит NaNs в resid или J как отсутствующие значения и игнорирует соответствующие наблюдения.

Расчет доверительного интервала действителен для систем, где длина resid превышает длину beta и J имеет полный ранг столбца. Когда J является плохо обусловленной, доверительные интервалы могут быть неточными.

Примеры

свернуть все

Предположим, что у вас есть данные, и вы хотите подгонять модель формы

yi=a1+a2exp(-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 = 3×1

    1.0153
    3.0229
    2.1070

Проверяйте, [1;3;2] ли находится в 95% доверительном интервале, используя якобианский аргумент в nlparci:

ci = nlparci(ahat,r,'Jacobian',J)
ci = 3×2

    0.9869    1.0438
    2.9401    3.1058
    1.9963    2.2177

Можно получить тот же результат с помощью ковариационного аргумента:

ci = nlparci(ahat,r,'covar',cov)
ci = 3×2

    0.9869    1.0438
    2.9401    3.1058
    1.9963    2.2177

См. также

|

Представлено до R2006a