Этот пример показов аппроксимацию линейного сплайна модели со смешанными эффектами.
Загрузите выборочные данные.
load('mespline.mat');
Это моделируемые данные.
График от отсортированного .
[x_sorted,I] = sort(x,'ascend'); plot(x_sorted,y(I),'o')
Подгонка следующей модели линейной регрессии сплайна с смешанными эффектами
где является 1й узел, и - общее количество узлов. Предположим, что и .
Определите узлы.
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
-значение указывает, что модель только с фиксированными эффектами не лучше подгонки, чем модель регрессии сплайна со смешанными эффектами.
Постройте график подобранных значений из обеих моделей поверх исходных данных отклика.
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
На рисунке также видно, что модель смешанных эффектов обеспечивает лучшую подгонку к данным, чем модель только с фиксированными эффектами.