exponenta event banner

Расстояние Кука

Цель

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

Определение

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

Di=∑j=1n (y ^ j y ^ j (i)) 2p MSE,

где

  • y ^ j - j-ое совпадающее значение отклика.

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

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

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

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

Di = ri2p MSE (hii (1 hii) 2),

где ri - i-й остаток, а hii - i-е значение рычага.

Как сделать

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

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

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

  • Постройте график значений расстояния Кука.

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

Определение отклонений с помощью расстояния Кука

В этом примере показано, как использовать Cook's Distance для определения отклонений в данных.

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

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

Подгонка модели линейной регрессии.

mdl = fitlm(X,y);

Постройте график значений расстояния Кука.

plotDiagnostics(mdl,'cookd')

Figure contains an axes. The axes with title Case order plot of Cook's distance contains 2 objects of type line. These objects represent Cook's distance, Reference Line.

Пунктирная линия на рисунке соответствует рекомендуемому пороговому значению, 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] Нетер, Дж., М. Х. Кутнер, С. Дж. Нахтсхайм и В. Вассерман. Примененные линейные статистические модели. 4-й ред. Чикаго: Ирвин, 1996.

См. также

| | |

Связанные темы