robustfit

Устойчивая регрессия

Синтаксис

b = robustfit(X,y)
b = robustfit(X,y,wfun,tune)
b = robustfit(X,y,wfun,tune,const)
[b,stats] = robustfit(...)

Описание

b = robustfit(X,y) возвращается (p + 1)-by-1 векторный b содействующих оценок для устойчивой полилинейной регрессии ответов в y на предикторах в X. X является n-by-p матрицей p предикторов при каждом из n наблюдений. y является n-1 вектором наблюдаемых ответов. По умолчанию алгоритм использует итеративно повторно взвешенные наименьшие квадраты с bisquare функцией взвешивания.

Примечание

По умолчанию robustfit добавляет первый столбец 1 с к X, соответствуя постоянному члену в модели. Не вводите столбец 1 с непосредственно в X. Можно изменить поведение по умолчанию robustfit с помощью входа const, ниже.

robustfit обрабатывает NaN s в X или y как отсутствующие значения, и удаляет их.

b = robustfit(X,y,wfun,tune) задает функцию взвешивания wfun. tune является настройкой, постоянной, который разделен на вектор невязок перед вычислительными весами.

Функция взвешивания wfun является одним из значений, описанных в этой таблице. Значением по умолчанию является 'bisquare'.

Функция весаОписаниеЗначение по умолчанию, настраивающееся постоянный
'andrews'w = (abs(r)<pi) .* sin(r) ./ r1.339
'bisquare'w = (abs(r)<1) .* (1 - r.^2).^2 (также названный biweight)4.685
'cauchy'w = 1 ./ (1 + r.^2)2.385
'fair'w = 1 ./ (1 + abs(r))1.400
'huber'w = 1 ./ max(1, abs(r))1.345
'logistic'w = tanh(r) ./ r1.205
'ols'Обычные наименьшие квадраты (никакая функция взвешивания)'none'
'talwar'w = 1 * (abs(r)<1)2.795
'welsch'w = exp(-(r.^2))2.985
указатель на функциюПользовательская функция веса, которая принимает векторный r масштабированных невязок и возвращает вектор весов тот же размер как r1

Если tune не задан, robustfit использует настраивающее значение значения по умолчанию, показанное в таблице. Настраивающие константы значения по умолчанию встроенных функций веса дают содействующие оценки, которые приблизительно на 95% более статистически эффективны, чем обычные оценки наименьших квадратов, если ответ имеет нормальное распределение без выбросов. Уменьшение настраивающихся постоянных увеличений подавление присвоенного к большим невязкам; увеличение настраивающихся постоянных уменьшений подавление присвоенного к большим невязкам.

Значение r в функциях веса

r = resid/(tune*s*sqrt(1-h))

откуда resid является вектором невязок предыдущей итерации, h является вектором значений рычагов от подгонки наименьших квадратов, и s является оценкой стандартного отклонения остаточного члена, данного

s = MAD/0.6745

Здесь MAD является средним абсолютным отклонением невязок от их медианы. Постоянные 0.6745 делают оценку несмещенной для нормального распределения. Если существуют p столбцы в X, самые маленькие p абсолютные отклонения исключены при вычислении медианы.

b = robustfit(X,y,wfun,tune,const) средства управления, будет ли модель включать постоянный термин. const является 'on', чтобы включать постоянный термин (значение по умолчанию), или 'off', чтобы не использовать его. Когда const является 'on', robustfit добавляет первый столбец 1 с к X, и b становится (p + 1)-by-1 вектор. Когда const является 'off', robustfit не изменяет X, затем b является p-by-1 вектор.

[b,stats] = robustfit(...) возвращает структуру stats, поля которого содержат диагностическую статистику от регрессии. Поля stats:

  • ols_s — Оценка сигмы (RMSE) от обычных наименьших квадратов

  • robust_s — Устойчивая оценка сигмы

  • mad_s — Оценка сигмы, вычисленной с помощью среднего абсолютного отклонения невязок от их медианы; используемый для масштабирования невязок во время итеративного подбора кривой

  • s Итоговая оценка сигмы, больший из robust_s и взвешенное среднее ols_s и robust_s

  • resid — Невязка

  • rstud — Невязка Studentized (см. regress для получения дополнительной информации),

  • se — Стандартная погрешность содействующих оценок

  • covb — Предполагаемая ковариационная матрица для содействующих оценок

  • coeffcorr — Предполагаемая корреляция содействующих оценок

  • t Отношение b к se

  • p p-значения для t

  • w Вектор весов для устойчивой подгонки

  • R R включают разложение QR X

  • dfe — Степени свободы для ошибки

  • h Вектор значений рычагов для подгонки наименьших квадратов

Функция robustfit оценивает ковариационную матрицу отклонения содействующих оценок с помощью inv(X'*X)*stats.s^2. Стандартные погрешности и корреляции выведены от этой оценки.

Примеры

свернуть все

Сгенерируйте данные с трендом y = 10 - 2* x, затем измените одно значение, чтобы моделировать выброс.

x = (1:10)';
rng default; % For reproducibility
y = 10 - 2*x + randn(10,1);
y(10) = 0;

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

bls = regress(y,[ones(10,1) x])
bls = 2×1

    7.8518
   -1.3644

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

brob = robustfit(x,y)
brob = 2×1

    8.4504
   -1.5278

Создайте график рассеивания данных вместе с подгонками.

scatter(x,y,'filled'); grid on; hold on
plot(x,bls(1)+bls(2)*x,'r','LineWidth',2);
plot(x,brob(1)+brob(2)*x,'g','LineWidth',2)
legend('Data','Ordinary Least Squares','Robust Regression')

Устойчивая подгонка меньше под влиянием выброса, чем подгонка наименьших квадратов.

Ссылки

[1] DuMouchel, W. H. и Ф. Л. О'Брайен. “Интегрируя Устойчивую Опцию в Вычислительную среду Регрессии кратного”. Информатика и Статистика: Продолжения 21-го Симпозиума по Интерфейсу. Александрия, ВА: американская Статистическая Ассоциация, 1989.

[2] Голландия, P. W. и Р. Э. Велш. “Устойчивая Регрессия Используя Итеративно Перевзвешенные Наименьшие квадраты”. Коммуникации в Статистике: Теория и Методы, A6, 1977, стр 813–827.

[3] Хубер, P. J. Устойчивая статистика. Хобокен, NJ: John Wiley & Sons, Inc., 1981.

[4] Улица, J. O. Р. Дж. Кэрролл и Д. Рапперт. “Примечание по Вычислению Устойчивых Оценок Регрессии через Итеративно Перевзвешенные Наименьшие квадраты”. Американский Статистик. Издание 42, 1988, стр 152–154.

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

|

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