mgcv 툴박스 의 대부분의 스무딩 은 실제로 특수 응용 프로그램을위한 것입니다. 일반 GAM에서는 특히 일 변량 스무딩 (무작위 스플라인, 구의 스플라인, Markov 랜덤 필드, 예를 들어 일 변량 데이터가있는 경우 비누막이 더 부드럽습니다.)
설정 비용을 부담 할 수있는 경우 얇은 판 회귀 스플라인 (TPRS)을 사용하십시오.
이 스플라인은 점근 MSE 의미에서 최적이지만 관측 당 하나의 기본 기능이 필요합니다. mgcv 에서 Simon이하는 일은 전체 TPRS 기반을 취하고 고유 분해를 수행하여 표준 TPRS의 하위 버전을 생성하는 것입니다. 이것은 k
새로운 공간에서 첫 번째 기본 함수가 원래의 기본 신호를 유지하지만 더 적은 기본 함수를 유지 하는 새로운 기본을 만듭니다 . 이것은 어떻게 mgcv이 TPR 값을 얻기 위해 관리하는 기본 기능보다는 관찰 당 하나의 사용 만 지정된 번호. 이 고유 분해는 기존 TPRS 기반의 최적 성을 대부분 유지하지만 대규모 데이터 세트의 경우 상당한 계산 노력을 기울입니다.
TPRS의 설정 비용을 견딜 수없는 경우 CRS (입방 회귀 스플라인)를 사용하십시오.
이는 생성하기위한 빠른 기준이므로 많은 데이터 문제에 적합합니다. 그러나 매듭 기반이므로 어느 정도 사용자가 해당 매듭을 놓아야 하는지를 선택해야합니다. 대부분의 문제에서 기본 매듭 배치를 넘어서 (데이터의 경계에서 사이에 균등하게 간격을 두어) 얻는 것이 거의 없지만 공변량의 범위에 걸쳐 특히 고르지 않은 샘플링이있는 경우 매듭을 선택할 수 있습니다 공변량의 균일 한 간격을 둔 샘플 양자 수를 예로들 수 있습니다.
mgcv의 다른 모든 스무딩 은 특별합니다. 등방성 스무디 또는 두 개 이상의 공변량을 원하거나 공간 스무딩을 위해 사용되거나 수축, 임의의 효과 및 임의 스플라인을 구현하거나 공변량이 주기적이거나 휘글이 변하는 곳에서 사용됩니다. 공변량의 범위. 당신은 단지 당신이 특별한 처리를 필요로하는 문제가있는 경우까지 부드러운 도구 상자에이 벤처해야합니다.
수축
수축 모두 TPR 값의 버전 및 CRS 있습니다 mgcv은 . 이것들은베이스의 완벽하게 매끄러운 부분이 매끄러움 패널티의 영향을받는 스플라인을 구현합니다. 이는 평활도 선택 프로세스가 선형 함수를 넘어 실질적으로 0으로 평활을 축소 할 수있게합니다. 이를 통해 평활도 패널티가 기능 선택을 수행 할 수 있습니다.
두촌 스플라인, P 스플라인 및 B 스플라인
이 스플라인은 기본 주문과 페널티 주문을 별도로 지정해야하는 전문 애플리케이션에 사용할 수 있습니다. Duchon 스플라인은 TPRS를 일반화합니다. P 스플라인이 mgcv 에 추가되어 다른 처벌 된 가능성 기반 접근 방식과 비교할 수 있다는 인상을 얻었 습니다. 1996 년 논문에서 Eilers & Marx가 스플라인을 사용했기 때문에 GAM에서 많은 후속 작업을 일으켰습니다. P 스플라인은 모양 구속 조건이있는 스플라인 및 적응 스플라인과 같은 다른 스플라인의 기초로도 유용합니다.
mgcv 로 구현 된 B 스플라인은 스플라인에 대한 페널티와 매듭을 설정하는 데 상당한 유연성을 허용하며, 이는 관측 된 데이터의 범위를 벗어나는 외삽을 허용 할 수 있습니다.
주기적 스플라인
공변량에 대한 값의 범위가 범위의 끝 점이 실제로 동일해야하는 원 (월 또는 일, 각도, 종횡비, 바람 방향)으로 생각 될 수있는 경우이 제약 조건이 적용될 수 있습니다. 기본. 이와 같은 공변량이있는 경우이 구속 조건을 적용하는 것이 좋습니다.
적응 형 스무더
적응 형 스플라인은 공변량의 섹션에 별도의 GAM을 맞추기보다는 가중치가 적용되는 페널티 매트릭스를 사용합니다. 예를 들어 TPRS 및 CRS 스플라인의 경우 공변량 범위에서 동일한 정도의 평활도를 가정합니다. 그렇지 않은 관계가있는 경우 스플라인이 흔들기 및 흔들기없는 부분에 적응할 수 있도록 예상보다 더 많은 자유도를 사용할 수 있습니다. 평활화 문헌의 고전적인 예는
library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
data.frame(times = seq(min(times), max(times), length = 500)))
ggplot(mcycle, aes(x = times, y = accel)) + geom_point()
이 데이터는 서로 다른 부드러움의 기간을 명확하게 보여줍니다. 충격은 시리즈의 첫 번째 부분에 대해 사실상 0이며 그 이후에는 감소합니다.
이 데이터에 표준 GAM을 적용하면
m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')
우리는 합리적으로 적합하지만 처음에는 약간의 추가 흔들림이 있으며 범위와 끝은 times
~ 14 자유도를 사용했습니다.
plot(m1, scheme = 1, residuals = TRUE, pch= 16)
변화하는 흔들림을 수용하기 위해, 적응 스플라인은 가중치가 공변량에 따라 부드럽게 변하는 가중치 패널티 매트릭스를 사용합니다. 여기서는 동일한 기본 치수 (k = 20)로 원본 모델을 다시 맞 춥니 다. 그러나 이제 m = 5
원본의 1 대신 5 개의 평활도 매개 변수 (기본값은 ) 가 있습니다.
m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')
이 모델은 훨씬 더 적은 자유도 (~ 8)를 사용하며 끝 부분에서 매끄럽게 매끄럽게 흔들리는 것이 훨씬 적으며, 충격 중에 헤드 가속의 큰 변화에 여전히 적합하게 맞출 수 있습니다.
여기서 실제로 진행되고있는 것은 스플라인에 평활 기준과 페널티에 대한 기준이 있다는 것입니다 (무게가 공변량에 따라 부드럽게 변할 수 있도록). 이 두 가지의 기본적으로 P 스플라인 있습니다,하지만 당신은 너무 CRS 기준 유형을 사용할 수 있습니다 ( bs
단 중 하나가 될 수 있습니다 'ps'
, 'cr'
, 'cc'
, 'cs'
.)
여기에 설명 된 것처럼, 적응할 것인지 아닌지를 선택하는 것은 실제로 문제에 달려 있습니다. 함수형이 매끄럽다 고 가정하지만 관계의 공변량 범위에 따라 스무딩 정도가 변하는 경우 적응 형 스플라인이 의미가 있습니다. 시리즈의 급격한 변화 기간과 낮거나 점진적인 변화 기간이 있다면 적응 형 스무스가 필요할 수 있습니다.