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

Цель

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

Определение

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

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

где

  • y^j - j-е установленное значение отклика.

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

  • MSE - средняя квадратичная невязка.

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

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

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

где r i - i-й невязка, и h ii - i-е значение рычага.

Как

После подбора кривой модели 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')

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.

См. также

| | |

Похожие темы