пятница, 12 декабря 2025 г.

Расчет доверительного интервала параметров и предсказательного интервала для нелинейной регрессии

 На одном из предыдущих занятий было рассмотрено получение параметров нединейной функции, фитующей экпериментальнеы данные в смысле наименьших квадратов. Однако, использованное там примение функции k = lsqcurvefit(demodel,k0,SOC1dn(ind),Vd1(ind)); возвращало только сами значения параметров k, в то время как более статистически-убедительное их представление должно сопровождаться доверительным интервалов при заданном уровне достоверности. Помимо этого, имеет смысл также указывать и интервал, в который могут попасть предсказания использованной модели, принимая во внимание данные доверительные интервалы параметров. 


В GNU Octave (это же работает и в MATLAB, хотя там можно использовать и готовые функции fit и predint) для этого следует применять расширенный надор выходных параметров функции lsqcurvefit (здесь и далее будут приведены долько дополнения к предыдущему коду, все остальные имена переменных и промежудточные вычисления - те же.):

[k, resnorm, residual, exitflag, output, lambda,jacobian] = lsqcurvefit(demodel,k0,SOC1dn(ind),Vd1(ind),[],[]);

Здесь существенно, что в аргумене функции необходими как минимум добавить еще два входных аргумента - верхние и нижние границы параметров; если нет необходимости их задвать конкретными числами, то можно просто поставить пустые переменные [], как сделано выше. 

Расширенный набор выходных параметров (их матемаматичсекий смысл см. по ссылке) используется для расчета следующих вспомогательных величин:

Количество точек фитуемых данных:

n = length(ind);

Число параметров модели:

p=length(k);

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

df = n-p;

Статистическая значимость, выраженная числом от 0 до 1  (т.е., например, 0.05 для 95% доверительных интервалов)

alpha = 0.05;

Критическое значение распределения Стьюдента при данных статистической значимости и числе степеней свободы:

t_crit = tinv(1 - alpha/2, df);

Среднеквадратичное отклонение:

MSE = resnorm / (n - p);

Ковариационная матрица параметров:

CovB = MSE * inv(jacobian' * jacobian);

Стандартная ошибка:

SE = sqrt(diag(CovB))';

Значения этих величин дают искомые нижную и верхнюю границы доверительного интервала для найденных параметров при заданном уровне надежности:

CI_lower = k - t_crit * SE;

CI_upper = k + t_crit * SE;

В частности, если сами параметры, найденные в смысле наилучшего приближения в среднеквадратичном смысле равны

,
то, более точно, они лежат в границах от 


до


Кроме доверительных интервалов для параметров, можно рассчитать и доверительные интервалы для точек, рассчитываемых по использованной модели (здесь расчет для тех же точек, в которых изерялись экпериментальные данные):

delta_conf = zeros(size(ind));

for i = 1:length(ind)

    % Ji - якобиан для i-й точки наблюдения

    Ji = jacobian(i, :);

    se_fit = sqrt(MSE * (Ji * CovB * Ji'));

    delta_conf(i) = t_crit * se_fit;

end

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

delta_pred = delta_conf + t_crit * sqrt(MSE);

При построении графика он задает коридор линий выше и ниже модельной кривой:

plot(SOC1dn(ind),demodel(k,SOC1dn(ind)),'-','LineWidth',1)

hold on

plot(SOC1dn(ind),demodel(k,SOC1dn(ind))- delta_pred,'--','LineWidth',1,'color','red')

plot(SOC1dn(ind),demodel(k,SOC1dn(ind))+ delta_pred,'--','LineWidth',1,'color','red')

Результрующий график:


На нижней панели представлен увеличенный кусок графика, который показывает, что экспериментальные точки действительно попадаеют в предстказательный интервал данной модели на 95% уровне статистической значимости. 

Более подробное обсуждение сущности доверительных интервалов при нелинейной регресии, а также другие возможные варианты их определения (более подходящие, например, в случае, когда интервал несимметричен), можно найти в статье:

  • O’Brien T. E., Silcox J. W. Nonlinear Regression Modelling: A Primer with Applications and Caveats. Bulletin of Mathematical Biology. 2024. 86 (2024) 40 [ссылка].