Расстояние повара

Цель

Расстояние Кука является масштабированным изменением в подходящих значениях, которое полезно для идентификации выбросов в значениях X (наблюдения для переменных предикторов). Расстояние Кука показывает влияние каждого наблюдения относительно подходящих значений ответа. Наблюдение с расстоянием Кука, больше, чем три раза расстояние среднего Кука, может быть выбросом.

Определение

Каждым элементом в расстоянии Повара D является нормированное изменение в подходящих значениях ответа из-за удаления наблюдения. Расстояние Повара наблюдения i

Di=j=1n(y^jy^j(i))2pMSE,

где

  • y^j j th адаптированное значение ответа.

  • y^j(i) j th адаптированное значение ответа, где подгонка не включает наблюдение i.

  • MSE является среднеквадратической ошибкой.

  • p является количеством коэффициентов в модели регрессии.

Расстояние повара алгебраически эквивалентно следующему выражению:

Di=ri2pMSE(hii(1hii)2),

где r, i является i th невязка и h ii, является i th значение рычагов.

Как к

После подбора кривой модели mdl, например, можно использовать fitlm или stepwiselm к:

  • Отобразите значения расстояния Повара путем индексации в свойство с помощью записи через точку.

    mdl.Diagnostics.CooksDistance
    CooksDistance n-by-1 вектор-столбец в Diagnostics таблица LinearModel объект.

  • Постройте значения расстояния Повара.

    plotDiagnostics(mdl,'cookd')
    Для получения дополнительной информации смотрите plotDiagnostics функция LinearModel объект.

Определите выбросы Используя расстояние повара

В этом примере показано, как использовать Расстояние Повара, чтобы определить выбросы в данных.

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

load hospital
X = double(hospital(:,2:5));
y = hospital.BloodPressure(:,1);

Подбирайте модель линейной регрессии.

mdl = fitlm(X,y);

Постройте значения расстояния Повара.

plotDiagnostics(mdl,'cookd')

Пунктирная линия в фигуре соответствует рекомендуемому пороговому значению, 3*mean(mdl.Diagnostics.CooksDistance). График имеет некоторые наблюдения со значениями расстояния Кука, больше, чем пороговое значение, которое для этого примера равняется 3* (0.0108) = 0.0324. В частности, существуют значения расстояния двух Кука, которые относительно выше, чем другие, которые превышают пороговое значение. Вы можете хотеть найти и не использовать их из ваших данных и восстановить вашу модель.

Найдите наблюдения со значениями расстояния Кука, которые превышают пороговое значение.

find((mdl.Diagnostics.CooksDistance)>3*mean(mdl.Diagnostics.CooksDistance))
ans = 10×1

     2
    13
    28
    44
    58
    70
    71
    84
    93
    95

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

find((mdl.Diagnostics.CooksDistance)>5*mean(mdl.Diagnostics.CooksDistance))
ans = 2×1

     2
    84

Ссылки

[1] Neter, J., М. Х. Катнер, К. Дж. Нахцхайм и В. Вассерман. Прикладные Линейные Статистические модели. 4-й редактор Чикаго: Ирвин, 1996.

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

| | |

Похожие темы