Stephen Milborrow
September 10, 2016
September 10, 2016
출처: Stephen Milborrow Homepage
원본: PDF
Contents
- 1 Introduction
- 2 Overview
- 3 Termination conditions for the forward pass
- 4 Generalized linear models
- 5 Factors
- 6 The linpreds argument
- 7 The allowed argument
- 8 Using earth with fda and mda
- 9 Plots
- 10 Cross-validating earth models
- 11 Understanding cross-validation
- 12 Estimating variable importance
- 13 FAQ
9 Plots
이 장은 plot.earth에서 만들어진 그래프를 설명하고 그 다음 몇 개의 다른 플롯(plot)을 본다.
9.1 이 장의 짧은 버전(Short version of this chapter)
이 장 전체를 읽기를 원하지 않는 독자를 위해, 여기에서는 당신이 아는데 필요한 최소이다.
plot.earth 함수는 4개의 그래프를 생성한다(Figure 8).
많은 수의 예측자에 의존해 어떻게 적합이 되었는지, 최대 GCV에서 최종 모델이 어떻게 선택되었는지 보기 위해 모델 선택 플롯(Model Selection plot plot)을 사용해라.
이상점(outliers)과 적합된 함수(fitted function)에서 어떤 분명한 이상한 행동을 보기 위해 잔차 대 적합된 그래프(Residuals vs Fitted graph)를 사용해라.
당신은 다른 두 그래프를 일반적으로 무시할 수 있다.
9.2 plot.earth 그래프 해석(Interpreting plot.earth graphs)
plot.earth에 의해 그려진 그래프는, 모델 선택 플롯의 부분, 잔차 분석에서 사용되는 표준 툴이다 그리고 더 많은 정보는 대부분 선형 회귀 텍스트박스에서 찾을 수 있다. plot.earth 함수는 plotmo 패키지의 plotres 함수를 쌌다, 그리고 또한 그 함수를 위한 문서를 보라.
잔차의 이분산성(Heteroscedasity)은 선형 모델에서 처럼 earth 모델에서는 중요하지 않다, 잔차의 이분산성(Heteroscedasity)은 선형 모델이 적당한지 확인하기 위해 사용되어 지는 경우. 또한, 잔차의 선형 모델 이분산성(Heteroscedasity)에서 일반적인 선형 모델 추론에서 요구된다(예를 들어 p 값 계산), earth 모델에서는 행하지 않는다. "earth에서 분산 모델(Variance models in earth)" 비네트(vignette)에서 설명된 varmod 인수를 사용하여 earth 모델의 잔차 분산을 모델을 만들 수 있다.
9.2.1 명명법(Nomenclature)
잔차(residual)는 모델에서 예측된 값과 상응하는 응답값 간에 차이이다. 잔차 제곱 합(residual sum of squares, RSS)은 잔차의 제곱된 값의 합이다.
R2(RSq, 또는 결정 계수(coefficient of determination)라 불림)는 RSS의 정규화된 형상이다, 그리고, 모델에 의존함, 0(같은 값을 항상 예측하는 모델 i.e. 관측된 응답 값의 평균)에서 1(훈련 데이터의 응답을 완전하게 예측하는 모델)까지 변함.
일반화된 교차 검증(Generalized Cross Validation (GCV))은 효과적인 모델 변수의 수에 의해 불이익을 받은 RSS의 형상이다(그리고 관측값의 수에 의해 나누어짐). 더 상세는 FAQs 13.6 과 13.7에서 찾을 수 있다. R2는 RSS의 정규화된 것처럼 GRSq는 GCV를 정규화한다(FAQ 13.11 와 earth의 도움말 페이지의 Value 절에서 GRSq 정의를 보라)
GCV 와 GRSq는 모델의 일반적인 능력을 측정한다, i.e., 모델은 훈련 집합이 아닌 데이터를 사용하여 예측을 얼마나 잘 하는가. 그 값에 약간의 임의성이 있다 그러므로 요과적인 모델 변수의 수는 단지 MARS 모델에서 추정된다.
Figure 8: 예(plot.earth)로 만들어진 그래프 |
9.2.2 모델 선택 그래프(The Model Selection graph)
구체적으로, 여기의 그래프 설명은 example(plot.earth)으로 생성된 플롯이 기본이다 그리고 Figure 8에 보여준다. ( earth 의 버전에 따라 약간 다른 그래프를 만들 것이다.)
모델 선택 그래프에서(Figure 8의 상단 좌측) RSq 와 GRSq 선은 처음에는 같이 간다, 그러나 조건의 수가 증가함에 따라 나눠진다. 이것은 전형적인 특징이다, 그리고 우리가 보게 되는 것은 모델 변수의 수가 증가에 따라 GCV에서 적용되는 불이익(penalty)이 증가된다.
수직의 점 선(dotted line)은 선택된 모델에서 위치이다(pmethod="none"를 사용하지 않는 경우 최대 GRSq에서) 그리고 최적의 모델은 11개의 조건과 전부 8개의 예측자를 가지는 것을 나타낸다(예측자의 수는 검정 대시 라인(dashed line)으로 보여준다).
우리는 예측자와 조건의 수를 볼 수 있다, 낮은 GRSq을 받아 들일 준비가 필요합니다(모델을 잘라내기 위해 earth 변수 nprune을 사용할 수 있다.)
군집(clutter)의 수와 오른쪽의 축을 줄이기 위해, col.npreds=0를 사용해라.
9.2.3 잔차 대 적합 그래프(The Residuals vs Fitted graph)
잔차 대 적합 그래프(Figure 8의 하단 좌측)는 예측된 응답의 각 값에서 잔차를 보여준다. 축의 척도로 하나는 예측된 값에 연관된 잔차의 크기에서 바로 아이디어를 얻을 수 있다.
빨간 선은 lowess 적합니다. (lowess 적합에 친숙하지 않는 독자는 팬시 이동 평균(fancy moving averages)으로 그들을 생각할 수 있다) 이 사례에서 평균 잔차는 낮고 높게 적합된 값으로 나눠졌다. 그러므로 모델의 종료 조건은 nk 21 에 다달았을 때 이므로, 우리는 더 큰 nk를 가지는 모델로 재생성을 시도 할 수 있다.
이상적인 잔차는 일정하게 분산(constant variance)되게 보여질 것이다 i.e. 잔차는 고르게 퍼져 유지한다, 또는 이분산성, 적합된 값이 증가에 따라.(어쨌든, earth에서, 잔차의 등분산성(constant variance of the residuals)은 선형 모델에서 처럼 중요하지 않다) 예에서 그래프는 등분산(heteroscedasity)을 본다 - 잔차는 "<" 형상으로 흩뿌려져 있다. 예측된 값이 증가에 따라 예측의 정밀도는 감소한다.
이분산성(heteroscedasity)을 줄이고 모델을 가능한한 단순하게 하기 위해, 우리는 응답에서 변환을 수행한 후 모델을 재적합 할 것이다. 세제곱근 변환(cube root transform), 예를 들어, 이 데이터에서 잔차를 고르게 퍼지게 한다(Figure 9, 가운데 그림):
fit <- earth(O3^(1/3) ~ ., data = ozone1, degree = 2) plot(fit)
Figure 9: 오존 데이터에서 생성된 3개의 모델이다.
좌측: earth 모델의 잔차(Figure 8의 하단 좌측과 같음) 중앙: 응답의 세제곱근(cube root)으로 만들어진 earth 모델의 잔차 우측: 선형 모델의 잔차 |
데이터 변환은 다른 문제를 유발할 것이다, 실제 모델 하에서 알고 있는 것과 일치하지 않거나 또는 해석의 어려움 같은, 그래서 이것은 모델링 되어진 데이터 타입에서 전문가의 조언(또는 전문가가 되기에)이 가장 좋은 이유가 될 것이다(이 경우에, 오존 오염 데이터 - 전문가는 세제곱근은 의마가 없다고 말하거나 또는 반대로 필요 불가결하다고 말할 것이다).
(R2와 연관된 통계량은 우리가 위에서 사용한 세제곱근(cube root) 같은 응답에서 변환에 의한 영향을 인식하라. 만약 모델을 비교하려면, 변환된 데이터의 모델에서, R2를 평가하기 전에 그들을 세제곱으로 예측된 값을 역변환한다.)
earth 모델의 잔차를 선형 모델과 비교해라(Figure 9, 우측 그림), 그리고 어떻게 부드러운 선이 earth 모델이 데이터의 비-선형 모델링에서 더 성공적으로 보여주는 지를 비교하라. 또한 earth 잔차는 더 작다 - 왼쪽 축의 값을 보라. 선형 모델의 코드는:
fit.lm <- lm(O3 ~ ., data = ozone1) plot(fit.lm, which=1) # which=1 for the residuals plot only plotres(fit.lm, which=3) # alternative aproach using plotres (not shown)
하나는 lowess 적합에서 좋게 보여지는 것처럼 자신의 잔차에서 항상 좋게 보일 것이다, 근사적으로 자신을 보임. 어쨌든 예의 그림에서 lowess 선은 신뢰성 있게 나타난다.
192, 193, 그리고 226 경우는 가장 큰 잔차를 가진다 그리고 별도의 군집으로 의심쩍게 떨어져서 보인다. ( 만약 과적합이 라벨을 읽기 어렵게 만든다면, plot.earth의 id.n 인수를 가지고 표시의 수를 줄여라. 일반적으로, 이것은 큰 잔차를 가지는 경우는 조사할 가치가 있다. 아마도 그들은 모델을 생성할 때 배제될 것이다. 반대로, 이것은 모델 변경을 보장할 수 있는 데이터에 대한 어떤 중요한 것을 드러내는 가능성이 있다. 이것은 또한 만약 그 지역에서 비선형이 있는 경우 작은 잔차를 가지는 경우로 보여주는 가치가 될 것이다. 잔차의 크기로 순서화된 입력 메트릭의 예를 보기 위해, ozone1[order(abs(earth.model$residuals)),]를 사용하라.
때로는 잔차 그룹은 평행한 선의 연속으로 나타난다. 이런 선은 문제를 보통 나타내고 있지 않다. 그들은 플롯된 점의 집합이 같은 관측 값을 가질 때 형성된다, 보통 관측된 응답의 측정에서 이산화(discretization)하기 때문이다(e.g. 가까운 숫자로 반올림하는 것으로)
"earth의 분산 모델(Variance models in earth)" 비네트는[18] 잔차 플롯에 더 많은 논의를 한다.
9.2.4 누적 분포 그래프(The Cumulative Distribution graph)
Figure 10:
info=TRUE를 가지는 누적 분포 그림 |
누적 분포 그래프(Figure 8의 상단 우측 그리고 Figure 10)은 잔차의 절대 값의 누적 분포를 보여준다. 우리가 이상적으로 보고 싶은 것은 0에서 출발하고 1까지 빠르게 상승하는 그래프이다.
이것은 n 번의 훈련의 경우에 step 함수를 그린다: 각 단계는 수직 방향으로 1/n 에서, 수직 방향에서 우리는 다음으로 가장 큰 절대 잔차로 이동한다. 절대 잔차의 종형상과 비슷한 분포는 누적 분포 그림에서 S 형상과 비슷하게 변환될 것이다(이 예에서 상황은 실제가 아님).
예 그래프에, 중앙값 절대 잔차(median absolute residual)는 2.0 위에 있다(50%의 수직 회색 선에서 보라). 우리는 잔차의 절대 값의 95%는 약 7.0 아래에 있음을 본다(95%의 수직 회색 선을 보라). 그래서 훈련 데이터에서, 시간의 95%는 예측된 값은 관측된 값의 7.0 단위 내에 있다.
더 정확하게 7.0과 같은 수를 결정하기 위해 plot.earth에 info=TRUE를 전달해라, Figure 10에 묘사된것 처럼.
9.2.5 QQ 그래프(The QQ graph)
QQ (분위수-분위수, quantile-quantile) 그림은(Figure 8의 하단 오른쪽) 정규 분포에서 잔차의 분포를 비교한다. 만약 잔차가 정규로 분포되어 진다면 그들은 선 위에 놓일 것이다.(잔차의 정규성은 earth 모델에서는 종종 너무 중요하지 않다, 그러나 그래프는 이상 잔차와 다른 비정상(anomalies)을 발견하기 위해 유용하다.) R 협약을 따르면, 가로축은 정규 축이고 그리고 세로축은 잔차 축이다; 일부 유명한 책에서는 그래프를 다른 방법으로 순회한다. 예에서, 우리는 왼쪽 꼬리에서 정규성에서 나가는 것을 본다 - 분포의 왼쪽 꼬리는 정규 분포의 그것 보다 더 넓다. 일단 다시 한번, 우리는 192, 193, 그리고 226 경우는 큰 잔차를 가진 것을 본다.
9.3 Earth-glm 모델 그리고 plot.earth(Earth-glm models and plot.earth)
기본적으로 plot.earth 함수는 모델의 glm 부분을 무시한다, 만약 어떤 경우라도. 그려진 잔차는 가지치기 패스 후에 lm.fit는 earth의 호출에서 나온 잔차이다, glm 잔차 아님(당신은 plot.earth의 type 인수를 사용하여 이것을 변경할 수 있지만).
9.4 Earth-glm 모델 그리고 plotd(Earth-glm models and plotd)
Earth-glm 모델에서, plotd(earth 패키지에 있음) 는 유용할 수 있다. 예(Figure 11):
fit <- earth(survived ~ ., data=etitanic, degree=2, glm=list(family=binomial)) plotd(fit) # left side of figure plotd(fit, hist=TRUE) # right side of figure
Figure 11: plotd |
우리는 아래 처럼 earth 안에서 glm 모델을 그릴 수 있다(보기 없음):
data(etitanic) fit <- earth(survived~., data=etitanic, glm=list(family=binomial)) par(mfrow=c(2,2)) plot(fit$glm.list[[1]])
9.5 교차 검증된 모델 그리고 plot.earth(Cross-validated models and plot.earth)
Earth는 nfold 인수를 가지고 교차-검증된 모델을 생성한다(10 장 "Cross-Validation"). 모델 선택 플롯(plot)은 교차 검증 통계량을 보일 것이다, 그러나 모델 생성할 때 keepxy=TRUE 를 사용하는 경우에 한여여. (교차 검증 통계량은 plot.earth에 의해 생성된 다른 플롯에서는 무시된다.) 여기에 예제가 있다(Figure 12):
fit <- earth(survived ~ ., data = etitanic, degree=2, nfold=5, keepxy=TRUE) plot(fit, which=1, col.rsq=0) # which=1 for Model Selection plot only (optional)
Figure 12: 교차 검증된 earth 모델 |
Figure 12에서, 일반적으로 수직 검정 점선은 GCV 최고점에서 표준 방법으로 결정된 최적의 조건 수를 보인다.
연한 분홍 선은 각 fold 모델의 out-of-fold RSq를 보여준다. 붉은 선은 모델 크기에서 평균 out-of-fold RSq를 보여준다.
수직 붉은 점선은 붉은 선의 최대값이다, i.e., 수직선은 교차 검증에 의해 추정된 최적의 조건 수를 보인다. 이것은 CV-with-averaging이다; 다른 접근은(earth에서는 지원하지 않음) 모델 조건 수를 사용하는 CV-with-averaging 이다, i.e., 그 fold에서 가장 자주 선택되는 조건의 수.
GRSq를 사용하여 선택된 이상적인 조건의 수는 교차 검증에 의해 결정된 조건의 수와 항상 일치할 것이다, 그리고 2개의 수직 선은 일치(비록 plot.earth는 겹칩(overplotting)을 방지하기 위해 선을 약간 흩어 놓는다(jitters). 실제로, 수직선은 보통 가까이 있지만 그러나 구별 가능하지 않다. 아래의 예에서, 교차 검증 fold가 earth의 각 호출에서 변화로 어떻게 그래프가 변하는지 주목하라(Figure 13):
Figure 13: 같은 모델, 3번의 교차 검증. earth가 데이터를 각 실행에서 다른 fold로 분할함에 따라 cross-validation RSq에서 무작위 변화를 주목하라. |
plot1 <- function() { fit <- earth(survived~., data = etitanic, degree=2, nfold=5, keepxy=TRUE) plot(fit, which=1, ylim=c(0, .5), col.rsq=NA, legend.pos=NA) } set.seed(1) plot1() set.seed(2) plot1() set.seed(3) plot1()
위 고드는 ylim=c(0,.5)으로 3개의 그래프 모두에 수직 축의 범위를 일정하게 유지한다, col.rsq=NA로 군집을 줄이고, 그리고 legend.pos=NA로 범례(legend)를 지웠다.
우리는 Figures 12 와 13 에서 교차 검증 결과는 GCV를 사용하는 표준 방법으에서 획득된 결과를 가진다. 검은 선(solid black)과 붉은 선은 근접해 있다. 수직의 붉은 점선은 주의를 움직인다, 그러나 대부분 약 6개의 조건 후에 곡선의 평탄도(flatness) 때문. 수직선의 위치는 만약 우리가 하나의 표준 에러 규칙(one-standard-error rule: earth에서는 아직 지원하지 않음) 또는 ncross 인수를 사용한다면 더 안정이 될 것이다.
호기심으로, plot.earth.models은 각 fold에서 만들어진 모델의 GCV 곡선 비교에 사용할 수 있다.
fit <- earth(survived ~ ., data=etitanic, degree=2, nfold=3, keepxy=TRUE) plot.earth.models(fit$cv.list, which=1, ylim=c(0, .5))
Figure 14: 3개의 교차 검증 fold에서 모델의 GRSq 곡선 비교 |
10 Earth 모델의 교차 검증(Cross-validating earth models)
이 장에서 우리는 당신이 교차 검증의 기본 사항을 이미 알고 있다고 가정합니다(i.e., 데이터를 nfold 하위집합으로 분할, 하위집합 하나를 제외한 전체에서 모델을 반복적으로 생성해라, 남겨진 데이터(left-out data)에서 성능을 측정해라)
독립적인 데이터에서 R2를 계산하기 위해 또는 모델을 선택하기 위해 교차 검증을 사용해라. 이것은 earth에서 사용된 GRSq의 대안이다. (FAQ 13.6).
여기에 예제가 있다. nfold 변수와 교차 검증 R2를 주목하라, 아래에서 CVRSq라 불림. Figure 15의 좌측은 이 모델을 보여준다.
> fit <- earth(survived ~ ., data=etitanic, keepxy=TRUE, degree=2, nfold=5) > summary(fit) ... usual text omitted here ... GCV 0.14 RSS 139 GRSq 0.42 RSq 0.45 CVRSq 0.41 Note: the cross-validation sd's below are standard deviations across folds Cross validation: nterms 7.60 sd 0.84 nvars 5.40 sd 0.52 CVRSq sd ClassRate sd MaxErr sd 0.41 0.064 0.79 0.032 -1.2 1
교차 검증은 만약 nfold가 1 보다 크면 수행된다(통상적으로 5 또는 10). Earth는 처음에는 평소와 같이 데이터 전체에서 표준 모델을 생성한다. 이것은 earth의 반환 값에서 표준 필드가 항상 나타나고, 그리고 summary.earth에 의해 항상 보여준다는 것을 의미한다. Earth는 그다음 nfold 교차 검증 모델을 생성한다. 각각의 fold에서 이것은 in-fold 데이터를 가지고 earth 모델을 생성한다(일반적으로 완전한 데이터의 1/10). summary.earth에서 출력된 최종 평균 CVRsq는 이러한 out-of-fold에서 R2의 평균이다.
교차 검증 결과는 earth의 반환 값에서 추가 필드로 간다. 이 모두는 cv 접두사를 가진다 - 상세를 위해 earth 도움말 페이제의 Value 절을 보라. 재현하기 위해, nfold를 가지고 earth를 호출하기 전에 set.seed를 호출하라.
Figure 15:
왼쪽 Earth 모델은 nfold=5를 가지고 생성되었다. 분홍선은 각 fold에서 out-of-fold R2를 보여준다. 두꺼운 빨간선은 분홍선의 평균이다. 검은선은 전체 모델에서 보통의 GRSq 선이다, 교차 검증를 무시함. 오른쪽 같음 그러나 ncross=3을 가짐. 전체에서 15개의 fold가 있다. |
10.1 nfold의 최적의 값은 무엇인가?(What is the best value for nfold?)
교차 검증 fold의 수를 고르는 문제는 열린 연구 과제로 남아있다. 우리는 당신이 5 또는 10 fold 교차 검증을 제안할 수 있을 뿐이다, 작은 데이터셋을 가지지 않으면. 작은 데이터셋을 가지고 어떤 실험에서는 그럴듯한 결과를 얻을 수 있을지도 모른다. 조금 비비 꼬인 상세한 기술은 다음 장에서 논의되었다(11.4 절의 "Bias of cross-validation estimates" 예에서).
10.2 ncross 인수(The ncross argument)
같은 nfold 인수를 가지고 earth를 2번 실행하면, 우리는 다른 교차 검증 결과를 가질 것이다, 왜냐하면 earth는 데이터를 매번 다른 fold로 무작위로 나눈다. 더 안정적인 결과를 위해 이 변화의 출력 평균을 위해 nfold 개의 fold에 횟수를 곱을 가지는 프로세스를 반복하기 위해 ncross 인수를 사용해라. 예(Figure 15의 외쪽):
fit <- earth(survived ~ ., data=etitanic, degree=2, keepxy=TRUE, ncross=3, nfold=5) plot(fit, which=1, col.rsq=0)
10.3 교차 검증 결과를 그리기(Plotting cross-validation results)
plot.earth에 교차검증 통계량을 보기를 원하면, keepxy=TRUE를 사용해라 그러면 earth는 모든 fold에 모든 모델 크기의 oof.rsq를 계산한다. 이것은 우리가 이 장의 거의 모든 예에서 keepxy=TRUE를 사용하는 이유이다. 더 많은 플롯은 9.5 절에서 찾을 수 있을 것이다.
10.4 교차 검증의 추적(Tracing cross-validation)
trace=.5 또는 더 큰 값을 주면, earth는 교차 검증 진행의 진행 정보를 출력한다. 예을 위해
CV fold 3: CVRsq 0.622 n.oof 86 12% n.fold.nz 384 41% n.oof.nz 43 39%
는 교차 검증 fold 3을 보여준다, fold 모델의 CVRsq는 0.622이다, out-of-fold 집합에서 86개의 관측값으로 측정됨.
출력은 또한 in-fold 와 out-of-fold 집합에서 관측된 응답에서 0이 아닌 값의 수와 비율이 보인다. 이것은 만약 우리가 이진 또는 펙터 응답을 가지거나 그리고 각 fold 에서 각 펙터 수준의 충분한 예를 가지는지 확인하는 경우에 유용하다. stratify 인수가 있으면(기본으로 사용 가능), earth는 fold에 걸처 응답 상수에서 어떤 주어진 수준의 발생 수를 유지하려 시도한다.
10.5 R2를 모으는 두가지 방법(Two ways of collecting R2)
Earth는 교차검증 동안 R2를 수집하는 두가지 방법이 있다(이것은 혼란스러울 수 있다). 이렇게 하기 위한 이름은 CVRsq 와 oof.rsq 이다. 이름은 다소 임의적이다, 그러나 earth 코드와 문서에서 일관되게 사용한다. 개략적으로 보기 위해 Figure 16을 보라.
(i) | fold의 CVRsq는 in-fold 데이터로 생성된 모델을 사용하여 out-of-fold 관측값으로 만들어진 예측에서 계산된다. Earth는 어떤 다른 earth 모델 처럼 fold 모델을 생성한다, 훈련(in-fold) 데이터의 GCV를 사용하는 최적의 조건 수를 선택하는 모델. 이러한 fold 당 CVRsq 평균은 summary.earth으로 출력된 CVRsq 이다 |
(ii) | oof.rsq는 모델 선택에서 중요하다, i.e., 조건의 최적의 수를 선택하기 위해서. 그것들은 summary.earth로 출력되지 않는다, 그러나 기본으로 plot.earth로 그려진다(Figure 15의 분홍선). (i)에 설명된 CVRSqs는 이것들의 하위집합이다.
oof.rsq는 각 fold에 모든 모델 크기를 위해 계산된다. (모델 크기는 모델에서의 조건의 수이다.) 각 fold에서, 이것은 in-fold 데이터를 가지고 만들어진 모델을 사용하여 out-of-fold 관측값에서 생선된 예측에서 계산된다, 모델이 주어진 크기로 가지쳐진 후. oof.rsq는 keepxy=TRUE 또는 pmethod="cv" 일 때만 계산된다. 이것은 그것의 계산은 느리기 때문이다 - earth는 모든 fold에서 모든 모델 크기로 update.earth 와 predict를 호출해야 한다. |
10.6 조건의 수를 선택하기 위한 교차 검증 이용
(Using cross-validation to select the number of terms)
교차 검증을 이용하여 선정된 모델을 선택하기 위해 pmethod="cv"를 사용하라. 예(Figure 17)
fit <- earth(survived ~ ., data=etitanic, degree=2, pmethod="cv", ncross=3, nfold=5) plot(fit, which=1, col.rsq=0)
Figure 17: pmethod="cv"를 가진 모델 선택
이것은 Figure 15의 오른쪽과 일치한다, 여기는 선택된 모델에서 검은 원이 있다, 그리고 범례가 조금 다르다. 실제로, 안정적인 모델을 선택하기 위해 ncross의 높은 값을 여기에 사용된 값 3 보다 추천한다. |
Figure 17에서, 우리는 GCV는 8 개 조건 선택을 가진 것을 본다, 그러나 교차 검증은 7개의 조건을 선택한다. (그러나 붉은 곡선은 조건의 수에서 상당히 평평하기 때문에, 교차 검증은 만약 다른 무작의 seed가 earth의 실행 전에 사용된다면 다른 조건의 수를 선택할 것이다. 실제로, ncross 높은 값은 pmethod="cv"를 가지고 안정적인 결과를 얻기 위해 필요하다.
이것은 내부적으로 무엇인가 발생한 것이다. 교차 검증 동안, earth는 각 fold 모델에서 out-of-fold R2를 측정한다. 평균 out-of-fold R2는 그러면 각 모델 크기에서 계산된다(붉은 선). 최적의 조건 수는 최대 평균 out-of-fold R2이 되는 것을 갖는다. Earth는 그러면 모든 데이터를 사용하여 모델을 재생성한다, 이 최적의 조건 수에서 역방향 패스에서 모델을 선택.
그림에서 어떤 fold 모델에서 분홍 선은 오른쪽에서 잘려진 것에 주목할 것이다. 이것은 왜냐하면 이런 모델의 최대 조건 수가 전체 모델의 16 개의 조건 보다 적기 때문에 일어난다.
붉은 평균 선은 또한 잘려졌다. 주어진 조건의 수에서, 절반 또는 더 많은 분홍 선은 평균이 유효한 것으로 간주될 수 있게 표현해야 한다. 이것은 플롯의 오른쪽에서 평균에서 불안정을 방지한다.
10.7 Earth에서 반환된 교차 검증 통계량
(Cross-validation statistics returned by earth)
10.5 절에서 교차 검증 동안 수집된 R2를 설명했다. 이 절은 다양하게 추가된 교차 검증 통계량에 대해 설명한다.
Each에서 이것들은 각 fold에서 out-of-fold 집합에서 측정된다, 그리고 모든 fold의 평균으로 요약된다( MaxErr는 모든 fold에서 가장 나쁜 에러를 가지고 "summary" 된다는 점만 제외). 요약 통계량과 fold 전체에 걸쳐 그들의 표준 편차를 보기 위해 summary.earth를 사용해라. 이러한 통계량의 더 상세는 earth의 도움말 페이지의 Value 절을 보라.
통계량:
- CVRsq는 10.5 절의 (i) 부분을 보라
- oof.rsq는 10.5 절의 (ii) 부분을 보라
- MaxErr 예측된 응답과 관측된 응답 사이의 부호가 있는 최대 절대 차이. 이것은 절대 차이의 최대값이다, 차이의 부호가 음수이면 -1을 곱함. MaxErr "요약"은 fold 전체에 걸친 가장 나쁜 MaxErr이다.
- ClassRate 올바르게 분류된 out-of-fold 관측값의 부분(이산(discrete) 응답의 경우만). 이진 응답에서 0.5의 결정 임계값이 사용된다.
만약 우리가 이항(binomial)이나 포아송(poisson) 모델에서 교차 검증 한다면(earth의 glm 인수를 사용하여 구별), earth는 아래의 추가적인 통계량을 반환한다.
- MeanDev 관측값의 수로 나누어진 편차
- CalibInt, CalibSlope 교정 절편 그리고 기울기(Calibration intercept and slope) (예측된 응답에서 관측된 응답의 회귀에서).
- AUC ROC 곡선 아래의 영역(이항 모델에서만)
- cor 예측된 응답과 관측된 응답 간의 상관관계(correlation)(포아송 모델에서만).
다중 응답 모델에서, 각 fold에서 earth는 독립적으로 각 응답에서 이런 통계량을 계산한다, 그리고 그들의 평균을 가지고 그것들을 묶거나, 또는 wp 인수를 사용하면 가중 평균으로 묶는다. 평균을 취하는 것은 본질적으로 전혀 다른 모델이 무엇인지 결과를 묶는 상당히 모호한 방법이다, 그러나 그럼에도 불구하고 유용할 수 있다.
위의 GLM 통계량의 확장은 아래를(그리고 다른것을) 참고하면 찾을 수 있다: Pearce and Ferrier [21], Fawcett [6], and Harrell [10]. 어떻게 통계량이 계산되는지 상세를 위해 earth.cv.lib.R의 소스 코드를 보라, Elith 와 John Leathwick에 의해 제공된 친절한 코드를 기반임.
10.8 예: 훈련 에러 대 일반화 에러
(An example: training versus generalization error)
Figure 18은 Hastie et al.[12] 에서 Figure 7.1 로부터 재생성되었다. 그림은 인공적으로(synthetically) 생성된 100개의 훈련 집합을 가지고 만들어진 모델에서 생성되었다.
Figure 19는 어떤 같은 원리를 설명하는 예이다. 새로운 데이터를 사용하는 대신에, 우리는 교차 검증을 사용한다. (또한, 우리는 earth와 mtcars 데이터를 사용한다.) 그림은 아래의 코드를 가지고 만들어졌다:
fit <- earth(mpg~., data=mtcars, ncross=10, nfold=2, keepxy=TRUE) plot(fit, which=1, col.mean.infold.rsq="blue", col.infold.rsq="lightblue", col.grsq=0, col.rsq=0, col.vline=0, col.oof.vline=0)
Figure 19는 Figure 18에 대해 "꺼꾸로(upside down)" 이다 왜냐하면 이것은 성능의 부족(lack-of-performance)이 아닌 모델 성능을 그리기 때문이다. 그러나 우리는 여전히 같은 기본 구조를 본다: in-fold 훈련 데이터에서 측정된 성능은 모델 복잡도가 증가할수록 증가된다; 독립적인 데이터에서 성능은 최고가 되고 그리고 그 다음 감소한다.
최재 평균 out-of-fold R2는 3개의 조건에서 이다, 이 예에서는 전체 모델의 GCV에 의해 선택된 조건의 수와 일치한다(이것을 보기 위해 col.grsq를 설정해라, 여기에 보기는 없음)
Figure 18: Hastie et al. [12]의 Figure 7.1에서 다시 만듬
100개의 훈련 집합에서 생성된 모델에서, 연한 파란 선은 훈련 집합에서 측정된 예측 에러를 보여 준다. 분홍 선은 매우 큰 독립 검증 집합에서 측정된 에러를 보여준다. 두꺼운 선은 기대 에러를 보여주기 위한 연한 선의 평균이다. |
Figure 19: mtcars 데이터의 earth 모델의 교차 검증.
위의 그림에서 수평 축을 따르는 모델 복잡도는 이 그림에서 조건의 수가 되었다. |
10.8.1 비고(Remarks)
우리는 위의 plot.earth 호출에서 몇몇의 인수는 단순히 보이는 요소를 제거하는 것을 첫번째로 다루었다. 이런 인수의 기본값은 무엇인가 평범하지 않은 그림에서 부적당하다 (우리는 in-fold R2에서 일반적으로 흥미가 없다).
분홍 선의 변화는 조건의 수를 가지고 어떻게 증가하는지 주목하라. 더 유연한 모델일수록, 더 그것을 훈련 집합에서 무질서(randomness)하게 과적합한다, 그리고 그러므로 독립 데이터에서 그것의 R2 추정에 더 많은 무질서가 들어간다.
Figure 19에서 분홍 곡선의 대부분의 변화는 the out-of-fold 데이터 셋이 상대적으로 작은 크기 때문이다. 만약 우리가 큰 검증 집합에서 R2를 측정하면(out-of-fold 데이터 대신에) 우리는 여전히 변화를 보게 되지만, 그러나 훨씬 작다.
각 분홍 곡선에서, 만약 우리가 독립적인 훈련 집합을 순수하게 사용한다면 우리는 더 많은 변화를 볼 것이다 (임의의 독립적인 교차 검증 fold 테이터 대신에).
mtcars 데이터 셋은 작다(32개의 관측값). 단지 2개의 fold는 무엇인가 안정적인 결과를 위한 out-of-fold 집합을 충분히 크게 유지하기 위해 위에서 사용되었다 (그러나 ncross를 가지고 10회 반복됨). 이런 작은 ncross를 가지고, 교차 검증 편향은 문제가 될 수 있다, 왜냐하면 전체 데이터셋에 연관된 작은 크기의 in-fold 집합 때문. 그래서 out-of-fold 데이터에서 R2는 이것이 전체 크기로 된 독립 표본의 것보다 작게 되는 경향이 있다. 11.4 절 "Bias of cross-validation estimates"를 보라.
휼륭한 그래프 설명을 위해 우리는 degree=1를 사용했다, 그러나 mtcars 데이터에서 높은 도수(degree)는 실제로 더 적합한다.
댓글 없음:
댓글 쓰기