earth - varmod (분산 모델)

Variance models in earth


Stephen Milborrow
September 5, 2016

Contents

  1. 1 Introduction
  2. 2 Theory and implementation
  3. 3 A variance model example
  4. 4 Prediction intervals and predict.earth
  5. 5 Plotting residuals
  6. 6 Variance model arguments
  7. 7 Checking the variance model
  8. 8 Miscellaneous

1 서론(Introduction)

분산 모델(variance model) 회귀 모델에서 예측 구간을 추정하려고 사용할 수 있다. Figure 1의 왼쪽 그림은 분산 모델에서 추정한 예측 구간의 earth [7] 적합을 보여준다. (이 그림은 3.1 절에서 상세하게 논의될 것이다.) earth 패키지에서 분산 모델은 에러는 가능한 이분산성(heteroscedastic)이 아닌 독립적이다 라고 가정한다.
분산 모델을 생성하기 위해 earthvarmod.method 인수를 사용하라. 분산 모델에서는 earthvarmod 필드를 가지고 있다. 예측 응답에서 어떻게 잔차의 변화하는지에 대한 모델이다. varmod.method="lm"를 지정한다면, 예를 들어, earth는 먼저 평소 처럼 MARS 모델을 생성한다, 그 다음 모델의 절대 찬차를 내부적으로 lm을 적용한다.
residual.model <- lm(abs(residuals) ~ predict(earth.model), ...)
Figure 1의 오른쪽 그림은 이 잔차 모델(residual model)을 삽화했다. 잔차 모델은 우리가 어떤 예측 값에서 에러의 평균 절대 값(average absolute value)을 추정하게 허락한다. 그러므로 그들은 표준 편차(standard deviation)이다.
분산 모델의 제한 (Limitations of variance models). 주요 earth 모델에서 보다 분산 모델에서 더 많은 불확실성이 있다. Figure 1의 오른쪽 그림이 전형적이다. 이것은 잔차에서 어떻게 잡음이 있는지 보여준다. lm 회귀의 R2는 여기서서 상당히 낮기를 기대한다. 잔차 모델의 정확한 형태(form)에서 다소 불확실성이 있다. 따라서 예측 그 자체에서 보다 예측 구간에서 더 많은 불확실성이 있을 것이다.

Figure 1: 예측 구간.
좌측: 오존은 음영으로 된 95%의 예측 구간을 가지고 온도에서 회귀되었다.
우측: 왼쪽 그림의 모델에서 절대 잔차 대 적합된 값.
빨간 선은 선형 잔차 모델(linear residual model)이다.

2 이론 및 구현 (Theory and implementation)

이 절은 이론 및 earth의 분산 모델 구현에서 몇 가지 세부사항이 있다. 원한다면 당신은 지금 여기를 건너 뛸 수 있다 그리고 다음 3 장의 예에서 바로 진행하라.
분산 모델의 이론에 더 많은 참조로, Davidian and Carroll [2] 와 Carroll and Ruppert [1] 를 추천한다. Galecki and Burzykowski [4] 또한 도움의 된다.
earth 구현에서, 우리는 비-모수적(non-parametric) 설정이므로, 이런 언급된 방법으로써 분산 모델의 설명을 확장시킨다(교차 검증으로 추정된). 여기에 표현된 방법은 오로지 earth 모델에서만 현재 구현되었다, 비록 사실은 상당히 일반적이지만.

2.1 신뢰 구간 대 예측 구간 (Confidence intervals versus prediction intervals)

예측에서 구간의 2개 타입 간에는 중요한 구별이 있다.
(i) 평균 응답의 예측 구간 (신뢰 구간(confidence intervals)이라 불림)
(ii) 미래 값의 예측 구간 (예측 구간(confidence intervals)이라 불림)
구별을 이해하기 위해, 침실 등의 수에 기반으로 주어진 지역에서 판매 가격을 예측하는 모델을 가졌다고 상상해라. (이 예는 Faraway의 3.5 절 [3] 을 따른다.)
(i) 신뢰 구간은 평균 응답을 예측하기 위해서이다 (Confidence intervals are for the prediction of a mean response). 주어진 특징을 가진 집은 평균 얼마에 판매 할 것인가? 가장 좋은 추측의 결과는 모델로 예측된 값이다. 예측에는 약간 불확실성이 있을 것이다 왜냐하면 모델 분산 때문에. 예측의 신뢰 구간(confidence interval)은 이 모델 분산으로 설명한다.

모델 분산은 모델이 훈련 표본에서 어떻게 변하는지를 측정한다. 우리의 관심은 earth 모델에서이다, 그러나 이것은 모든 모델에 적용된다. 예를 들어, 선형 모델 y = xTβ + ε, 주어진 x0에서 예측된 값은 x0T β^ 이다, 그리고 모델 분산은 우리의 β 추정치에서 불확실성의 측정이다. earth 모델에서, 모델 분산은 선택된 knots의 위치에서 불확실성을 포함한다, 어떤 분산이 모델에서 선택되었다, 등.
(ii) 예측 구간은 미래 값의 예측을 위해서이다 (Prediction intervals are for the prediction of a future value). 주어진 특징을 가지는 지정된 집의 가격은 예측된 가격에서 자주 더욱 다를 것이다. 이것은 잡음(noise) 때문이다, 혹은 줄일 수 없은 에러(irreducible error), 추가적인 에러 ε으로 만든 일반적인 모델. 선형 모델에서, 예를 들면, 이러한 잡음은 y = xTβ + ε 에서 ε의 무작위 값으로 나타난다. 예측 구간(prediction interval)을 알아내기 위해 잡음 분산은 모델 분산에 추가되어야 한다. 예측 구간은 신뢰 구간보다 더 크다.

다른 예는 지역에서 주어진 특징으로 홍수 수준(level)을 추정하는 모델이다 (이전 수준, 강 인근, 등.). 만약 우리가 제방을 건설할 계획이면, 신뢰 구간은 충분하지 않다 - 합리적인 안전을 위해 적어도 상위 95%의 신뢰 구간을 사용할 필요가 있다.

2.2 최소 표준 편차 (Minimum standard deviation)

이 페키지의 분산 모델로 추정된 표준 편차(standard deviation)는 적어도 작은 양수 값 min.sd 가 되도록 강제한다. 이것은 추정된 예측이 음수 또는 터무니없이 작게 되는 것을 방지한다. min.sd 값은 분산 모델이 생성될 때 평균 표준 편차(the average standard deviation)의 1/10으로 결정된다.
min.sd <- 0.1 * mean(sd(residuals))
0.1은 earthvarmod.clamp 인수를 가지고 변경할 수 있다.

2.3 데이터 구조(Data structures)

분산 모델은 아래처럼 저장된다:

earth model 때때로 이 문맥에서 "parent model"로 불림
|
varmod 분산 모델
|
residmod 잔차 하위 모델 e.g. lm

잔차 하위모델(residual submodel)은 적합된 값에서 절대 잔차의 회귀이다. 예를 들어, 그것은 만약 varmod.method="lm" 이면 lm 모델이 될 것이다. 다른 예는 varmod.method="gam"이 된다, 잔차 편차에서 비-선형 변화(non-linear changes)에 적용하기 위해.
분산 모델(variance model)은 잔차 하위모델을 위한 덮개이다. 그것은 요약을 제공하고 그리고 모델을 그린다, 그리고 절대 잔차를 표준 잔차로 재척도 작업을 가진다 (2.5 절), 그리고 min.sd에 쌓인다 (2.2 절)
summary.earth 함수는 만약 earth 모델의 부분으로 표현 되다면 분산 모델을 보여 줄 것이다.
당신은 아마도 이렇게 작업할 필요가 없기를 바란다, 그러나 summary(earth.mod$varmod)는 직접 분산 모델을 보여줄 것이다 (그것은 summary.varmod를 호출한다). 그리고 당신은 summary(earth.mod$varmod$residmod)를 가지고 직접 잔차 하위모델을 보여 줄 수 있다. 만약 varmod.method="lm" 이면, 하위모델은 lm 모델이다, 그리고 이 호출은 summary.lm를 수행한다.

2.4 반복적으로 재가중된 최소 제곱 (Iteratively Reweighted Least Squares)

잔차 모델을 생성할 때 (3 페이지에 있는 R 코드 처럼), earth는 반복적으로 재가중된 최소 제곱(Iteratively Reweighted Least Squares: IRLS)을 사용한다. 그것은, 현재 호출의 가중치를 결정하기 위해 이전 호출에서 추정된 분산을 사용하여 반복적으로 lm을 호출하게 만든다. 반복은 lm 계수(coefficient)가 1% 아래로 변경되었을 때 중단한다.
가중된 최소 제곱(Weighted least squares)은 일반적으로 잔차 모델의 잔차가 그들 자신의 높은 이분산성(heteroscedastic)이기 때문에 필요하다. 가중치를 결정하기 위해 우리는 잔차 예측 모델의 (상관(relative)) 분산이 필요하다. 행복하게, 잔차 모델의 특징은 예측(prediction) 그것들에서 추정될 수 있다 - 절대 잔차의 회귀에 의해, 이런 분산은 잔차 모델에서 예측된 값의 제곱에 비례한다 (Carroll and Ruppert [1] Table 3.3).
varmod.method="const"일 때 반복은 필요없다.
현재 구현에서 무반복은 varmod.method="earth"로 수행한다.

2.4.1 IRLS 추적하기 (Tracing IRLS)

반복은 earth 호출에서 trace=.3을 지정하여 추적할 수 있다, 아래 처럼 어떤것이 출력됨:
iter    weight.ratio    coefchange%    (Intercept)       x
  1              9.9          0.00             1.7    0.17
  2             15.5         19.79             1.3    0.20
  3             17.0          4.32             1.3    0.21
  4             17.4          0.96             1.2    0.21
(Intercept)x 열(columns)은 잔차 모델의 추정된 절편(교차점)과 계수(기울기)를 보여준다 (lm을 호출한 결과). 이 예에서, 종종 있는 경우로, 2번째 반복에서 추정은 최종 값에 가깝에 놓인다.
이것들은 절대 잔차에서 회귀의 계수(coefficients)란 점을 주목하라, 표준 편차의 계수가 아님, 표준 편차의 계수는 이러한 값의 거의 1.25 배 값이다 (2.6 절의 (ii))
coefchange% 열은 이전 반복의 이런 값에서 평균 변화를 보여준다. 반복은 변화가 1% 아래일 때 멈춘다. 당신은 earthvarmod.conv 인수를 가지고 수렴 기준(convergence criterion)을 변경할 수 있다, 비록 아마도 필요하지 안겠지만.
weight.ratio 열(column)은 최소 가중치에서 최대 비를 보여준다. 가중치는 만약 완전하게 우위를 차지하는 약간의 경우를 방지할 필요가 있다면 인위적으로 쌓인다.

2.4.2 경고: varmod는 50회 보다 큰 반복에서는 수렴하지 않는다
(Warning: varmod did not converge after 50 iters (oscillating-lo))

이 경고는 IRLS가 수렴하지 못하는 것을 의미한다.
비-수렴(Non-convergence)는 실제로 문제가 될 수 없다. IRLS 진행을 추적하기 위해 trace=.3을 가지고 earth를 실행해라. 비록 반복에서 수렴하지 않지만, 추적에서 출력된 계수(coefficients)는 충분히 안정이 되어 있다, 잔차 모델에서 내재된 불확실성(inherent uncertainty)이 주어짐.
당신은 또한 earth 실행 전에 하나의 관측 혹은 둘을 제거하기 위해 노력할 수 있다, 데이터의 작은 섭동(perturbations)은 아주 크게 IRLS 수렴(convergence)에 종종 영향을 줄 수 있다. (당신은 높은 레버리지 관측(leverage observations)을 가지고 시작할 것이다. 이것들의 위치에서, plot(earth.mod, versus=4)를 이용하라.)
위의 예제 메세지에서 oscillating-lo는 비수렴에서 주어지는 몇가지 이유 중 하나이다. 그것은 우리가 IRLS 추적한 수동 검사에서 알아낼 수 없다. (이 특수한 예에서, 알고리즘은 성공적인 반복에서 두개의 지역 최소값 사이에 진동이다(oscillating-lo).)

2.5 잔차 모델 (The residual model)

3 페이지 시작에서, 잔차 모델은 부모 earth 모델의 절대 잔차에서 회귀이다:
residual.model <- lm(abs(residuals) ~ predict(earth.model), ...)              (1)
여기서 lmgam 또는 eart 같은 몇개의 가능성 중 하나가 될 수 있다, 그리고 위의 회귀에서 다른 가중치를 가지고 몇 회 반복된다 (i.e. 2.4절에 설명된 IRLS)
위에 식에서 residuals이라 하는 것은 eart 모델에서 원시 잔차(raw residuals) ε^ = y - y^ 가 아니다. 원시 잔차 ε^은 (알수 없는) 에러 ε을 과소 평가한다. 이것은 어떤 선형 회귀에서 참이다 (earth 모델의 선형 회귀에서는 earth의 기저 메트릭(basis matrix) bx에서 응답이다. 추가적으로 우리는 모델 분산을 포함할 필요가 있다.
우리는 그러므로 i에서 미래의 값을한 제곱 에러를 추정한다.
ε^ 2i_future = (yi - y^i)2 / (1 - hii) + modvari(2)
아래의 경우에:
  • yi는 미래의 값,
  • y^i는 예측된 값,
  • hii는 포인트의 레버리지(everage), 아래서 논의됨.
  • modvari는 포인트에서 추정된 모델 분산.
잔차 모델 (1)에서 사용된 절대 잔차는 위의 ε^ 2i_future의 제곱 루트이다. 제곱된 잔차를 가지는 작업에서는 우리에서 줄일수 없는 에러(irreducible error)와 단순히 추가된 모델 분산을 묶도록 허락한다.
레버리지(leverage) hiiearth의 기저 메트릭 bx에서 응답의 선형 적합에서 나온 메트릭의 대각 요소이다. 등분산(homoscedastic) 선형 모델을 위해, 표준 이론에서 var(ε^i) = σ2(1 - hii)는 잔차 분산을 위한 식이다. (2)에서 보정 계수(correction factor) 1 / (1 - hii)는 σ2을 추정하는 식의 재배열에서 자연적으로 따라온다. 우리의 이분산성(heteroscedastic)에서, σ2은 모든 포인트에서 더이상 상수가 아니다 그리고 우리는 포인트에서 단일 잔차에서 각 포인트에서 그것을 추정한다. 각 잔차는 그러므로 그것의 레버리지(leverage)에서 보정된다. 높은 레버리지 포인트에서 잔차는 대부분은 보정된다, 그러므로 그들은 대부분의 에러를 과소 평가하는 경향이 있다. 레버리지(leverage)의 평균 값은 p / n 이다, 그리고 레버리지가 평균 값을 가지면 보정값은 다음이 된다:
1 / (1 - hii) = 1 / (1 - p/n) = n / (n - p),
이는 등분산(homoscedastic) 선형 모델의 오차의 분산에 대한 기존의 자유도 보정이다. 레버리지는 그러므로 부분 자유도로 생각할 수 있다.
예측에서 모델 분산 modvari는 다른 훈련 표본으로 생성된 다중 모델에서 그것의 변화이다. 우리는 손에 오직 하나의 표본을 실제로 갖는다, 그래서 ncross 교차-검증 전체에서 out-of-fold 예측된 값의 분산으로 모델 분산을 추정한다. ( 교차 검증은 모델 분산을 과소 평가하는 것으로 종종 보인다. 그럼에도 불구하고 모델 분산 조건의 포함은 우리의 시뮬레이션(simulation) 학습에서 대체로 더 정확한 예측 구간을 가진다.)

2.6 절대 잔차를 예측 구간으로 변경
(Converting absolute residuals to prediction intervals)

미래의 관측 포인트에서 예측 구간을 추정하기 위해, 우리는 아래를 수행:
(i) 2.5 절에 설명된 잔차 모델을 사용하여 포인트에서 평균 잔차 미래 에러를 추정하라.
(i) 일반적인 가정, 에러를 아래의 식을 가지는 추정된 표준 편차로 재척도 해라
sd = 1.2533 mead(abs(error))
위 조건은, 척도 인자(scaling factor) 1.2533 ≈ √π/2 는 정규 데이터(normal data)에서 평균 표준 편차(the mean standard deviation)에 대한 표준 편차의 비율이다 (Geary [5]). 비율은 R 회귀를 가지고 (더 직관적으로) 또한 추정할 수 있다
1 / mean(abs(rnorm(1e8)))             # evaluates to 1.2533
이 척도 인자(scaling factor)는 불운하게도 분산 모델을 주요 earth 모델 보다 에러의 비-정규성에 더 민감하게 만든다.
(i) 표준 편차를 주어진 수준 α에서 추정된 예측 구간으로 변경하라.
interval(y^) = y^ ± zα/2 sd
이것은 우리가 t-분포에서 정규 근사치를 사용한다. 그래서 예에서, 만약 수준은 0.95 이면, 예측 구간은 y^ ± 1.96 sd 이 될 것이다.
위 단계는 predict.varmod에서 수행한다, interval 인수가 사용될 때 predict.earth에서 호출함.

2.7 왜 절대 잔차 회귀인가?
(Why regress on the absolute residuals?)

earth 분산 모델에서, 회귀에 기반한 접근( 우도(likelihood)에 의한 접근 보다는)은 그것의 개념의 단순성에서 선택되었다, 그리고 다른 R 회귀 함수를 연결할 수 있게 하는 그것의 유연성. 또한, 이 설정에서 우도(likelihood) 추정은 덜 강건하다 왜냐하면 그것은 추정된 분산에서 출발에 민감하기 때문이다 (Carroll and Ruppert [1] Section 2.4).
우리가 절대 잔차로 회귀함를 주목하라. 그러므로 우리의 목적은 분산를 추정할 것이다 (또는 표준 편차), 왜 우리는 제곱 잔차에서 직접 회귀를 하지 않는가? 그것이 진행에 옳은 방법처럼 보인다, 그러므로 잔차의 제곱의 기대값은 그들의 분산이다, 자유도 보정 또한, 그리고 다른 저자에서 제안된 접근이다.
어쨌든, 추정된 데이터에서 우리는 제곱된 잔차에서 회귀 (어떤이에 의해 제안된 log 절대 잔차) 는 절대 잔차를 사용하는 것 보다 나쁜 결과를 주는 경향이 있다는 것을 알아냈다. 제곱되었을 때 이상 잔차(outlying residual)는 한층 더 이상(outlying)해 진다, 잔차 모델의 강건함의 영향. 절대 잔차는 더 잘 수행했다.
제곱된 잔차의 세제곱 루트는 절대 잔차보다 더 정규성(normality)에 근접한다 (Wilson and Hilferty [11]). 그러나 earth 수행은 절대 잔차를 가지고 고정된다 왜냐하면 그들은 실제에서 충분히 근접하고, 그리고 약간 더 직관적이다.

2.8 다른 접근 (Alternative approaches)

예측 구간을 추정하기 위한 잔차의 형성에 다른 방법이 있다. 7 페이지의 식 (2)는 보정 불가능(irreducible) 에러 그리고 모델 에러의 기여를 분리하는 이점을 가진다. 이것은 등분산(homoscedastic) 선형 모델 y = xTβ + ε 에서 예측 구간을 추정하기 위한 표준 모델과 유사하다. 이 모델에서, 일반적인 이론에서 (e.g. [3]) 추정된 보정 불가능한 분산(irreducible variance)은 σ^ = ( 1/ (n - p) ) Σ(yi - y^i)2, 주어진 x 값 x0에서 추정된 모델 분산은 var(x0T β^) = x0T (XTX)-1 x0 σ^2 이고, 그리고 예측 σ^2 + x0T (XTX)-1 x0 σ^2 에서 추정된 분산을 얻기 위해 이것들을 합한다.
또한, 식 (2)에서 보정 인자(correction factor)을 형성하기 위한 다른 방법이다. 우리가 사용하는 보정 1 / ( 1 - hii )는 이분산 상수 공분산 메트릭 (Heteroscedastic Consistent Covariance Matrices) (e.g. Zeileis [12])의 논문에서 HC2 보정으로 알려졌다. MacKinnon 와 White [6]는 HC3 을 추전한다, leave-one-out 통계량에 근거한 강한 보정 계수 1 / ( 1 - hii )2. 어쨌든 그것은 알지 못한다 만약 공분산(covariance) 메트릭 추정의 이러한 결과가 우리가 사용하는 잔차 회귀에서 가져온다면, 특별히 우리가 모델 분산 조건을 이미 통합한(incorporate) 것처럼. (이것은 찾는데 가치가 있을 수 있다. 우리는 HC3는 제한된 시뮬레이션 연구에서 HC2 보다 약 더 정확한 예측 구간을 가진다는 것을 찾아냈다. 이 연구에서 우리는 이분산성 가우시안 잡음(heteroscedastic gaussian noise)을 가지고 3개의 독립 예측자에서 하나를 earth에 사용했다.)

2.9 모델 편향 (Model bias)

이상적인 모델링 알고리즘은 무시해도 좋은 분산와 편향을 가지는 모델을 생성한다. 보통 이것은 가능하지 않다, 그리고 모든 유연한 모델링 기술이 선호한다, MARS는 편향과 분산에 조정이 있어야 한다 - 너무 많은 변화가 없음; 너무 많은 평향이 없음. 그러므로 MARS 모델은 일반적으로 편향되어 있을 것이다, 적어도 약간은 있음. 우리는 이것은 응답에서 뾰족한 모서리에서 너무 자주 본다 (Figure 2). 만약 우리가 그것이 모서리에서 더 근접한 적합을 하게 하기 위해 알고리즘을 느슨하게 한다면, 우리는 곡선은 다른 곳에서 너무 굴곡지게 될 위험을 증가한다 - 편향을 줄이기 위해 우리는 분산(variance)을 증가한다.
2.5 절에서 제곱 잔차는 편향 조건 없이 형성된다. 그들은 해야 한다, 왜냐하면 우리는 확실히 조건부 편향을 추정할수 없기 때문이다. 편향은 비-모수적(non-parametric) 모델의 예측 추정에서 기초적인 문제이다. Wasserman [9] 5.7 절에 이 문제에 더 많이 논의되었다.
Figure 2: earth 적합 (검정)으로 sine 곡선 (빨강)에서 생성된 데이터

곡선의 상단부에서 모델 편향을 주목하라.

잔차 플롯(보기 없음)에서, 이 편향은 높게 적합된 값에서 플롯의 중앙에서 lowess line의 분기로 명백하게 나타나게 할 수 있다.

3 분산 모델 예제 (A variance model example)

아래의 코드는 온도 temp에서 오존 수준 O3를 추정하기 위한 단순한 모델을 생성했다. 우리는 이 문서에서 실행 예제로 이 모델을 사용할 것이다. 그것은 Figure 1의 왼쪽에 도시된 모델이다.
data(ozone1)
set.seed(1)   # optional, for cross-validation reproducibility
earth.mod <- earth(O3~temp, data=ozone1, nfold=10, ncross=30, varmod.method="lm")
varmod.method 인수는 earth에서 분산 모델을 생성하라고 말한다, 평소와 같이 먼저 earth 모델을 생성한 후에. nfoldncross 인수 또한 여기에서 필요하다. 왜냐하면 반복된 교차-검증은 earth 모델 분산을 추정하기 위해 사용하기 때문이다. ncross 인수는 이 문장에서 적어도 30회가 될 것이다, 중요 룰(rule-of-thumb)에 근거하여 우리는 적절하게 분산을 추정하기 위해 30회 측정을 해야한다.
그것의 조건부 평균(conditional mean)에 대해 O3의 표준 편차가 온도에서 선형으로 증가한다는 가정을 가지고 위의 varmod.method="lm"을 사용했다. (실제로, 관계는 아마도 더 복잡하다, 그러나, Figure 1의 오른쪽 그림에서 보여주는 것과 같다, 잔차는 잡음이다, 그리고 관계의 정확한 특성 결정은 데이터 단독으로 가능하지 않을 것이다. 선형 모델은 좋은 첫번째 선택이다.)
Figure 1의 왼쪽 그림은 다음으로 plotmo을 호출하여 생성되었다. level=.95에 주목하라, 이것은 plotmo에게 95%의 예측 구간을 보여라 라고 말한다.
plotmo(earth.mod, pt.col=1, level=.95)

3.1 예제 플롯의 논평 (Comments on the example plot)

3 페이지에서 Figure 1의 왼쪽 그림에서, 예측 구간은 상당히 크다. 그것은 온도 단독으로 오존 수준을 예측하기에 충분하지 않다는 것을 놀랄 일이 아니다. 우리는 온도 범위 40에서 60도 사이에서 약간의 이상점(outlying points)을 본다, 그곳에서 뭔가 벌어지고 있다는 더 많은 증거로 온도로는 해명되지 않는다.
주요 earth 모델 경첩(hinge)의 모양은 주요 모델 earth 대신에 제안된다, 우리는 temp의 제곱 또는 세제곱 루트로 말하는 표준 선행 회귀를 사용할 것이다. 그러나 우리는 우리의 현재 목적을 위한 이러한 문제를 무시한다.
그림의 왼쪽 긑부분에 추정된 낮은 예측 한도는 0 아래에 있다, 이것은 불가능하다 (오존 수준은 0 아래가 될 수 없다). 그래서 어떻게 우리가 예측 구간을 해석 하는지에 현명해져야 한다.
잔차 분산은 낮고 높은 온도에서 과추정된 무엇인가 있다. 이것은 잔차 모델을 위해 lm을 사용하는 우리의 결정의 결과일 수 있다. GAM 모델은 더 나은 선택이 될 것이다 (varmod.method="gam"), 비록 해석에서는 덜 쉽고 그리고 더 많이 과적합되는 경향이 있지만.
잔차 모델은 잔차가 대칭(symmetric)이라고 가정한다. 이 추정은 70에서 80도 범위에서 말하면 온도에서는 유효하지 않다고 할 수 있다, 회귀 선에 대해서 비대칭적으로 분산되어 있는 것처럼 보인다 - 추정된 예측 폭은 선 아래에 포인트에서 너무 크다, 그리고 선 위의 포인트에서 너무 작다.
대칭에 대한 가정은 잔차 모델은 잔차의 절대 값에서 회귀한다는 사실을 따른다, 그러므로 양과 음의 잔차 간 구별이 없게 만듬. ( 물론 구현은 양과 음의 잔차에서 분리된 회귀를 가지게 일방향 구간을 생성하도록 수정될 수 있다. 그것은 earth 코드에 추가할 가치가 있는 옵션이 되는 것처럼 보인다. 불이익은 그것은 회귀에서 데이터의 반이란 것이다, 이런 잡음 상황에서.)
이 예제는 단변량(univariate) 이다 (하나의 예측자). 다변량(multivariate) 모델에서 ( 다중 예측자), 예측 구간을 보여주는 것은 그렇게 쉽지가 않다 ( plotmo는 그것을 할 것이다, 그러나 결과는 혼란스러울 것이다). 그러한 모델에서, 잔차 플롯은 하나의 페이지에 2개의 차원에서 다차원 모델을 표현하기 위해 필요하다. 잔차 플롯은 5.2 절에서 논의될 것이다.

3.2 분산 모델을 위한 summary.earth 으로 확장
(Extensions to summary.earth for variance models)

summary(earth.mod) 호출은 우리의 예인 분산 모델을 보여준다.
> summary(earth.mod)

         ... usual text omitted here ...
         
varmod: method "lm"     min.sd 0.464    iter.rsq 0.139

stddev of predictions:
            coefficients  iter.stderr  iter.stderr%
(Intercept)        1.562        0.341            22
O3                 0.262        0.036            14

                        mean  smallest  largest  ratio
95% prediction interval 18.2      8.57     35.7   4.17

                                        68%  80%  90%  95%
response values in prediction interval   70   82   92   97
위의 요약(summary)에서 다양한 항목는 아래에 설명되었다.
  • iter.rsq 특징은 가중된 lm 분산 모델의 R2이다. 0.139인 낮은 값은 여기서 평범하지 않다 왜냐하면 주요 모델 잔차에서 모델 생성의 어려움 때문, 이것은 잡음이 되는 경향이 있다 ( Figure 1의 오른쪽 그림). 주요 earth 모델의 R2는 0.66 이다, 실질적으로 더 높음.
    접두어 iter.은 우리에서 R2는 IRLS의 마지막 반복에서 값이다 라는 것을 상기시킨다 (2.4 절). IRLS는 항상 이 R2 값의 유효성에 대하여 어떤 관계가 있다. 이것은 왜냐하면 회귀 변수의 반복된 추정의 불확실성은 최종 R2에서 완전하게 해명할 수 없다.

  • 분산 모델에서 추정된 표준 편차는 min.sd 보다 작은 값을 가지도록 결코 허용하지 않는다, 이 경우에 0.646. (2.2 절에서 min.sd가 설명되었다.)

  • stddev of predictions 표는 earth 모델에서 만들어진 예측의 표준 편차를 제공한다. 이 예에서, 그것은 예측된 O3 수준의 표준 편차는 O3의 농도(concentration) 단위에서 1.562 + 0.262 * O3 이 되게 추정되었다. 이것은 분산 모델의 핵심이다.
    iter.stderr는 계수(coefficients)의 표준 에러를 보인다, summary.lm 출력과 많이 닮음. 이러한 표준 에러는 IRLS 반복의 최종 모델에서 계산되었다. 위의 iter.rsq에서, 이러한 수의 유효성에 대하여 약간의 관계가 있다 - 그것들은 너무 작다 - 그리고 이러한 관계 때문에, t-tests의 형식은 만족되지 않는다. 일반적으로, 잔차 모델에서 추론은 어려운 문제이다, 하나는 모델에 기반한 회귀를 사용하거나, 우리가 여기서 수행한 것, 또는 모델에 근거한 우도비(likelihood)를 사용하든 (e.g. Galecki and Burzykowski [4] Section 7.8).
    iter.stderr% 열은 계수(coefficients) 값의 비율로 iter.stderr를 보여준다
    iter.stderr% = iter.stderr / coefficient = 0.341 / 1.562 = 22%

  • 95% 신뢰 구간 (prediction interval) 표는 O3 응답에서 95%의 신뢰 구간에서 추정된 평균(mean), 최소값(smallest), 그리고 최대값(largest)를 보여준다. Figure 1의 왼쪽 플롯에서, 가장 작은 예측 구간은 왼쪽 끄트머리에 있고 그리고 가장 큰 값은 오른쪽 끄트머리에 있다, 그러므로 추정된 분산은 증가한다, 자주 발새하는 경우임.
    가장 작은 예측 구간과 가장 큰 값의 비가 또한 보인다. 이것은 전체 이분산성(heteroscedasity)의 측정이다. 현재 특징 4.17은 상당한 이분산성(heteroscedasity)을 나타낸다.

  • response values in prediction interval 표는 분산 모델의 sanity check 이다. 이것은 훈련 응답 값(O3)의 어느 부분이 어느 표준 편차 구간에 있는지 보여준다. 95%의 구간은 Figure 1의 왼쪽 플롯에서 영역에 상응한다 왜냐하면 level=.95는 그 플롯을 생성하기 위해 사용되었다. 현재 표에서 비율 특징은 수용할 만 하다. (우리는 많은 훈련 표본을 가지고 있지 않 한 이론적인 값에 근사적인 매칭을 단지 기대한다.)
    우리는 newdata 인수를 가지고 summary.earth를 호출하여 새로운 데이터의 표를 출력할 수 있다. 이것은 새로운 데이터에 대한 주요 earth 모델의 R2을 또한 출력할 것이다, 아래의 예에서 보여 줌. (예는 단지 훈련 데이터의 하위집하인 가짜의 새 데이터를 사용했다.)
    > summary(earth.mod, newdata=ozone1[sample.int(nrow(ozone1), 100), ])
    
    RSq 0.642 on newdata (100 cases)
    
                                   68%  80%  90%  95%
    newdata in prediction interval  74   86   94   98
    
    정의에서 단지 예측의 5%만이 95% 구간 밖에 있다. 100 경우에서 이 작업은 단지 5개의 경우만 제외한다, 약 2개는 위 그리고 2개는 아래. 당신은 그러므로 테이블에서 안정적인 결과를 얻기 위해 데이터의 상당한 량이 필요하다 - 이상적으로 위의 예에서 100개의 경우 보다 훨씬 많이.

4 예측 구간과 predict.earth (Prediction intervals and predict.earth)

새로운 데이터에서 예측된 추정 구간을 얻기 위해서 predict.earthinterval="pint"level 인수를 사용해라. 예를 들면 (11 페이지에서 생성된 모델을 이용) :
predict(earth.mod, newdata=ozone1[1:3,], interval="pint", level=.95)
predict는 적합, 그리고 주어진 level = .95에서 하한과 상한 한계를 보여주는 3개의 열을 가지는 데이터프레임을 반환한다 ( 한계는 2.5%와 97.5% 이 될 것이다):
    fit     lwr    upr
1  4.75  -0.748  10.24
2  5.53  -0.365  11.43
3  6.95  0.325   13.57
predict.earth 함수는 주어진 intervallevel 인수를 가지고 내부적으로 predict.varmod를 호출한다. 상세를 위해 help(predict.varmod)를 보라.

4.1 예측 구간 그리기 (Plotting the prediction intervals)

우리는 plotmo을 가지고 예측 구간을 그릴 수 있다 (Figure 1의 왼쪽 그림):
plotmo(earth.mod, pt.col=1, level=.95)
우리는 또한 수동으로 구간을 그릴 수 있다 (Figure 3):
predict <- predict(earth.mod, newdata=ozone1, interval="pint", level=.95)

# x values have to be ordered to plot lines correctly
order <- order(ozone1$temp)
temp <- ozone1$temp[order]
O3 <- ozone1$O3[order]
predict <- predict[order,]
in.interval <- O3 >= predict$lwr & O3 <= predict$upr

plot(temp, O3, pch=20, col=ifelse(in.interval, "black", "red"),
     main=sprintf(
     "Prediction intervals\n%.0f%% of the training points are in the estimated 95%% band",
     100 * sum(in.interval) / length(O3)))

lines(temp, predict$fit)            # regression curve
lines(temp, predict$lwr, lty=2)     # lower prediction intervals
lines(temp, predict$upr, lty=2)     # upper prediction intervals
Figure 3: predict.earth를 사용한 예측 구간

그림은 14 페이지에 코드를 가지고 만들어 졌다.

그것은 본질적으로 Figure 1의 왼쪽 그림과 같다, plotmo로 생성 됨.

4.2 interval 인수 (The interval argument)

interval 인수는 predict.earth에 예측 구간을 반환하도록 지시한다. 이 인수는 그것의 type 인수로 predict.varmod에 내부적으로 전달된다.
interval="pint"일 때, 예측 구간은 2.6 절에서 설명된 것과 같다.
interval="pint"일 때, 신뢰 구간(confidence intervals)이 반환된다. 그들의 표준 편차는 교차 검증에 의해 추정된 모델 분산의 제곱 루트로 간주한다 (2.5 절). newdata는 허용되지 않는다.

5 잔차 그리기 (Plotting residuals)

이 절은 잔차를 그리기 위해 사용할 수 있는 어떤 플롯(plot)을 논의한다. 그들은 earth 모델의 예측 구간의 신뢰성 (또는 다른것)을 확증하기 위해 중요하다.

5.1 분산 모델을 위한 plotmo로 확장 (Extensions to plotmo for variance models)

우리가 이미 본 것 처럼, plotmo은 만약 level 인수가 주어지면 예측 구간을 보여줄 것이다 (11 그리고 14 페이지).
Plotmo 또한 어떤 다른 종류의 모델에서 예측 구간을 그리는 방법을 알고있다. 단지 earth이 아님. 상세를 위해 부가 문서 (vignette)를 보라.

5.2 분산 모델의 plot.earth (plot.earth with variance models)

잔차 플롯에서 예측 폭을 표현하기 위해 plot.earthlevel 인수를 사용해라 (Figure 4의 왼쪽 그림). 우리는 이 예에서 잔차 그림만 단지 원한다, 그래서 which=3을 사용함, 비록 보통은 필요하지 않다.
plot(earth.mod, which=3, level=.95)
Figure 4: plot.earth 분산 모델의 잔차
좌측: plot(earth.mod, which=3, level=.95)
우측: plot(earth.mod, which=3, standardize=TRUE)
이 그림에서:
  • 어두운 회색의 폭은 신뢰 한계를 보인다: 넓은 분홍색 폭은 예측 한계를 보인다 ( 2.1 절 "Confidence levels versus prediction levels"). 이 예에서 신뢰 한계는 낮고 높은 적합된 값에서 넓다, 이러한 희박한 분포 지역에서 더 큰 모델의 불확실성을 가리킴.
  • 빨간 선은 잔차에서 lowess 적합(lowess fit) 이다. 이 예에서, 선은 중앙 선에 가깝게 놓인다, 그래서 모델이 훈련 데이터에서 좋은 적합이란 것을 가리킴. (이것은 잔차 플롯이기 때문에, 중앙 선은 예측된 적합과 상응한다는 것을 기억해라.)
  • 연한 파란 선은 교차-검증 oof.meanfit 이다. 다시 한 번, 이 예에서 선은 중앙 선에 가깝게 있다, 폴드 모델(the fold model)에서 생성된 평균 out-of-fold 예측은 모든 데이터에서 최종 모델의 그것과 근사적으로 매칭됨을 가리킴.
    만약 파란색 선이 당신의 플롯에서 왜곡된다면, plot.earthcol.cv=NA 또는 0를 전달하여 그들을 지워라.
    (oof.meanfit 값은 out-of-fold 예측의 평균이다. 이러한 예측은 폴드 모델(fold model)을 생성하기 위해 사용된 데이터가 아닌 관측에서 만들어 진다. ncross 교차-검증에서, 이들은 각 관측에서 ncross out-of-fold 예측의 전체이 될 것이다.)

5.3 plot.earth의 standardize 인수 (The standardize argument of plot.earth)

(Figure 4의 오른쪽 그림을) 그리기 전에 잔차를 표준화 하기 위하여 standardize 인수를 설정하라:
plot(earth.mod, which=3, standardize=TRUE)
지금 예에서 우리는 예측 폭을 표현하지 않았다, 이분산성(heteroscedasity)을 육안으로 발견하는 것을 쉽게 하기 위해, 비록 당신의 목적을 위해 당신은 level 인수를 plotmo 호출에 추가하기를 원할 것이다.
표준화된 잔차는 분산 모델이 보유하고 있을 때 등분산성(homoscedastic)이 될 것이다. 관측 i 에서 잔차를 표준화하기 위해, 우리는 sd(εi) √1 - hii으로 나누었다, sd(εi)는 분산 모델에서 추정되는 에러 표준 편차이다, 그리고 hii는 hat matrix에서 잔차의 대각선 요소이다. hat matrix은 여기에서 earth의 기저 메트릭 bx의 선형집합에서 구해진다.
우리는 용어 "standardized residuals"의 정확한 정의에 문헌과 그리고 R 문서에 약간의 불일치가 있다.

5.4 plot.earth의 info 인수 (The info argument of plot.earth)

Figure 5는 Figure 4의 오른쪽 그림과 같다 그러나 인수 info=TRUE 또한 포함한다.
plot(earth.mod, which=3, standardize=TRUE, info=TRUE)
이것은 plot.earth에게 정보를 추가하여 표현해라 라고 말한다:

Figure 5: plot.earth의 info 인수

info=TRUE 인수를 포함하는 것을 제외한 Figure 4의 오른쪽 그림과 같음.

밀도(density)는 아래를 따라 그려진다.

또한 보기는 적합된 값의 Spearman Rank Correlation의 절대 잔차이다.
  • 그림의 아래에 적합된 값의 분포를 보여준다. 이 예에서, 대부분은 그래프의 왼쪽 가까이에 모여 있다. 그것은 이 지역에서 이상점(outlying points)은 그들이 첫째로 보여줄 수 있는 것보다 덜 중요하게 여길 것이란 것이 명백하게 되었다 - 이상점은 지역에서 많은 수의 포인트에서 작은 부분을 단지 표현할 뿐이다.
  • 또한 보기는 적합된 값으로 절대 잔차의 스피어만 순위 상관(Spearman Rank Correlation) 이다. 이것은 이분산성(heteroscedasity)을 측정한다: 계수는 만약 잔차가 적합된 값이 증가로 증가되는 경향이면 양수가 된다. 비슷하게 음의 계수는 분산의 감소를 가리킨다 (보통 매우 드믐). 이 계수는 표본의 분산을 대상으로 함을 기억해라.
    지금 그래프에서, 표현된 값 0.05는 작다. 그것은 표준화 후에 잔차의 이분산성(heteroscedasity)이 없음을 가상으로 나타낸다. 표현된 텍스트 abs는 계수가 절대 잔차에서 측정 되었음 기억해라, 비록 플롯 그 자신은 절대 잔차를 보여주지 않더라도.
    우리가 Figure 4의 왼쪽 그림에서 원시 잔차에 info=TRUE를 사용하면 (보기 없음), 표시된 스피어만 계수는 0.38이 될 것이다, 절대 잔차와 적합된 값 사이에 상관관계가 있음이 확인됨, i.e., 원시 잔차는 이분산성(heteroscedastic)이다.
    더 일반적인 피어슨 상관 계수 (Pearson Correlation Coefficient)와 같지 않게, 스피어만 상관은 이상점에 무감각하다 (그러므로 그것을 실제 값으로 사용하지 않는다, 오로지 그들의 순위). 또한, 응답에 단조로운 변환에 불변이다. 그러므로 만약 제곱 또는 로그 절대 잔차에서 측정해도 변화하지 않는다. 상관(Correlation)은 단지 단조로운 변화의 경향을 측정한다 (그것은 같은 양에서 증가 그 다음 감소하는 변화를 탐지하지 않을 것이다), 그래서 궁극적으로 당신의 눈이 이분산성(heteroscedasticity)의 최고의 탐정이다., 비록 그것은 수평 축을 따라 밀도의 변화에 기만당할 수 있다.
  • 선형의 회귀 선은 만약 플롯이 절대 잔차를 보여준다면 그릴 수 있다 (which=5 또는 9, 그래서 이 그래프에서 없다, 그러나 다음 절 Figure 6에 보인다).

5.5 절대 잔차 그리기 (Plotting absolute residuals)

plot.earth 함수는 절대 잔차를 또한 그릴 수 있다 (Figure 6) :
plot(earth.mod, which=5, info=TRUE}    # which=5 for absolute residuals
더 가능한 정보를 위해 plot.earth의 도움말 페이지에서 which 인수의 설명을 보라.

Figure 6: lowess line(빨간색)을 가지는 절대 잔차 plot.earth(..., which=5)의 그림

info=TRUE 인수는 또한 지정되었다, 그래서 우리는 약간의 추가적인 정보를 본다, 강건한 션형 회귀 직선(파란색) 그리고 그것의 기울기(0.16)을 포함함.
info=TRUE 를 가지고, 강건한 선형 회귀 직선은 절대 잔차 그림에 추가되었다, 그리고 그것의 기울기가 표시됨. 절대 잔차는 이상점에 영향받지 않는 전체의 경향을 보기 위해 강건한 선형 회귀를 가지고 적합된 값에 대해 회귀했다. 표준 (비-강건) 선형 적합은 가파르게 될 것이다.
낮고 그리고 높은 적합에서, lowess 곡선은 강건한 회귀 적합보다 작은 분산을 추정한다. 어쨌든, 그것은 lowess는 밀도가 낮은 경우에 오른쪽에 과적합 되었다.

5.6 다중-사상 분산 (Multimapped variances)

Figure 7에 응답의 같은 값이 분산 하나의 값 보다 더 많이 가지고 연관되는 경우에 시뮬레이트된 데이터를 보인다 - 일-대-다, 또는 multimapped, 응답과 분산 간 관계이다.

Figure 7: multimapped 분산을 가지는 데이터. 검음 선은 earth 적합이다.

분산은 상당히 다르다, 예로, x가 1과 3에서, 평균 응답은 거의 같지만.

분산은 x의 함수로 모델 되어야 한다. 우리는 varmod.method="x.lm"을 사용했다 (6.1 절).

평균 응답의 함수로 모델 될 수 없다 (varmod.method="lm"를 사용하지 마라).
실세계의 예 (보기 없음): 어떤 지역에서 평균 강우량은 3월과 11월의 달에서 같다, 그러나 연간 강우량은 11월에서 보다 3월에서 덜 변한다.

Figure 8: 위의 특징에서 multimapped 데이터의 잔차 그림.
왼쪽:잔차 대 적합 값. 그렇게 정보를 제공하지 않음
오른쪽: 잔차 대 예측자, 더 좋음.
모델의 평범한 잔차 플롯은 (Figure 8의 왼쪽) 이분산성(heteroscedasity) 패턴 노출에서 그렇게 도움이 되지 않는다. 오른쪽 그림은 더 많은 정보를 준다. 여기서 잔차는 예측자에 대해서 그려졌다, 적합된 값 대신에. 우리는 분산이 예측자를 가지고 증가함을 명백하게 확인한다.
Figure 8에서 2개의 그림은 아래의 코드 라인을 가지고 생성되었다. 두번째 라인은 예측자에 대해 잔차를 그리라는 것을 말하기 위해 plot.earthversus 인수를 사용했다 (이 예에서 단지 하나의 예측만 있다).
plot(earth.mmap, which=3)                    # default residuals versus fitted
plot(earth.mmap, which=3, versus="")         # versus="" residuals versus predictors
다른 옵션은 MARS의 기본 함수에 대해 잔차를 그리기 위하여 versus="" 주었다. 상세를 위해 plot.earth의 도움말 페이지를 보라.
이 절에서 우리의 예는 단일 예측자와 단순하지 않은 응답을 가졌다. 다중 예측자에서, 응답의 비-단순성(non-monotonicity)은 다중-사상 분산(multimapped variances)에서 필요하지 않다, 비록 그것은 그들을 더 선호하게 만들지라도. 다중 예측자에서, 결정은 다중-사상이 발생 한다면 어렵게 된다. 확실히, 비-단순성은 예측자가 상호 작용일 때 가능하다, 고립에서 각 예측자의 응답의 영향이 단순할 때 조차. 그러나 비-단순성(non-monotonicity)은 반드시 다중-사상(multimapping)을 의미하지는 않는다.

5.7 잔차 대 적합 값 또는 응답?
(Residuals versus the fitted values or the response?)

당신은 plot.earth는 적합 값 y^ 에 대한 잔차를 그린다 라고 알 것이다. 때로 사람들은 대신에 응답 y 에 대한 잔차를 그릴 것이다. 일반적으로, 그것을 좋은 생각이 아니다. 에러 ε 이 응답에서 보정되지 않을 때 조차도 (이상적으로 그들은 에러의 독립성이 되어야 한다, 에러의 독립성은 선형 그리고 관련된 모델에서 표준 가정의 하나이다.), 잔차 plot.earth는 적합 값 ε^ 은 응답에서 긍정적으로 보정된다. 가장 낮은 R2는, 가장 높은 보정. Figure 9에 설명되었다.

Figure 9: Figure 1의 모델에서 lowess lines을 가지는 2개의 잔차 그림. R2는 0.66.
왼쪽: 잔차 대 적합. 보정되지 않음 (비록 이분산성(heteroscedastic)이지만)
오른쪽: 잔차 대 응답. 기대한 것처럼 보정됨. 그래프는 모델에 대해서 새로운 어떤 것도 실제로 드러내지 않는다. 등분산성(Hetero- or homo-scedasticity)은 찾아내기가 힘들다.

5.8 plot.varmod 함수 (The plot.varmod function)

earth 모델에 포한된 분산 모델을 보여주기 위해 plot.varmod를 사용해라. 예 (Figure 100):
plot(earth.mod$varmod)    # invokes plot.varmod
Figure 10: plot.varmod
상단 좌측 그림은 주요 earth 모델의 절대 잔차 대 모델의 적합된 값을 보여 준다 (그려진 포인트는 Figrue 6와 같다). 이런 그림에서 조건 parent model은 주요 earth 모델을 언급한다. 분산 모델은 붉은 선으로 보여준다 - 이 경우에 곧은 직선 왜냐하면 earth를 호출할 때 우리는 varmod.method="lm" 를 사용했다. 그림의 오른쪽에 있는 축은 표준 편차를 보여준다. ( 2.6 절에 절대 잔차가 표준 편차로 재척도되는 방법을 설명했다) 이 그림은 Figure 6와 비슷하다. Figure 6가 강건한 선형 회귀 선(robust linear regression line)을 보인다는 점을 제외하고.
수평의 dashed 붉은 선은 min.sd로 쌓여진(clamping) 수준 집합을 보여 준다(2.2 절). 그러나 이 예에서는 너무 자주 발생하여 예측 표준 편차의 클램핑(clamping, 쌓임)은 빨간색 회귀 라인은 점선의 붉은 선에 아주 분명하게 안정되기 때문에 불필요하다.
상단 오른쪽 그림은 분산이 첫번때 예측자의 변화로 어떻게 변경되는지 보여준다. 이 예에서, 첫번째이면서 하나의 예측자는 온도 temp 이다, 그러나 다변량 모델에서 우리는 아래 처럼 모든 예측자의 비슷한 플롯을 생성할 수 있다. type 인수는 predict.varmod에 전달된다.
plotmo(earth.mod$varmod, type="abs.residual")
그래프의 하단 좌측은 분산 모델의 잔차를 보여준다 ( 부모 earth 모델의 잔차에서 lm 회귀의 잔차). 빨간선은 lowess fit 이다. 그것은 Figure 6에서 곡선 처럼 같은 방법에서 여기서 곡선이다.
varmod.method="earth"일 때, 모델 선택 플롯은 또한 보여 준다 (지금 예에서는 없음)
info=TRUEplot.varmod에 전달되면, 부가 정보가 추가 된다, 2개 플롯 첫번째에 lowess fit을 포함.

6 분산 모델 인수 (Variance model arguments)

이 절에서는 분산 모델을 위한 varmod.method과 다른 인수의 어떤 측면을 논의한다.

6.1 x 또는 y^의 함수로써 분산 ? ( Variance as a function of x or of y^ )?

단순하게, 우리의 예제는 그러므로 앞에서 부터 varmod.method="lm"을 사용해 왔다. 몇 개의 다른 가능성이 있다, earth의 도움말 페이지에 설명된 것처럼.
일반적인 규칙에서, 당신은 예측자 보다는 적합된 응답의 함수로써 분산 모델을 만들어야 했다. 이것은 x를 사용하지 않아야 했다. 분산 모델 ( 예로, varmod.method="lm" 보다는 "x.lm"를 더 선호). 이것은 주요 earth 모델이 예측자에서 응답을 추정하는 작업을 하도록 허락한다, 분산 모델이 적합된 값에서 분산을 추정하는 일반적으로 더 단순한 일을 하게 함.
어쨌든, 그것은 당신의 데이테에서 몇가지 다른 옵션을 시도할 가치가 있다. 예를 들어, 오존-대-온도의 실행 예에서, varmod="lm"varmod="x.lm"로 대체하면 잔차를 더 잘 적합하는 것으로 나타내는 더 좁은 예측 구간을 줄 것이다.
x. varmod 밤법은 다중-사상 분산(multimapped variances)에서 사용되어 져야 한다, 잔차 분산이 응답에서 다-대-일 관계를 가지는 경우, 그리고 그러므로 응답의 함수로써 모델을 만들지 말아야 한다 (5.6 절). 이것은 응답이 단순하지 않을 때의 경우는 자주 있다 (예로, 그것은 예측자가 증가함에 따라 감소 보다는 증가한다).

6.2 varmod.method="power"

긍정적인 응답을 가지는 많은 데이터셋에서, 표준 편차는 평균 응답의 지수로 증가한다, 적어도 근사하게 :
error.std.dev <− intercept + coef * response ^ exponent
변수 intercept, coef, 그리고 exponent는 데이터 분포에 의존하는 경우에. 이것은 평균-지수(power-of-the-mean) 잔차 모델이이다. (더 박식하게(pedantically), 그것의 offset을 가지는 평균-지수(power-of-the-mean) 모델, "mean"은 여기서는 평균 또는 참 응답을 언급한다.) 예로, 포아송 분포에서 표준 편차는 응답의 제곱 루트를 가지고 증가한다 (exponent = .5). 감마 또는 로그 정규 분포(gamma or lognormal distribution)에서, 표준 편차는 응답에서 선형으로 증가한다 (exponent = 1).
종종 earth를 적용할 때 우리는 에러의 정확한 분포를 알지 못한다 그러나 평균-지수(power-of-the-mean) 모델을 사용하여 그들을 충분히 정확하게 때때로 추정할 수 있다. 내부적으로, earth는 표준 stats 패키지에서 nls 방법으로 절대 잔차에서 비-선형 회귀를 사용하여 추정값을 만들 것이다.
우리는 시뮬레이트된 데이터를 가지고 설명한다:
set.seed(1)    # optional, for reproducibility

x <- 1:300
y <- x + (10 + 10 * sqrt(x)) * rnorm(length(x))    # y equals x + noise
earth.power <- earth(y~x, linpreds=TRUE,
                     nfold=10, ncross=30, varmod.method="power")
위 코드에서 데이터를 생성할 때 우리는 (어떤 임의에) intercept = 10, coef = 10, 그리고 exponent = 0.5 (square root)를 사용했다. summary(earth.power)를 호출한 결과
stddev of predictions:
             coefficients  iter.stderr  iter.stderr%
(Intercept)         9.944        17.35           174
coef                5.417         5.51           102
exponent            0.614         0.17            28
추정된 변수는 데이터를 생성하기 위해 사용된 것과 무엇인가 다르다. 예, 추정된 지수는 0.5 라기 보단 0.614 이다, 비록 우리가 알맞은 크기의 데이터셋 (300개의 경우)를 가졌지만. 우리는 큰 표준 에러를 가진다.
예는 이런 변수의 추정은 전형적인 잡음 잔차에서 가능하지 않다 라고 설명한다. 단순하게 숨은 분포를 파악하기 위한 충분한 정보가 없다. 그래서 일반적으로 우리는 varmod.method="power" 에서 너무 많이 기대할 수 없다, 비록 그것은 우리에게 어떤 분포의 이해를 줄 지라도. 다른 문제는 잡음이 있는 잔차 데이터에 nls를 내부적으로 호출함은 수렴(converge)에 실패할 것이다, 또는 numericDeriv에서 메세지 Error를 일으킨다.
지수 모델을 추정하는 동안 nls 반복을 추적하기 위해 특별한 값 trace=.31을 사용해라. 이것은 또한 IRLS 가중치의 그림을 그릴 것이다.
다른 옵션은 varmod.method="power0" 이다. 이것은, 0 오프셋(zero offset)을 강제하기 위해, 교차점(intercept, 절편) 조건이 없다는 점을 제외하면 "power"와 같다
평균-지수(power-of-the-mean) 모델은 양의 응답(positive response)을 가지는 데이터를 위함이다. 모델을 추정할 때, earth 함수는 음의 예측 응답을 0 으로 강제한다 (왜냐하면 일반적으로 하나는 음의 숫자의 지수를 가질 수 없기 때문). 이것은 이론에서 항상 음이 아닌 약간의 음이 예측을 유발하는 주요 earth 모델에서 어떤 모델 에러를 위해 허용된다. 에러 메세지는 응답의 20%보다 더 많이 음수이면 문제가 될 것이다.

6.3 varmod.exponent

만약 이전 절에서 설명된 평균-지수 (power-of-the-mean) 모델이 알고 있는 데이터와 지수를 적용했다면, 우리는 varmod.method="lm"을 사용할 수 있다 그리고 earthvarmod.exponent 인수를 가지고 지수를 지정할 수 있다. earth는 잔차 모델을 생성하기 전에 식의 오른쪽에 있는 지정된 지수를 적용한다.
예를 위해, 만약 당신이 응답의 제곱근을 가지고 증가하는 표준 편차를 기대하면, varmod.method="lm"varmod.exponent=0.5를 사용해라. (예측된 음수는 0으로 처리될 것이다, 그리고 당신은 만약 그들의 20% 보다 더 많이 음수이면 에러 메세지를 받을것이다.)
우리는 varmod.method="power"를 사용하는 예비 모델(preliminary model)을 생성하기 위해 지수의 추정값을 구할 수 있다. 우리는 예비 모델에서 추정값을 반올림 하기를 원할 것이다. 예를 들어, 0.68의 추정된 지수, 표준 편차는 응답의 제곱근을 가지고 증가함을 가리킬 것이다 ( 표본 분산 때문에 있는 0.68과 0.5의 차이). 그래서 우리는 varmod.method="lm"varmod.exponent=0.5를 사용하는 우리의 earth 모델을 만들 수 있다. 다른 한 편으로, 예비 모델에서 추정된 지수 0.68을 사용하지 못하게 하는 강제적인 이유가 없게 될 것이다.
예비 모델에서, 우리는 데이터가 가지는 알려진 분포 형태를 추론하기 위해 너무 멀리 가지 않을 것이다 - 우리가 하고자 희망하는 전부는 예측된 구간 추정에 대한 실제 문제를 푸는 것이다. 지수의 정확한 지정은 보통은 중요하지 않다. 지수의 변화는 보통은 추정된 예측 구간에서 연관된 작은 변화를 만든다 (Figure 11).

Figure 11: varmod.exponent의 2개의 다른 설정을 가지는 예측 구간.

지수의 큰 변화는 추정된 예측 구간에서 연관된 작은 변화를 유발한다.

데이터는 여기서 23 페이지에 코드로 생성되었다. 지수의 참 값은 0.5 이다.

6.4 varmod.method="rlm"

varmod.method="rlm" 분산 모델은 varmod.method="lm"와 비슷하다, 그러나 절대 잔차에서 표준 선형 회귀 대신에 강건(robust)을 사용한다. 코드는 MASS 패키지의 rlm를 사용한다.
예측 구간이 추정된 rlmlm 보다 좁게 되는 경향이 있다. 이것은 표준 선형 회귀 라인은 이상점에서 당겨지게 될 것이다, 강건한 선(robust line)은 일반적인 패턴을 따르는 경향이 될 경우 처럼.
어쨌든, 가우시안 에러는 가지는 시뮬레이트된 데이터의 우리의 테스트에서, varmod.method="lm""rlm" 보다 더 나은 주목할 만한 결과를 준다, "rlm"은 에러 분산을 과소 평가되는 경향을 가짐. 에러는 몇몇 이상점을 제외하고 대부분이 가우시안일 때, 그것은 어느것이 더 났다고 말하기 어렵다. 강건한 접근은 처음에서 더 좋게 보일 것이다: 잔차 분산의 일반적인 패턴은 우리가 흥미를 가지는 무엇이다. 어쨌든, 이상점은 많은 잔차의 그 문제일 것이다, 그리고 만약 그래서 강겅한 모델에서 예측 구간은 낙관적으로 될 것이다.

7 분산 모델의 점검 (Checking the variance model)

분산 모델을 생성할 때, 이 문서에서 설명된 방법은 아래의 가정을 만든다. 기본적으로 추가적인 에러를 가지는 회귀에서 모두 일반적인 가정 (비록 우리는 이분산성(heteroscedasity)을 허용하지만), 그러나 분산 모델이 생성 될 때 이러한 가정의 어떤 것은 더 결정적으로 될 것이다.
  • 에러는 독립적인다.
  • 에러는 대칭적이다. 점들은 잔차 그림의 중앙선에 대략 대칭적으로 퍼져 있을 것이다. 잔차 모델은 절대 잔차를 이용한다, 그래서 양과 음의 잔차 사이에 구별이 없게 만든다.
  • 조건 분산(x가 주어짐)은 가우시안에 근사적이다. 가정이 사용되는 하나의 예는 잔차 모델에서 예측된 절대 잔차를 표준 편차로 변경할 때 이다 (2.6 절).
  • 예측된 값은 참 값에 가까이 있다 - 만약 주요 earth 모델이 좋지 않다면, 만족스러운 분산 모델을 위한 희망은 없다.
  • 교차-검증은 합당한 분산 모델의 추정을 제공한다. 이것은 만약 모델 에러가 줄일수 없는(irreducible) 에러 보다 너무 작다면 너무 중요하지 않게 된다. (우리의 실행 예제에서 경우이다 - 놀라지 마라, 모델은 단지 하나의 경첩(hinge)과 300개 이상 경우를 가진다는 것을 고려.) 추정된 모델 분산 폭을 보기 위해 plot.earth의 잔차 플롯을 사용해라.
  • 괜찮은 잔차 모델을 형성하기 위해 잔차에서 충분한 정보가 있다. 잔차는 보통 상당한 잡음이 있다, 그리고 잔차 모델은 낮은 R2를 가질 것이다. 그러나 우리는 그것이 여전히 사용할 수 있다고 가정한다.
  • 잔차 모델은 과적합되지 않는다. 과적합은 varmod.method이 "const" 또는 "lm"을 가지고 비슷하게 되지 않는다, 비록 다른 방법을 가지고 가능하지만. 잔차 모델이 믿기 어려운 곡선 또는 꼬임(implausible curves or kinks)이 없는지 확인하기 위해 플롯(plot)을 사용해라.

7.1 분산 모델의 점검 (Checking the variance model)

데이터는 적절할 주요 earth 모델을 생성하기 위해 충분한 것이다. 그러나 다양한 분산 모델을 생성하기에는 충분하지 않다. 이것은 작은 표본에서 근본적인 참이다. varmod 인수를 가지는 earth는 분산 모델을 상당히 행복하게 만들 것이다, 그러나 우리는 그 모델의 유효서을 점검할 필요가 있다.
예를 들어, Figure 1의 오른쪽 그림에서, 유효한 잔차 모델을 만들기 위해 잔차에서 정말로 충분한 정보가 있는가? 아마도 그렇다, 그러나 잔차를 적합하기 위한 비-선형 잔차 모델의 그 곡선에서 충분한 정보가 있는가? 아마도 또다시 그렇다, 그러나 우리는 모델을 검증할 필요가 있다.
수행에서 첫번째는 earth의 잔차 그림을 확인해야 한다. 빨간색 lowess line은 근사적으로 곧고 그리고 축 위에 있어야 한다, 모델이 적합한 것을 가리키는 축. 만약 선이 너무 곡선이면, 추정된 예측 구간은 신뢰할 가치가 없게 된다. (비록 데이터가 퍼져 있는 경우에 약간의 곡선도는 걱정할 어떤 것이 아니다.) 잔차는 중앙선에서 근사하게 대칭적으로 져 있여야 한다, 그리고 예측 폭은 점 군집의 일반적인 패턴과 매치될 것이다.
우리는 summary.earth로 출력된 차트를 보면서 구간 범위(interval coverage)를 확인 할 수 있다. 예를 들면:
                                        68%  80%  90%  95%
Response values in prediction interval   70   83  88<   97
summary.earth로 위에서 출력된 <는 훈련 데이터의 단지 88%만이 90%의 예측 구간 내에 있다고 지적한다. 추정된 예측 구간은 너무 작다. 이것은 모델 분산에어 어떤 과적합이 있을 수 있다는 힌트이다, 비록 어떤 작은 변화 같은 것이 기대되고 그리고 정말로 문제가 되지 않지만.
이 차트는 훈련 데이터를 위함임을 기억해라, 그리고 그래서 새로운 데이터를 가지고 발생할 수 있는 무엇을 위해 단지 sanity check를 한다. 만약 가능하다면, 우리는 또한 출력하고 그리고 새로운 데이터의 표를 확인 해야 한다. summary.earthnewdata 인수를 전달하여 이것을 해라 ( 13 페이지의 3.2 절 (v)). 이것은 높게 추천되는 분산 모델의 신뢰성 점검이다.

8 부가 설명 (Miscellaneous)

8.1 이분산성을 가지는 선형 모델 (Linear models with heteroscedasity)

표준 lm 함수는 이분산성(heteroscedasity) 데이터를 위한 분산 모델을 지원하지 않는다. (그것은 가중치를 지원한다, 그리고 그러므로 수작업의 IRLS를 가지고 잔차 분산을 추정할 수 있다, 그러나 오로지 훈련 집합에서 관측의 점별(pointwise) 만)
대신 우리는 earth를 가지고 선형 모델을 생성하기 위해 earth의 linpreds=TRUE 인수를 사용할 수 있다. ( 주요 earth 부가 문서(vignette)에 장이 있다) varmod 인수와 함께, 이것은 우리에게 이분산성(heteroscedastic) 에러를 가지는 선형 모델을 위한 예측 구간을 얻도록 허락한다.
nlme 패키지의 gls 함수를 또한 고려할 만 하다.

8.2 earth 모델을 생성할 때 이분산성
(Heteroscedasity when building the earth model)

비록 earth 의 분산 모델은 이분산성(heteroscedasity)을 추정하지만, 그것은 MARS 모델을 생성할 때 그것을 실제로 해석하지 않는다. 비록 효율의 손실이 있긴 하지만, 이분산성(heteroscedasity)은 많은 모델 추정에 일반적으로 영향이 없다. (당신의 경력으로 아마 다를 것이다.) 그것은 추론에 영향을 준다, 우리가 하여튼 earth에서 실제로 행하지 않은 어떤 것. 가중치는 earth에서 아직 완전하게 구현되지 않았다, 그래서 earth에서 IRLS는 아직 가능하지 않다.

댓글 없음:

댓글 쓰기