Содействующие оценки для моделей, описанных в Линейной регрессии, используют независимость терминов модели. Когда термины коррелируются и столбцы матрицы проекта, X имеет аппроксимированную линейную зависимость, матрица (XTX–1 становится близко к сингулярному. В результате оценка наименьших квадратов
становится очень чувствительным к случайным ошибкам в наблюдаемом ответе y, производя большое отклонение. Эта ситуация multicollinearity может возникнуть, например, когда данные собраны без экспериментального плана.
Ridge regression решает проблему путем оценки использования коэффициентов регрессии
где 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
период взаимодействия изменяет знак в значении гребенчатого параметра .
lasso
| lassoglm
| fitrlinear
| lassoPlot
| ridge