커브를 부드럽게하기 위해 황토 또는 스무딩 스플라인을 사용하는 것에 대한 장단점을 더 잘 이해하고 싶습니다.
내 질문의 또 다른 변형은 황토를 사용하는 것과 동일한 결과를 얻을 수있는 방식으로 스무딩 스플라인을 구성하는 방법이 있는지입니다.
모든 참조 또는 통찰력을 환영합니다.
답변
다음은 황토 적합과 스플라인 적합에 대한 적합을 비교할 수있는 R 코드 / 예입니다.
library(TeachingDemos)
library(splines)
tmpfun <- function(x,y,span=.75,df=3) {
plot(x,y)
fit1 <- lm(y ~ ns(x,df))
xx <- seq( min(x), max(x), length.out=250 )
yy <- predict(fit1, data.frame(x=xx))
lines(xx,yy, col='blue')
fit2 <- loess(y~x, span=span)
yy <- predict(fit2, data.frame(x=xx))
lines(xx,yy, col='green')
invisible(NULL)
}
tmplst <- list(
span=list('slider', from=0.1, to=1.5, resolution=0.05, init=0.75),
df=list('slider', from=3, to=25, resolution=1, init=3))
tkexamp( tmpfun(ethanol$E, ethanol$NOx), tmplst )
데이터로 시도하고 다른 유형이나 옵션을 시도하도록 코드를 변경할 수 있습니다. loess.demo
황토 알고리즘이 수행하는 작업을 더 잘 이해하기 위해 TeachingDemos 패키지 의 함수 를 살펴볼 수도 있습니다 . 황토에서 볼 수있는 것은 종종 황토와 두 번째 보간 스무딩 (때로는 스플라인)을 조합 한 것입니다.이 loess.demo
함수는 실제로 평활과 원시 황토 적합을 모두 표시합니다.
이론적으로 항상 원하는만큼 연속적인 다른 기능에 가까운 스플라인을 찾을 수 있지만, 데이터 세트에 대한 황토 한 적합에 가까운 근사값을 신뢰할 수있는 간단한 매듭 선택이 없을 것입니다.
답변
스무딩 스플라인 또는 황토의 실제 결과는 매우 비슷합니다. 지지대의 가장자리에서 약간 다르게 보일 수 있지만 “자연”스무딩 스플라인인지 확인하는 한 실제로는 비슷하게 보입니다.
하나를 사용하여 산점도에 “스모 더”를 추가하는 경우 다른 것을 선호 할 이유가 없습니다. 대신 새 데이터를 예측하려면 평활 스플라인을 사용하는 것이 훨씬 쉽습니다. 스무딩 스플라인은 원본 데이터의 직접적인 기초 확장이기 때문입니다. 100 노트를 사용하여 만든 경우 원래 변수에서 ~ 100 개의 새 변수를 생성했음을 의미합니다. Loess는 경험 한 모든 값 (또는 대규모 데이터의 계층화 된 하위 집합)에서 응답을 추정합니다.
일반적으로 평활 스플라인에 대한 페널티 값을 최적화하는 알고리즘이 확립되어 있습니다 (R의 mgcv가이 방법을 사용하는 것이 좋습니다). Loess는 그다지 명확하지는 않지만 일반적으로 모든 구현에서 합리적인 출력을 얻습니다. MGCV는 또한 동등한 자유도에 대한 느낌을 제공하므로 데이터의 “비선형”에 대한 느낌을 얻을 수 있습니다.
매우 큰 데이터를 모델링 할 때 더 단순한 자연 스플라인은 스무딩 스플라인 또는 황토와 비교하여 최소한의 계산으로 유사한 결과를 제공하는 경우가 많습니다.