exponenta event banner

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 - отклики,

Запишите дескриптор функции, представляющий модель:

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