Регрессия хребта

Введение в регрессию хребта

Оценки коэффициентов для моделей, описанных в Linear Regression, основаны на независимости членов модели. Когда условия коррелируются, и столбцы матрицы проекта X иметь приблизительную линейную зависимость, матрица (XTX)–1 становится близкой к сингулярной. В результате оценка методом наименьших квадратов

β^=(XTX)1XTy

становится высокочувствительным к случайным ошибкам в наблюдаемой y отклика, создавая большое отклонение. Такая ситуация multicollinearity может возникнуть, например, когда данные собираются без экспериментального проекта.

Ridge regression решает проблему путем оценки коэффициентов регрессии с помощью

β^=(XTX+kI)1XTy

где k - ridge parameter, а I - тождества матрица. Небольшие положительные значения k улучшают обусловленность задачи и уменьшают отклонение оценок. Несмотря на смещение, уменьшенное отклонение оценок гребня часто приводит к меньшей средней квадратной ошибке по сравнению с оценками методом наименьших квадратов.

Функция Statistics and Machine Learning Toolbox™ ridge осуществляет регрессию гребня.

Регрессия хребта

Этот пример показывает, как выполнить регрессию гребня.

Загрузите данные в acetylene.mat, с наблюдениями переменных предиктора x1, x2, x3и переменной отклика y.

load acetylene

Постройте график переменных предиктора друг против друга.

subplot(1,3,1)
plot(x1,x2,'.')
xlabel('x1')
ylabel('x2')
grid on
axis square

subplot(1,3,2)
plot(x1,x3,'.')
xlabel('x1')
ylabel('x3')
grid on
axis square

subplot(1,3,3)
plot(x2,x3,'.')
xlabel('x2')
ylabel('x3')
grid on
axis square

Figure contains 3 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line. Axes 3 contains an object of type line.

Обратите внимание на корреляцию между x1 и другие две переменные предиктора.

Использование ridge и x2fx вычислить оценки коэффициентов для многолинейной модели с терминами взаимодействия, для области значений параметров гребня.

X = [x1 x2 x3];
D = x2fx(X,'interaction');
D(:,1) = []; % No constant term
k = 0:1e-5:5e-3;
betahat = ridge(y,D,k);

Постройте график трассировки гребня.

figure
plot(k,betahat,'LineWidth',2)
ylim([-100 100])
grid on 
xlabel('Ridge Parameter') 
ylabel('Standardized Coefficient') 
title('{\bf Ridge Trace}') 
legend('x1','x2','x3','x1x2','x1x3','x2x3')

Figure contains an axes. The axes with title {\bf Ridge Trace} contains 6 objects of type line. These objects represent x1, x2, x3, x1x2, x1x3, x2x3.

Оценки стабилизируются справа от графика. Обратите внимание, что коэффициент x2x3 термин взаимодействия изменяет знак на значении параметра хребта 5×10-4.

См. также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте