exponenta event banner

Подгонка сплайновой регрессии смешанных эффектов

В этом примере показано, как подогнать линейную сплайновую модель со смешанными эффектами.

Загрузите образцы данных.

load('mespline.mat');

Это смоделированные данные.

Постройте график y по сравнению с отсортированным x.

[x_sorted,I] = sort(x,'ascend');
plot(x_sorted,y(I),'o')

Figure contains an axes. The axes contains an object of type line.

Подгонка следующей модели линейной сплайновой регрессии со смешанными эффектами

yi=β1+β2xi+∑j=1Kbj (xi-kj) ++ϵi

где kj - j-й узел, а K - общее число узлов. Предположим, что bj∼N (0, startb2) и ϵ∼N (0, 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

Figure contains an axes. The axes contains 3 objects of type line. These objects represent data, mixed effects, fixed effects.

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