ridge

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

Описание

пример

B = ridge(y,X,k) возвращает оценки коэффициентов для регрессионных моделей гребня данных предиктора X и ответ y. Каждый столбец B соответствует конкретному параметру гребня k. По умолчанию функция вычисляет B после центрирования и масштабирования предикторы имеют среднее 0 и стандартное отклонение 1. Поскольку модель не включает постоянный термин, не добавляйте столбец 1с к X.

пример

B = ridge(y,X,k,scaled) задает масштабирование для оценок коэффициентов в B. Когда scaled является 1 (по умолчанию), ridge не восстанавливает коэффициенты в исходной шкале данных. Когда scaled является 0, ridge восстанавливает коэффициенты в масштабе исходных данных. Для получения дополнительной информации см. «Масштабирование коэффициентов».

Примеры

свернуть все

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

Загрузите acetylene набор данных.

load acetylene

acetylene содержит наблюдения за переменными предиктора x1, x2, и x3и переменной отклика y.

Постройте график переменных предиктора друг против друга. Наблюдайте любую корреляцию между переменными.

plotmatrix([x1 x2 x3])

MATLAB figure

Для примера обратите внимание на линейную корреляцию между x1 и x3.

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

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

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

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

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

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

Прогнозируйте значения миль на галлон (MPG) с помощью регрессии хребта.

Загрузите carbig набор данных.

load carbig
X = [Acceleration Weight Displacement Horsepower];
y = MPG;

Разделите данные на обучающие и тестовые наборы.

n = length(y);
rng('default') % For reproducibility
c = cvpartition(n,'HoldOut',0.3);
idxTrain = training(c,1);
idxTest = ~idxTrain;

Найдите коэффициенты модели регрессии хребта (с k = 5).

k = 5;
b = ridge(y(idxTrain),X(idxTrain,:),k,0);

Предсказать MPG значения для тестовых данных с использованием модели.

yhat = b(1) + X(idxTest,:)*b(2:end);

Сравните предсказанные значения с фактическими значениями миль на галлон (MPG) с помощью ссылки строки.

scatter(y(idxTest),yhat)
hold on
plot(y(idxTest),y(idxTest))
xlabel('Actual MPG')
ylabel('Predicted MPG')
hold off

Figure contains an axes. The axes contains 2 objects of type scatter, line.

Входные параметры

свернуть все

Данные отклика, заданные как n-на-1 числовой вектор, где n - количество наблюдений.

Типы данных: single | double

Данные предиктора, заданные как n -by p числовая матрица. Строки X соответствуют n наблюдениям и столбцам X соответствуют p предикторам.

Типы данных: single | double

Параметры хребта, заданные как числовой вектор.

Пример: [0.2 0.3 0.4 0.5]

Типы данных: single | double

Флаг масштабирования, который определяет, оценивает ли коэффициент B восстанавливаются к шкале исходных данных, заданному как 0 или 1. Если scaled является 0, затем ridge выполняет это дополнительное преобразование. В этом случае B содержит p + 1 коэффициентов для каждого значения k, с первой строкой B соответствующий постоянному члену в модели. Если scaled является 1, затем программное обеспечение опускает дополнительное преобразование и B содержит p коэффициентов без постоянного коэффициента.

Выходные аргументы

свернуть все

Оценки коэффициентов, возвращенные как числовая матрица. Строки B соответствуют предикторам в X, и столбцы B соответствуют параметрам гребня k.

Если scaled является 1, затем B является p -by m матрицей, где m - количество элементов в k. Если scaled является 0, затем B является (p + 1) -by - m матрицей.

Подробнее о

свернуть все

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

Регрессия хребта является методом для оценки коэффициентов линейных моделей, которые включают линейно коррелированные предикторы.

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

β^=(XTX)1XTy

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

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

β^=(XTX+kI)1XTy

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

Масштабирование коэффициентов

Масштабирование оценок коэффициентов для гребневых регрессионых моделей зависит от значения scaled входной параметр.

Предположим, что параметр k хребта равен 0. Коэффициенты, возвращенные ridge, когда scaled равно 1, являются оценками b i1 в многолинейной модели

y<reservedrangesplaceholder2> <reservedrangesplaceholder1> = <reservedrangesplaceholder0> 11<reservedrangesplaceholder2> 1 +... + <reservedrangesplaceholder1> <reservedrangesplaceholder0>1<reservedrangesplaceholder2> <reservedrangesplaceholder1> + ε

где <reservedrangesplaceholder11> <reservedrangesplaceholder10> = (x i - <reservedrangesplaceholder7> <reservedrangesplaceholder6>) / <reservedrangesplaceholder5> <reservedrangesplaceholder4> - сосредоточенные и чешуйчатые предсказатели, y - <reservedrangesplaceholder2> <reservedrangesplaceholder1> - сосредоточенный ответ, и ε остаточный член. Можно переписать модель как

y = <reservedrangesplaceholder0> 00 + <reservedrangesplaceholder0> 10<reservedrangesplaceholder2> 1 +... + <reservedrangesplaceholder1> <reservedrangesplaceholder0>0<reservedrangesplaceholder2> <reservedrangesplaceholder1> + ε

с b00=μyi=1pbi1μiσi и bi0=bi1σi. Область b i0 условия соответствуют коэффициентам, возвращаемым ridge когда scaled равно 0.

В более общем случае, для любого значения k, если B1 = ridge(y,X,k,1), затем

       m = mean(X);
       s = std(X,0,1)';
       B1_scaled = B1./s;
       B0 = [mean(y)-m*B1_scaled; B1_scaled]

где B0 = ridge(y,X,k,0).

Совет

  • ridge лечит NaN значения в X или y как отсутствующие значения. ridge опускает наблюдения с отсутствующими значениями из регрессионной подгонки гребня.

  • В целом задайте scaled равно 1 для создания графиков, на которых коэффициенты отображаются в одной шкале. Смотрите Ridge Regression для примера, использующего график трассировки хребта, где коэффициенты регрессии отображаются как функция от параметра хребта. Делая предсказания, задайте scaled равно 0. Для получения примера смотрите Предсказание значений с использованием регрессии гребня.

Альтернативная функциональность

  • Хребет, лассо и упругая сетевая регуляризация - все это методы для оценки коэффициентов линейной модели с одновременной штрафовкой больших коэффициентов. Вид штрафа зависит от метода (для получения дополнительной информации см. «Подробнее»). Чтобы выполнить регуляризацию лассо или упругой сетки, используйте lasso вместо этого.

  • Если у вас есть высокомерные полные или разреженные данные предиктора, вы можете использовать fitrlinear вместо ridge. При использовании fitrlinear, задайте 'Regularization','ridge' аргумент пары "имя-значение". Установите значение 'Lambda' аргумент пары "имя-значение" для вектора параметров хребта по вашему выбору. fitrlinear возвращает обученную линейную модель Mdl. Вы можете получить доступ к оценкам коэффициентов, хранящимся в Beta свойство модели при помощи Mdl.Beta.

Ссылки

[1] Хёрл, А. Э. и Р. У. Кеннард. «Регрессия хребта: предвзятая оценка неортогональных проблем». Технометрия. Том 12, № 1, 1970, с. 55-67.

[2] Хёрл, А. Э. и Р. У. Кеннард. Ridge Regression: Applications to Nonorthogonal Problems (неопр.) (недоступная ссылка). Технометрия. Том 12, № 1, 1970, с. 69-82.

[3] Marquardt, D. W. «Обобщенные инверсы, регрессия хребта, смещенная линейная оценка и нелинейная оценка». Технометрия. Том 12, № 3, 1970, стр. 591-612.

[4] Marquardt, D. W., and R. D. Snee. «Регрессия хребта на практике». Американский статистик. Том 29, № 1, 1975, стр. 3-20.

См. также

| | |

Представлено до R2006a