гребень

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

Синтаксис

B = ridge(y,X,k)
B = ridge(y,X,k,scaled)

Описание

пример

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])

Например, отметьте линейную корреляцию между 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')

Оценки стабилизировались справа от графика. Обратите внимание на то, что коэффициент периода взаимодействия 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

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

свернуть все

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

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

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

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

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

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

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

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

β^=(XTX)1XTy

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

Гребенчатая регрессия решает проблему мультиколлинеарности путем оценки использования коэффициентов регрессии

β^=(XTX+kI)1XTy

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

Содействующее масштабирование

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

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

y μ y = b 11z1 +... + b p 1zp + ε

где z, i = (x iμ i)i является и масштабированными предикторами в центре, yμ y, является ответом в центре, и ε является остаточным членом. Можно переписать модель как

y = b 00 + b 10x1 +... + b p 0xp + ε

с и. i b 0 условий соответствуют коэффициентам, возвращенным 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 производить графики, где коэффициенты отображены в той же шкале. Смотрите Гребенчатую Регрессию для примера с помощью гребенчатого графика трассировки, где коэффициенты регрессии отображены как функция гребенчатого параметра. Когда создание прогнозов, набор scaled равняется 0. Для примера смотрите, Предсказывают Значения Используя Гребенчатую Регрессию.

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

  • Гребень, лассо и эластичная сетевая регуляризация являются всеми методами для оценки коэффициентов линейной модели при наложении штрафа на большие коэффициенты. Тип штрафа зависит от метода (дополнительную информацию см. в Определениях). Чтобы выполнить лассо или эластичную сетевую регуляризацию, используйте lasso вместо этого.

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

Ссылки

[1] Hoerl, A. E. и Р. В. Кеннард. “Гребенчатая Регрессия: Смещенная Оценка для Неортогональных проблем”. Технометрики. Издание 12, № 1, 1970, стр 55–67.

[2] Hoerl, A. E. и Р. В. Кеннард. “Гребенчатая Регрессия: Приложения к Неортогональным проблемам”. Технометрики. Издание 12, № 1, 1970, стр 69–82.

[3] Marquardt, D. W. “Обобщенные Инверсии, Гребенчатая Регрессия, Смещенная Линейная Оценка и Нелинейная Оценка”. Технометрики. Издание 12, № 3, 1970, стр 591–612.

[4] Marquardt, D. W. и Р. Д. Сни. “Гребенчатая Регрессия на практике”. Американский Статистик. Издание 29, № 1, 1975, стр 3–20.

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

| | |

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