Что такое девианс? (конкретно в CART / rpart)


45

Что такое «отклонение», как оно рассчитывается и как его используют в различных областях статистики?

В частности, меня лично интересует его использование в CART (и его реализация в rpart в R).

Я спрашиваю об этом, потому что в вики-статье, похоже, чего-то не хватает, и ваши идеи будут приветствоваться.

Ответы:


48

Девианс и GLM

Формально можно рассматривать отклонение как своего рода расстояние между двумя вероятностными моделями; в контексте GLM это больше логарифмического отношения правдоподобия между двумя вложенными моделями где - «меньшая» модель; то есть линейное ограничение на параметры модели (см. лемму Неймана – Пирсона ), как сказал @suncoolsu. Как таковой, он может быть использован для сравнения моделей . Это также можно рассматривать как обобщение RSS, используемого в оценке OLS (ANOVA, регрессия), поскольку оно обеспечивает меру соответствия модели, которая оценивается, по сравнению с нулевой моделью (только перехват). Это работает с LM тоже:1/00

> x <- rnorm(100)
> y <- 0.8*x+rnorm(100)
> lm.res <- lm(y ~ x)

Остатки SS (RSS) вычисляются как , который легко получить как:ε^tε^

> t(residuals(lm.res))%*%residuals(lm.res)
         [,1]
[1,] 98.66754

или из (нескорректированного)R2

> summary(lm.res)

Call:
lm(formula = y ~ x)

(...)

Residual standard error: 1.003 on 98 degrees of freedom
Multiple R-squared: 0.4234, Adjusted R-squared: 0.4175 
F-statistic: 71.97 on 1 and 98 DF,  p-value: 2.334e-13 

поскольку где - полная дисперсия. Обратите внимание, что он непосредственно доступен в таблице ANOVA, напримерR2=1RSS/TSSTSS

> summary.aov(lm.res)
            Df Sum Sq Mean Sq F value    Pr(>F)    
x            1 72.459  72.459  71.969 2.334e-13 ***
Residuals   98 98.668   1.007                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Теперь посмотрим на отклонение:

> deviance(lm.res)
[1] 98.66754

Фактически, для линейных моделей отклонение равно RSS (вы можете вспомнить, что оценки OLS и ML в таком случае совпадают).

Девианс и КОРЗИНА

Мы можем рассматривать CART как способ выделения уже помеченных индивидов в произвольные классы (в контексте классификации). Деревья могут рассматриваться как обеспечивающие вероятностную модель для индивидуального членства в классе. Итак, на каждом узле мы имеем распределение вероятностей по классам. Здесь важно то, что листья дерева дают нам случайную выборку из полиномиального распределения, заданного . Таким образом, мы можем определить отклонение дерева как сумму по всем листамnipiknikpikD

Di=2kniklog(pik),

после обозначений Venables и Рипли ( MASS , Springer 2002, 4-е изд.). Если у вас есть доступ к этой важной ссылке для пользователей R (IMHO), вы можете самостоятельно проверить, как такой подход используется для разделения узлов и подгонки дерева к наблюдаемым данным (стр. 255 и далее); в основном, идея заключается в том , чтобы свести к минимуму путем обрезки дерева, , где есть число узлов в дереве . Здесь мы признаем компромисс стоимости и сложности . Здесь эквивалентно концепции примеси узла (т. Е. Неоднородности распределения в данном узле), основанной на измерении энтропии или выигрыша информации, или на известном индексе Джини, определяемом какD+α#(T)#(T)TД 1 - Σ к р 2 я кD1kpik2 (неизвестные пропорции оцениваются из пропорций узлов).

С деревом регрессии идея очень похожа, и мы можем осмыслить отклонение как сумму квадратов, определенных для индивидов :j

Di=j(yjμi)2,

суммируется по всем листьям. Здесь вероятностная модель, которая рассматривается в каждом листе, представляет собой гауссовский . Цитируя Venables и Ripley (стр. 256), « - это обычное масштабированное отклонение для гауссовой GLM. Однако распределение во внутренних узлах дерева представляет собой смесь нормальных распределений, и поэтому подходит только для листьев. Процесс построения дерева следует рассматривать как иерархическое уточнение моделей вероятности, очень похожее на прямой выбор переменных в регрессии ". Раздел 9.2 предоставляет дополнительную подробную информацию о реализации, но вы уже можете посмотреть на функцию дляN(μi,σ2)DDirpartresiduals()rpart объект, где «остатки отклонения» вычисляются как квадратный корень из минус двойного логарифма подобранной модели.

Введение в рекурсивное разбиение с использованием процедур rpart , выполненное Аткинсоном и Терно, также является хорошим началом. Для более общего обзора (в том числе мешков), я бы порекомендовал


1
+1 хороший ответ chl, который, как вы говорите, дополняет мой, так что никаких проблем нет. Очень красиво написано.
Восстановить Монику - Дж. Симпсон

Одна небольшая вещь - вероятно, не лучше использовать lm.fitв вашем примере, так как это имя рабочей лошади позади lm.
Восстановить Монику - Дж. Симпсон

@ Гавин О, да, все верно. Спасибо, что напомнили мне, что я часто делаю эту ошибку ...
chl

3
Только одно замечание: для линейной регрессии отклонение равно RSS, поскольку допущение нормальности ошибок подразумевает, что RSS совпадает со статистикой теста LR, что дополнительно подразумевает, что отклонение обычно распределяется независимо от асимптотики . Это всего лишь расширение (я думаю) краткого комментария гл.
Suncoolsu

@suncoolsu Если речь идет о моем комментарии об оценках ML и OLS, то я имел в виду «принятие гауссовского распределения» для (то есть в линейных моделях). Ваш комментарий приветствуется. εi
хл

25

Возможно, будет немного понятнее, если мы подумаем об идеальной модели с таким количеством параметров, как наблюдения, чтобы она объясняла все различия в отклике. Это насыщенная модель. Отклонение просто измеряет разницу в «подгонке» модели-кандидата и модели насыщенности.

В дереве регрессии насыщенной моделью будет та, в которой будет столько конечных узлов (листьев), сколько наблюдений, чтобы она идеально соответствовала отклику. Отклонение от более простой модели может быть вычислено как остаточные суммы квадратов узлов, суммированные по всем узлам. Другими словами, сумма квадратов различий между прогнозируемыми и наблюдаемыми значениями. Это та же самая ошибка (или отклонение), которая используется в регрессии наименьших квадратов.

Для дерева классификации остаточные суммы квадратов не являются наиболее подходящей мерой несоответствия. Вместо этого есть альтернативная мера отклонения, плюс можно построить деревья, минимизирующие меру энтропии или индекс Джини. Последний по умолчанию в rpart. Индекс Джини рассчитывается как:

Di=1k=1Kpik2

где - наблюдаемая доля класса в узле . Эта мера суммируется для всех узлов терминала в дереве, чтобы получить отклонение для модели подобранного дерева. k i ipikkii


(+1) Извините, мой пост пришел позже, а я не заметил вашего. Поскольку я думаю, что они не слишком сильно пересекаются, я оставлю свои, если вы не возражаете.
CHL

Таким образом, отклонение является мерой соответствия, верно? AFAIK, в регрессии, у нас есть некоторая статистика (например, RSS, ), чтобы измерить подходящих людей; и в классификации мы могли бы использовать коэффициент ошибочной классификации. Я прав? R2
авокадо

11

Отклонение представляет собой статистику отношения правдоподобия для проверки нулевой гипотезы, которую придерживается модель, против общей альтернативы (то есть насыщенной модели). Для некоторых пуассоновских и биномиальных GLM количество наблюдений остается фиксированным по мере увеличения размера отдельных подсчетов. Тогда у отклонения есть асимптотическое нулевое распределение хи-квадрат . Степени свободы = N - p, где p - количество параметров модели; т. е. оно равно числу свободных параметров в насыщенных и ненасыщенных моделях. Затем отклонение обеспечивает тест на соответствие модели.N

Deviance=2[L(μ^|y)L(y|y)]

Тем не менее, в большинстве случаев вы хотите проверить, нужно ли отбрасывать некоторые переменные. Скажем, есть две модели и с параметрами и соответственно, и вам нужно проверить, какая из этих двух лучше. Предположим, что является частным случаем то есть вложенных моделей. M1M2p1p2M1M2

В этом случае разница отклонения берется:

ΔDeviance=2[L(μ1^|y)L(μ2^|y)]

Обратите внимание, что логарифмическая вероятность насыщенной модели отменяется, и степень свободы изменяется на . Это то, что мы используем чаще всего, когда нам нужно проверить, равны ли некоторые параметры 0 или нет. Но когда вы подходите в выходе девиантности для насыщенной модели против текущей модели.p 2 - p 1ΔDeviancep2p1glmR

Если вы хотите прочитать более подробно: cf: Категориальный анализ данных Алана Агрести, стр. 118.


@Tal, я не использую, rpartи я оставлю ответ более опытным участникам этого форума.
Suncoolsu

Я думаю, у меня есть идея ... Но rpart печатает отклонение даже для деревьев регрессии Oo
deps_stats

@deps_stats, что отклонение является остаточной суммой квадратов узлов, суммированных по конечным узлам дерева.
Восстановить Монику - Дж. Симпсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.