В этом примере показано, как подогнать линейную сплайновую модель со смешанными эффектами.
Загрузите образцы данных.
load('mespline.mat');Это смоделированные данные.
Постройте график по сравнению с отсортированным .
[x_sorted,I] = sort(x,'ascend'); plot(x_sorted,y(I),'o')

Подгонка следующей модели линейной сплайновой регрессии со смешанными эффектами
++ϵi
где - узел, а - общее число узлов. Предположим, что startb2) start2).
Определите узлы.
k = linspace(0.05,0.95,100);
Определите матрицы проектирования.
X = [ones(1000,1),x]; Z = zeros(length(x),length(k)); for j = 1:length(k) Z(:,j) = max(X(:,2) - k(j),0); end
Поместите модель с изотропной ковариационной структурой для случайных эффектов.
lme = fitlmematrix(X,y,Z,[],'CovariancePattern','Isotropic');
Подгонка только модели с фиксированными эффектами.
X = [X Z]; lme_fixed = fitlmematrix(X,y,[],[]);
Выдержать сравнение lme_fixed и lme через моделируемый тест отношения правдоподобия.
compare(lme,lme_fixed,'NSim',500,'CheckNesting',true)
ans =
Simulated Likelihood Ratio Test: Nsim = 500, Alpha = 0.05
Model DF AIC BIC LogLik LRStat pValue
lme 4 170.62 190.25 -81.309
lme_fixed 103 113.38 618.88 46.309 255.24 0.68064
Lower Upper
0.63784 0.72129
Значение p указывает, что модель только с фиксированными эффектами не лучше, чем модель сплайновой регрессии со смешанными эффектами.
Постройте график подгоняемых значений из обеих моделей поверх исходных данных ответа.
R = response(lme); figure(); plot(x_sorted,R(I),'o', 'MarkerFaceColor',[0.8,0.8,0.8],... 'MarkerEdgeColor',[0.8,0.8,0.8],'MarkerSize',4); hold on F = fitted(lme); F_fixed = fitted(lme_fixed); plot(x_sorted,F(I),'b'); plot(x_sorted,F_fixed(I),'r'); legend('data','mixed effects','fixed effects','Location','NorthWest') xlabel('sorted x values'); ylabel('y'); hold off

На рисунке также видно, что модель со смешанными эффектами обеспечивает лучшее соответствие данным, чем модель только с фиксированными эффектами.