Qu'est-ce que la déviance? (spécifiquement dans CART / rpart)


45

Qu'est-ce que la "déviance", comment est-elle calculée et quelles sont ses utilisations dans différents domaines de la statistique?

En particulier, je suis personnellement intéressé par ses utilisations dans CART (et sa mise en œuvre dans rpart in R).

Je pose cette question car l' article du wiki semble quelque peu faire défaut et vos idées seront les bienvenues.

Réponses:


48

Déviance et GLM

Formellement, on peut voir la déviance comme une sorte de distance entre deux modèles probabilistes; dans le contexte GLM, cela équivaut à deux fois le log ratio des vraisemblances entre deux modèles imbriqués où est le modèle "le plus petit"; c'est-à-dire une restriction linéaire sur les paramètres du modèle (voir le lemme de Neyman – Pearson ), comme l'a dit @suncoolsu. En tant que tel, il peut être utilisé pour effectuer une comparaison de modèle . Cela peut aussi être vu comme une généralisation du RSS utilisé dans l'estimation OLS (ANOVA, régression), car il fournit une mesure de la qualité d'ajustement du modèle en cours d'évaluation par rapport au modèle nul (interception uniquement). Cela fonctionne aussi avec LM:1/00

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

Les résidus SS (RSS) sont calculés comme , ce qui est facilement obtenu comme suit:ε^tε^

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

ou parmi le (non ajusté)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 

depuis où est la variance totale. Notez qu’il est directement disponible dans une table ANOVA, commeR2=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 

Maintenant, regardez la déviance:

> deviance(lm.res)
[1] 98.66754

En fait, pour les modèles linéaires, la déviance est égale au RSS (vous pouvez vous rappeler que les estimations MCO et ML coïncident dans un tel cas).

Déviance et PANIER

Nous pouvons considérer CART comme un moyen d’allouer des individus déjà identifiés en classes dans des classes arbitraires (dans un contexte de classification). Les arbres peuvent être considérés comme fournissant un modèle de probabilité pour l'appartenance à une classe individuelle. Donc, à chaque nœud , nous avons une distribution de probabilité sur les classes. Ce qui est important ici est que les feuilles de l’arbre nous fournissent un échantillon aléatoire d’une distribution multinomiale spécifiée par . On peut ainsi définir la déviance d’un arbre, , comme la somme sur toutes les feuilles denipiknikpikD

Di=2kniklog(pik),

suivant les notations de Venables et de Ripley ( MASS , Springer 2002, 4 e éd.). Si vous avez accès à cette référence essentielle pour les utilisateurs R (IMHO), vous pouvez vérifier par vous-même comment une telle approche est utilisée pour fractionner des nœuds et adapter un arbre aux données observées (p. 255 et suivantes); Au fond, l'idée est de minimiser, par la taille de l'arbre, où est le nombre de noeuds dans l'arbre . Nous reconnaissons ici le compromis coût-complexité . Ici, est équivalent au concept d'impureté de nœud (c'est-à-dire l'hétérogénéité de la distribution sur un nœud donné) qui est basé sur une mesure d'entropie ou de gain d'information ou sur le célèbre indice de Gini, défini parD+α#(T)#(T)TD1kpik2 (les proportions inconnues sont estimées à partir des proportions de nœuds).

Avec un arbre de régression, l’idée est assez similaire, et nous pouvons conceptualiser la déviance comme une somme de carrés définie pour les individus parj

Di=j(yjμi)2,

résumé sur toutes les feuilles. Ici, le modèle de probabilité considéré dans chaque feuille est un gaussien . Citant Venables et Ripley (p. 256), " est la déviance normalisée habituelle pour un GLM gaussien. Cependant, la distribution aux nœuds internes de l’arbre est alors un mélange de distributions normales, et ne convient donc que pour les feuilles. Le processus de construction de l'arbre doit être considéré comme un raffinement hiérarchique des modèles de probabilité, très similaire à la sélection de variable directe dans la régression . " La section 9.2 fournit des informations plus détaillées sur la mise en œuvre, mais vous pouvez déjà regarder la fonction pourN(μi,σ2)DDirpartresiduals()rpart objet, où les "résidus de déviance" sont calculés comme la racine carrée de moins deux fois le logarithme du modèle ajusté.

Une introduction au partitionnement récursif utilisant les routines rpart , par Atkinson et Therneau, est également un bon début. Pour un examen plus général (y compris l'ensachage), je recommanderais


1
+1 belle réponse chl, qui, comme tu le dis, complète la mienne, donc pas de problèmes. Très bien mis.
Réintégrer Monica - G. Simpson le

Une chose mineure - probablement pas préférable d'utiliser lm.fitdans votre exemple, car c'est le nom du bourreau de travail derrière lm.
Réintégrer Monica - G. Simpson le

@Gavin Oh, oui, c'est vrai. Merci de me rappeler que, je fais souvent cette erreur ...
chl

3
Juste une remarque: pour la régression linéaire, Deviance est égal à RSS, car l'hypothèse de normalité des erreurs implique que RSS est identique à la statistique de test LR, ce qui implique que Deviance est normalement distribuée, quelles que soient les asymptotes . Ceci est juste une extension de (je pense) commentaire laconique de chl.
suncoolsu

@suncoolsu S'il s'agit de mon commentaire à propos des estimations de ML et de MCO, oui, je voulais dire "en supposant une distribution gaussienne" pour (c'est-à-dire dans les modèles linéaires). Votre commentaire est le bienvenu. εi
chl

25

Cela pourrait être un peu plus clair si nous pensons à un modèle parfait avec autant de paramètres que d'observations, de manière à expliquer toute la variance dans la réponse. C'est le modèle saturé. La déviance mesure simplement la différence d '"ajustement" d'un modèle candidat et celle du modèle saturé.

Dans un arbre de régression, le modèle saturé serait un modèle comportant autant de nœuds terminaux (feuilles) d'observations, de sorte qu'il cadrerait parfaitement avec la réponse. La déviance d'un modèle plus simple peut être calculée en tant que somme de carrés résiduels de nœud, additionnée sur tous les nœuds. En d'autres termes, la somme des différences au carré entre les valeurs prédites et les valeurs observées. Il s'agit du même type d'erreur (ou déviance) que celle utilisée dans la régression des moindres carrés.

Pour un arbre de classification, les sommes résiduelles en carrés ne constituent pas la mesure la plus appropriée du manque d’ajustement. Au lieu de cela, il existe une mesure alternative de la déviance, plus des arbres peuvent être construits en minimisant une mesure d'entropie ou l'indice de Gini. Ce dernier est la valeur par défaut dans rpart. L'indice de Gini est calculé comme suit:

Di=1k=1Kpik2

où est la proportion observée de la classe dans le noeud . Cette mesure est additionnée de tous les nœuds terminaux de l’arbre pour obtenir une déviance du modèle d’arbre ajusté.pikkii


(+1) Désolé, mon message est arrivé plus tard et je n'ai pas remarqué le vôtre. Comme je pense qu'ils ne se chevauchent pas trop, je laisserai le mien si cela ne vous dérange pas.
chl

Donc, la déviance est une mesure de la qualité de l'ajustement, non? D'après les informations dont je dispose, dans la régression, nous disposons de statistiques (telles que RSS, ) permettant de mesurer les problèmes d'adaptation. et dans la classification, nous pourrions utiliser le taux de mauvaise classification. Ai-je raison? R2
avocat

11

La déviance est la statistique du rapport de vraisemblance permettant de tester l'hypothèse nulle selon laquelle le modèle tient pour l'alternative générale (c'est-à-dire le modèle saturé). Pour certains GLM de Poisson et binomiaux, le nombre d'observations reste fixe au fur et à mesure que la numération augmente. Ensuite, la déviance a une distribution nulle asymptotique chi-carré . Les degrés de liberté = N - p, où p est le nombre de paramètres du modèle; c'est-à-dire qu'il est égal au nombre de paramètres libres dans les modèles saturé et non saturé. La déviance fournit ensuite un test pour l'ajustement du modèle.N

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

Cependant, la plupart du temps, vous souhaitez tester si vous devez supprimer certaines variables. Supposons qu'il existe deux modèles et avec les paramètres et , respectivement, et que vous devez tester lequel de ces deux modèles est le meilleur. Supposons que est un cas particulier de c'est-à-dire des modèles imbriqués. M1M2p1p2M1M2

Dans ce cas, la différence de déviance est prise:

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

Notez que la probabilité de journalisation du modèle saturé est annulée et que le degré de liberté de passe à . C’est ce que nous utilisons le plus souvent lorsque nous devons tester si certains paramètres sont égaux à 0 ou non. Mais lorsque vous vous adaptez à la déviance, la sortie correspond au modèle saturé par rapport au modèle actuel.ΔDeviancep2p1glmR

Si vous voulez lire plus en détail: cf: Analyse de données catégoriques par Alan Agresti, pp 118.


@Tal, je ne l'utilise pas rpartet je laisserai la réponse à des membres plus expérimentés de ce forum.
suncoolsu

Je pense que j'ai eu l'idée ... Mais rpart imprime la déviance même pour les arbres de régression Oo
deps_stats

@deps_stats que déviance est la somme des carrés des sommes restantes des noeuds terminaux de l’arbre.
Réintégrer Monica - G. Simpson le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.