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 содержит наблюдения для переменных предикторов x1x2 , и 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 + ε

с b00=μyi=1pbi1μiσi и bi0=bi1σi. 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
Для просмотра документации необходимо авторизоваться на сайте