exponenta event banner

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

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

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

β ^ = (XTX) 1XTy

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

Риджевая регрессия решает проблему, оценивая коэффициенты регрессии с использованием

β ^ = (XTX + kI) − 1XTy

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

Функция 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 гребня.

См. также

| | | |

Связанные темы