Гребенчатая регрессия

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

Содействующие оценки для моделей, описанных в Линейной регрессии, полагаются на независимость образцовых условий. Когда условия коррелируются и столбцы матрицы проекта, X имеет аппроксимированную линейную зависимость, матрица (X T X) –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

Отметьте корреляцию между 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')

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

Смотрите также

Похожие темы