편차 란 무엇입니까? (특히 CART / rpart에서)


45

"차이"란 무엇이며 어떻게 계산되며 통계의 다른 필드에서 어떻게 사용됩니까?

특히, 나는 개인적으로 CART에서의 사용과 R에서의 rpart에서의 구현에 관심이 있습니다.

위키 기사가 다소 부족한 것으로 보이며 귀하의 통찰력이 가장 환영받을 것이기 때문에 이것을 요구 하고 있습니다.

답변:


48

편차와 GLM

공식적으로, 이탈을 두 확률 모델 사이의 일종의 거리로 볼 수 있습니다. GLM 컨텍스트에서 두 개의 중첩 모델 사이의 로그 비율의 두 배에 해당합니다. 여기서 은 "작은"모델입니다. 즉, @suncoolsu가 말한 것처럼 모델 매개 변수 (예 : Neyman-Pearson lemma ) 에 대한 선형 제한입니다 . 따라서 모델 비교 를 수행하는 데 사용할 수 있습니다 . 또한 OLS 추정 (ANOVA, 회귀)에 사용되는 RSS의 일반화로 볼 수 있습니다 . Null 모델과 비교할 때 평가되는 모델 의 적합도를 측정하기 때문입니다 (절편 만). 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와 Ripley의 표기에 따름 ( MASS , Springer 2002, 4th ed.). R 사용자 (IMHO)에 대한이 필수 참조에 액세스 할 수있는 경우 노드를 분할하고 관찰 된 데이터에 트리를 맞추는 데 이러한 접근 방법이 어떻게 사용되는지 직접 확인할 수 있습니다 (255 페이지). 기본적으로 아이디어는 트리를 잘라내어 를 최소화하는 것입니다. 여기서 는 트리 의 노드 수입니다 . 여기서 우리는 비용 복잡성 트레이드 오프를 인식합니다 . 여기서 는 엔트로피 또는 정보 게인의 측정 또는 로 정의 된 잘 알려진 Gini 지수를 기반으로하는 노드 불순물 (즉, 주어진 노드에서 분포의 이질성)의 개념과D+α#(T)#(T)TD 1 k p 2 i kD1kpik2 (알 수없는 비율은 노드 비율에서 추정됩니다).

회귀 트리를 사용하면 아이디어가 매우 유사하며 이탈을 개별 에 대해 정의 된 제곱합으로 개념화 할 수 있습니다.j

Di=j(yjμi)2,

모든 잎에 합산. 여기서 각 리프 내에서 고려되는 확률 모델은 가우시안 입니다. Venables와 Ripley (p. 256)를 인용하면 " 는 가우스 GLM에 대한 일반적인 스케일 이탈입니다. 그러나 트리의 내부 노드에서의 분포는 정규 분포의 혼합이므로 는 잎에만 적합합니다. 트리 구성 프로세스는 회귀에서의 순방향 변수 선택과 매우 유사한 확률 모델계층 적 개선 으로 간주되어야 합니다. " 섹션 9.2는 구현에 대한 자세한 정보를 제공 하지만 이미 함수를 살펴볼 수 있습니다.N(μi,σ2)DDirpartresiduals()rpart 여기서 "편차 잔차"는 적합 모형의 로그의 두 배에서 제곱근을 뺀 값으로 계산됩니다.

Atkinson과 Therneau 의 rpart 루틴을 사용한 재귀 분할에 대한 소개 도 좋은 시작입니다. 보다 일반적인 검토 (배낭 포함)를 위해 권장합니다


1
+1 nice answer chl, 당신이 말했듯이 내 문제를 보완하므로 아무런 문제가 없습니다. 아주 잘 넣었습니다.
개빈 심슨

하나의 사소한 일-아마도 lm.fit당신의 예제에서 사용하기 에 가장 좋지 않을 것입니다 lm.
Gavin Simpson

@Gavin 아, 맞습니다. 나에게 상기시키는 실수, 나는 종종이 실수를 저지른다.
chl

3
그냥 한 발언 : 오류의 정규성 가정이 RSS는, 정규 분포 더 일탈을 의미 LR 검정 통계량과 동일 의미하기 때문에 선형 회귀 일탈의 경우는 RSS와 동일한 관계없이 근성의 . 이것은 단지 chl에 대한 간결한 의견의 확장 일뿐입니다.
suncoolsu

@suncoolsu ML 및 OLS 추정치에 대한 나의 의견에 관한 것이라면, 나는 대한 "가우스 분포 가정"을 의미했습니다 (즉, 선형 모델). 귀하의 의견은 환영합니다. εi
chl

25

반응의 모든 분산을 설명 할 수 있도록 관측치만큼 많은 매개 변수가있는 완벽한 모형을 생각하면 좀 더 명확 할 수 있습니다. 포화 모델입니다. 편차는 단순히 후보 모델과 포화 모델의 "적합"의 차이를 측정합니다.

회귀 트리에서 포화 모델은 관측치만큼 많은 수의 터미널 노드 (잎)를 가진 모델이므로 반응에 완벽하게 맞습니다. 더 간단한 모델의 이탈은 모든 노드에 대해 합산 된 노드 잔차 제곱합으로 계산 될 수 있습니다. 다시 말해, 예측 값과 관측 값 사이의 제곱 차이의 합입니다. 이것은 최소 제곱 회귀에 사용 된 것과 같은 종류의 오류 (또는 이탈)입니다.

분류 트리의 경우 잔차 제곱합이 가장 적합하지 않은 척도는 아닙니다. 대신, 대안의 이탈도 측정이 가능하며 엔트로피 측정 또는 Gini 지수를 최소화하는 트리를 구축 할 수 있습니다. 후자는 기본값입니다 rpart. Gini 지수는 다음과 같이 계산됩니다.

Di=1k=1Kpik2

여기서 은 노드 에서 클래스 의 관측 된 비율입니다 . 이 측정 값은 트리 의 모든 터미널 노드를 합산 하여 적합 트리 모델의 이탈에 도달합니다. k i ipikkii


(+1) 죄송합니다. 내 게시물이 나중에 왔으며 귀하의 게시물을 눈치 채지 못했습니다. 나는 그들이 너무 많이 겹치지 않는다고 생각하기 때문에, 당신이 마음에 들지 않으면 내 것을 떠날 것입니다.
chl

따라서 이탈 은 적합도의 척도입니다. 회귀 분석에서 AFAIK에는 RSS ( 적합성 ) 와 같은 일부 통계가 있으며 적합도를 측정합니다. 분류에서는 오 분류 율을 사용할 수 있습니다. 내가 맞아? R2
avocado

11

편차는 모형이 일반적인 대안 (즉, 포화 모형)을 다시 보유한다는 귀무 가설을 검정하기위한 우도 비 통계량입니다. 일부 포아송 및 이항 GLM의 경우 개별 계수의 크기가 증가함에 따라 관측치 은 고정 된 상태로 유지됩니다. 그런 다음 이탈 각은 카이 제곱 점근 점근 분포 입니다. 자유도 = N-p. 여기서 p는 모형 매개 변수의 수입니다. 즉, 포화 및 불포화 모델의 자유 매개 변수 수와 같습니다. 편차는 모델 적합에 대한 테스트를 제공합니다.N

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

그러나 대부분의 경우 일부 변수를 삭제해야하는지 테스트하려고합니다. 이 두 가지 모델이 있습니다 말 및 와 및 각각 매개 변수, 당신은 더 나은이 두 가지의 테스트해야합니다. 이 의 특별한 경우, 즉 중첩 모델 이라고 가정 합니다. M1M2p1p2M1M2

이 경우 이탈의 차이는 다음과 같습니다.

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

포화 모형의 로그 가능성이 취소되고 의 자유도 가 변경됩니다 . 일부 매개 변수가 0인지 여부를 테스트해야 할 때 가장 자주 사용합니다. 당신이 적합하지만 에 일탈 출력 현재 모델 대 포화 된 모델이다.p 2p 1ΔDeviancep2p1glmR

보다 자세한 내용은 cf : Alan Agresti의 범주 형 데이터 분석, pp 118을 참조하십시오.


@Tal, 나는 사용하지 않으며이 rpart포럼의 더 숙련 된 회원에게 답변을 남길 것입니다.
suncoolsu

나는 내가 생각이있어 생각 ...하지만 rpart 인쇄 회귀 나무 됐지에 대해서도 일탈
deps_stats

이탈이 트리의 터미널 노드에 합산 된 노드 잔차 제곱합 인 @deps_stats.
개빈 심슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.