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

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

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

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

| | | |

Похожие темы