Làm thế nào để dự đoán dữ liệu mới với hồi quy spline / mịn


11

Bất cứ ai cũng có thể giúp đưa ra một lời giải thích khái niệm về cách dự đoán được thực hiện cho dữ liệu mới khi sử dụng mịn / splines cho một mô hình dự đoán? Ví dụ, được đưa ra một mô hình được tạo bằng cách sử dụng gamboosttrong mboostgói trong R, với p-splines, dự đoán cho dữ liệu mới được thực hiện như thế nào? Những gì được sử dụng từ dữ liệu đào tạo?

Nói rằng có một giá trị mới của biến độc lập x và chúng tôi muốn dự đoán y. Là một công thức để tạo spline được áp dụng cho giá trị dữ liệu mới này bằng cách sử dụng các nút hoặc df được sử dụng khi đào tạo mô hình và sau đó các hệ số từ mô hình được đào tạo được áp dụng để đưa ra dự đoán?

Dưới đây là một ví dụ với R, dự đoán đang làm gì về mặt khái niệm để xuất 899,4139 cho dữ liệu mới mean_radius = 15,99?

#take the data wpbc as example
library(mboost)
data(wpbc)

modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)

Câu hỏi: đây là về nội suy (nội địa cho miền) hay ngoại suy? Chúng được xử lý khác nhau. Họ cũng rất phụ thuộc vào chức năng "cơ sở". Một hàm cơ sở xuyên tâm như mong đợi trong GLM sẽ có hành vi khác biệt đáng kể, đặc biệt là ngoài đuôi, hơn một số cơ sở đa thức bậc cao (er).
EngrStudent

EngrStudent, tôi quan tâm đến việc hiểu khái niệm những gì xảy ra trong cả hai trường hợp. Tôi đã giả định (có thể không chính xác) rằng quy trình này giống nhau trong cả hai trường hợp nhưng các giá trị kết quả khác nhau và khác nhau bởi các hàm cơ bản được sử dụng (nhưng quy trình đó giống nhau)
B_Miner

Trong các cơ sở đa thức có một hiện tượng đôi khi được gọi là "hiệu ứng Gibbs". Nếu bạn khớp dữ liệu là các mẫu thống nhất của phân phối chuẩn chuẩn cho một đa thức bậc 10, và sau đó nhìn vào chất lượng của phép nội suy, bạn sẽ thấy rằng ở cuối các sườn dốc cao và phép nội suy rất kém. Trong các cơ sở đa thức, người ta thường sử dụng phép ngoại suy bậc thấp hơn so với phép nội suy. Không biết "vật lý" xác định hiện tượng, ngoại suy thường là tuyến tính. Tôi sử dụng MatLab: mathworks.com/help/matlab/ref/interp1.html .
EngrStudent

Câu trả lời:


10

Cách dự đoán được tính như thế này:

Từ sự phù hợp ban đầu, bạn có các vị trí nút trải rộng trong phạm vi mean_radiusdữ liệu đào tạo của bạn. Cùng với mức độ của cơ sở B-spline (theo mặc định là khối mboost), các vị trí nút này xác định hình dạng của các hàm cơ sở B-spline của bạn. Mặc định trong mboostlà có 20 nút thắt bên trong, xác định 24 hàm cơ sở B-spline (không hỏi ...). Hãy gọi các hàm cơ bản này là . Hiệu ứng của đồng biến `` mean_radius`` được biểu diễn đơn giản là Đây là một mẹo rất gọn gàng, vì nó làm giảm vấn đề khó khăn khi ước tính hàm không xác định cho bài toán đơn giản hơn nhiều về ước lượng trọng số hồi quy tuyến tínhBj(x);j=1,,24x=

f(x)=j24Bj(x)θj
f(x)θj liên kết với một tập hợp các biến số tổng hợp .Bj(x)

Dự đoán sau đó không phức tạp lắm: Với các hệ số ước tính , chúng ta cần đánh giá cho dữ liệu dự đoán . Đối với điều đó, tất cả những gì chúng ta cần là các vị trí nút xác định các hàm cơ sở cho dữ liệu gốc. Sau đó, chúng tôi nhận được các giá trị dự đoán là θ^jBj();j=1,,24xnew

f^(xnew)=j24Bj(xnew)θ^j.

Vì việc tăng tốc là một quy trình lặp, nên các hệ số ước tính tại lần lặp dừng thực sự là tổng của các cập nhật hệ số trong các lần lặp . Nếu bạn thực sự muốn nắm bắt chi tiết, hãy xem đầu ra bạn nhận được từmstop1,,mstop

bbs(rnorm(100))$dpp(rep(1,100))$predict,

và đi khám phá từ đó. Ví dụ,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

các cuộc gọi

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

để đánh giá trên .Bj()xnew


điều đó thật tuyệt. Tôi tự hỏi nếu bạn sẽ giải thích rộng rãi những chức năng này làm gì? Có đúng là những gì cần thiết để "ghi điểm" dữ liệu mới sau đó là tập hợp các hệ số, vị trí nút được sử dụng khi đào tạo và công thức cho các spline? Có bất kỳ dữ liệu đào tạo nào cần thiết để ghi điểm dữ liệu mới (như trong mô hình KNN) không?
B_Miner

1
Thông tin nào bạn cần phụ thuộc vào loại cơ sở spline bạn sử dụng. Đối với B-splines, tất cả những gì bạn cần biết là thứ tự của B-splines (bậc hai / khối / vv ..) và các vị trí nút. "Công thức" cho B-splines là đệ quy, đệ quy Cox-de Boor . Tôi đã thêm một nửa câu vào câu trả lời của tôi.
fabian
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.