So sánh làm mịn splines vs hoàng thổ cho làm mịn?


25

Tôi muốn hiểu rõ hơn về những ưu / nhược điểm của việc sử dụng hoàng thổ hoặc một đường viền làm mịn để làm mịn một số đường cong.

Một biến thể khác của câu hỏi của tôi là nếu có một cách để xây dựng một spline làm mịn theo cách sẽ mang lại kết quả tương tự như sử dụng hoàng thổ.

Bất kỳ tài liệu tham khảo hoặc cái nhìn sâu sắc đều được hoan nghênh.


Tal, Bài báo được trích dẫn tốt sau đây xem xét nhiều phương pháp hồi quy không tham số Buja, A., Hastie, T., & Tibshirani, R. (1989). Máy làm mịn tuyến tính và mô hình phụ gia . Biên niên sử thống kê , 17 (2), 453 trận510, hay nhất.
Alexis

Câu trả lời:


16

Dưới đây là một số mã R / ví dụ sẽ cho phép bạn so sánh sự phù hợp cho phù hợp hoàng thổ và phù hợp spline:

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 )

Bạn có thể thử nó với dữ liệu của bạn và thay đổi mã để thử các loại hoặc tùy chọn khác. Bạn cũng có thể muốn xem xét loess.demochức năng trong gói Dạy học để hiểu rõ hơn về những gì đại số hoàng thổ làm. Lưu ý rằng những gì bạn nhìn thấy từ hoàng thổ thường là sự kết hợp của hoàng thổ với làm mịn nội suy thứ hai (đôi khi chính nó là một spline), loess.demochức năng thực sự cho thấy cả sự phù hợp được làm mịn và phù hợp thô.

Về mặt lý thuyết, bạn luôn có thể tìm thấy một spline xấp xỉ một hàm liên tục khác gần như bạn muốn, nhưng không chắc là sẽ có một sự lựa chọn đơn giản về các nút thắt có thể đưa ra một xấp xỉ gần đúng với độ khớp phù hợp cho bất kỳ tập dữ liệu nào.


Xin chào Greg: 1) Cảm ơn bạn đã trả lời. 2) Tôi yêu chức năng loess.demo của bạn ...
Tal Galili

29

Các kết quả thực tế từ một spline làm mịn hoặc hoàng thổ sẽ khá giống nhau. Chúng có thể trông hơi khác ở các cạnh của giá đỡ, nhưng miễn là bạn chắc chắn rằng đó là một spline làm mịn "tự nhiên", chúng sẽ trông rất giống nhau.

Nếu bạn chỉ sử dụng một cái để thêm "mượt mà" hơn vào một biểu đồ phân tán, thì không có lý do thực sự nào để thích cái này hơn cái kia. Thay vào đó, nếu bạn muốn đưa ra dự đoán về dữ liệu mới, việc sử dụng một spline làm mịn sẽ dễ dàng hơn nhiều. Điều này là do spline làm mịn là sự mở rộng cơ sở trực tiếp của dữ liệu gốc; nếu bạn đã sử dụng 100 nút thắt để thực hiện điều đó có nghĩa là bạn đã tạo ~ 100 biến mới từ biến ban đầu. Thay vào đó, Loess chỉ ước tính đáp ứng ở tất cả các giá trị đã trải nghiệm (hoặc tập hợp con phân tầng cho dữ liệu lớn).

Nói chung, có các thuật toán được thiết lập để tối ưu hóa giá trị hình phạt để làm mịn các spline (mgcv trong R có thể làm điều này tốt nhất). Loess không hoàn toàn rõ ràng, nhưng nhìn chung bạn vẫn sẽ nhận được đầu ra hợp lý từ bất kỳ triển khai nào. MGCV cũng mang đến cho bạn cảm giác về Độ tự do tương đương để bạn có thể cảm nhận được dữ liệu của bạn "phi tuyến tính" như thế nào.

Tôi thấy rằng khi mô hình hóa trên dữ liệu rất lớn, một spline tự nhiên đơn giản hơn thường cung cấp kết quả tương tự để tính toán tối thiểu so với một spline làm mịn hoặc hoàng thổ.


+1, câu trả lời hay! Tôi thích giải thích lý thuyết rõ ràng.
gung - Phục hồi Monica

Tại sao chúng khác nhau gần các cạnh của hỗ trợ mặc dù?
imu96

1
x
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.