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

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м (Определение)
м (Ссылки)
 
(8 промежуточных версий не показаны.)
Строка 8: Строка 8:
-
::<tex> D_i = \frac{ \sum_{j=1}^n (\hat Y_j\ - \hat Y_{j(i)})^2 }{p \ \mathrm{MSE}} </tex>,
+
::<tex> D_i = \frac{ \sum_{j=1}^n (\hat Y_j\ - \hat Y_{j(i)})^2 }{p \ \mathrm{MSE}}, </tex>
где
где
Строка 22: Строка 22:
== Нахождение и удаление выбросов ==
== Нахождение и удаление выбросов ==
-
Существуют различные подходы к определению выбросов с помощью расстояния Кука. Наиболее распространенной эвристикой считается <tex> D_i > 4/n </tex>, где <tex>n</tex> — количество наблюдений в выборке.
+
Существуют различные подходы к определению выбросов с помощью расстояния Кука.
 +
 
 +
Самый простой способ нахождения это порог <tex> D_i > 1 </tex> <ref name="heij">Cook, R. Dennis; and Weisberg, Sanford (1982); Residuals and influence in regression, New York, NY: Chapman & Hall.</ref>
 +
 
 +
Наиболее распространенной эвристикой считается <tex> D_i > 4/n </tex>, где <tex>n</tex> — количество наблюдений в выборке. <ref name="two"> Bollen, Kenneth A.; and Jackman, Robert W. (1990); Regression diagnostics: An expository treatment of outliers and influential cases , in Fox, John; and Long, J. Scott (eds.); Modern Methods of Data Analysis (pp. 257-91). </ref>
-
 
== Пример использования ==
== Пример использования ==
-
[[Изображение:Kook.jpg|270px|thumb|Визуализация наблюдений с помощью расстояния Кука. Красным обозначен уровень 4/n, где n — количество наблюдений (n = 206).]]
+
[[Изображение:Cook.jpg|280px|thumb|Визуализация наблюдений с помощью расстояния Кука. Красным обозначен уровень 4/n, где n — количество наблюдений (n = 206).]]
Рассмотрим задачу по оценке [http://www.machinelearning.ru/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%28%D0%BA%D1%83%D1%80%D1%81_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9%2C_%D0%9A.%D0%92.%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D1%86%D0%BE%D0%B2%29/2013#.D0.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D1.82.D1.80.D0.BE.D0.BC.D0.B1.D0.BE.D0.BB.D0.B8.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B9_.D1.82.D0.B5.D1.80.D0.B0.D0.BF.D0.B8.D0.B8 эффективность тромболитической терапии]. В данной задаче собраны данные по 206 пациентам второго кардиологического отделения московской городской клинической больницы №25. Имеются результаты 14 анализов, а также 8 дополнительных признаков, описывающих пациента (пол, возраст, курение, наличие диабета и т.д.).
Рассмотрим задачу по оценке [http://www.machinelearning.ru/wiki/index.php?title=%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%28%D0%BA%D1%83%D1%80%D1%81_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9%2C_%D0%9A.%D0%92.%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D1%86%D0%BE%D0%B2%29/2013#.D0.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D1.82.D1.80.D0.BE.D0.BC.D0.B1.D0.BE.D0.BB.D0.B8.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B9_.D1.82.D0.B5.D1.80.D0.B0.D0.BF.D0.B8.D0.B8 эффективность тромболитической терапии]. В данной задаче собраны данные по 206 пациентам второго кардиологического отделения московской городской клинической больницы №25. Имеются результаты 14 анализов, а также 8 дополнительных признаков, описывающих пациента (пол, возраст, курение, наличие диабета и т.д.).
Строка 35: Строка 38:
* MATLAB: В версии 2013b и выше реализован отдельный класс для [http://www.mathworks.com/help/stats/generalizedlinearmodelclass.html обобщенной модели регрессии].
* MATLAB: В версии 2013b и выше реализован отдельный класс для [http://www.mathworks.com/help/stats/generalizedlinearmodelclass.html обобщенной модели регрессии].
Построив модель с помощью функции [http://www.mathworks.com/help/stats/fitglm.html#outputarg_mdl mdl = fitglm(X, y)], можем оценить для всех наблюдений расстояние Кука с помощью функций класса: mdl.Diagnostics.CooksDistance.
Построив модель с помощью функции [http://www.mathworks.com/help/stats/fitglm.html#outputarg_mdl mdl = fitglm(X, y)], можем оценить для всех наблюдений расстояние Кука с помощью функций класса: mdl.Diagnostics.CooksDistance.
 +
 +
* R: в пакете [http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stats-package.html stats] реализован метод для оценки расстояния Кука для уже настроенной модели cooks.distance(model, ...).
== Ссылки ==
== Ссылки ==
-
* Cook, R. Dennis (February 1977). [http://www.jstor.org/discover/10.2307/1268249?uid=3738032&uid=2&uid=4&sid=21103080796681 "Detection of Influential Observations in Linear Regression"].
+
<references />
-
* Cook, R. Dennis; and Weisberg, Sanford (1982); Residuals and influence in regression, New York, NY: Chapman & Hall
+
* Cook, R. Dennis (February 1977). [http://www.jstor.org/discover/10.2307/1268249?uid=3738032&uid=2&uid=4&sid=21103080796681 "Detection of Influential Observations in Linear Regression"].
* [http://www.mathworks.com/help/stats/generalizedlinearmodelclass.html GeneralizedLinearModel class]. MATLAB R2013b Documentation.
* [http://www.mathworks.com/help/stats/generalizedlinearmodelclass.html GeneralizedLinearModel class]. MATLAB R2013b Documentation.

Текущая версия

Расстояние Кука (Cook's distance) является широко используемым методом оценки влияния соответствующего наблюдения (элемента выборки) на уравнение регрессии. Эта величина показывает разницу между вычисленными коэффициентами уравнения регрессии и значениями, которые получились бы при исключении соответствующего наблюдения. В адекватной модели все расстояния Кука должны быть примерно одинаковыми; если это не так, то имеются основания считать, что соответствующее наблюдение (или наблюдения) смещает оценки коэффициентов регрессии.

Метод назван в честь американского ученого Р. Денниса Кука , который ввел данное понятие в 1977 году.

Содержание

Определение

Расстояние Кука оценивает эффект от удаления одного (рассматриваемого) наблюдения и вычисляется по следующей формуле:


 D_i =  \frac{ \sum_{j=1}^n (\hat Y_j\ - \hat Y_{j(i)})^2 }{p \ \mathrm{MSE}},

где

\hat Y_j — предсказание регрессионной модели, построенной по всей выборке, получаемое для j-ого наблюдения,

\hat Y_{j(i)} — предсказание регрессионной модели, построенной по выборке без i-ого наблюдения, получаемое для j-ого наблюдения,

p — количество параметров модели,

 \mathrm{MSE} — среднеквадратичная ошибка модели.

Нахождение и удаление выбросов

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

Самый простой способ нахождения это порог  D_i > 1 [1]

Наиболее распространенной эвристикой считается  D_i > 4/n , где n — количество наблюдений в выборке. [1]

Пример использования

Визуализация наблюдений с помощью расстояния Кука. Красным обозначен уровень 4/n, где n — количество наблюдений (n = 206).
Визуализация наблюдений с помощью расстояния Кука. Красным обозначен уровень 4/n, где n — количество наблюдений (n = 206).

Рассмотрим задачу по оценке эффективность тромболитической терапии. В данной задаче собраны данные по 206 пациентам второго кардиологического отделения московской городской клинической больницы №25. Имеются результаты 14 анализов, а также 8 дополнительных признаков, описывающих пациента (пол, возраст, курение, наличие диабета и т.д.). Построив уравнение регрессии и оценив расстояние Кука, мы можем визуализировать наблюдения и определить выбросы.

Реализации

Построив модель с помощью функции mdl = fitglm(X, y), можем оценить для всех наблюдений расстояние Кука с помощью функций класса: mdl.Diagnostics.CooksDistance.

  • R: в пакете stats реализован метод для оценки расстояния Кука для уже настроенной модели cooks.distance(model, ...).

Ссылки


Личные инструменты