GAM thích ứng làm mịn trong mgcv


9

Cuốn sách của Simon Wood về GAM và mgcv gói R liên quan của anh ta đều rất chi tiết và nhiều thông tin khi nói về lý thuyết GAM và mô hình phù hợp với dữ liệu thực và mô phỏng.

Đối với độ mịn 1D, thực sự không có gì phải lo lắng, hãy tiết kiệm để quyết định có nên thực hiện các chức năng cơ bản theo chu kỳ hay không, có thể cho kết quả dự đoán rất khác so với làm mịn khối, tấm mỏng và P-spline, bởi vì, trong trường hợp thích ứng, nhiều GAM được trang bị cho các khu vực khác nhau dọc theo một đường nối. Theo như tôi có thể nói, các cơ sở tuần hoàn là phổ biến trong mô hình chuỗi thời gian, trong khi độ mịn thích ứng nên được xem xét khi dữ liệu thay đổi rất nhiều đối với biến phản ứng; tuy nhiên, làm mịn thích ứng nên được sử dụng "một cách tiết kiệm và cẩn thận".

Tôi đã điều tra GAM một thời gian rồi và đưa ra câu hỏi nghiên cứu của tôi, tôi thấy mình thay đổi suy nghĩ rất nhiều khi thực hiện suôn sẻ. mgcv bao gồm 17 loại mịn khác nhau để lựa chọn (theo số lượng của tôi). Tôi đã xem xét cả hai khối mịn và P-spline.

Câu hỏi của tôi bây giờ là : khi nào nên xem xét độ mịn thích ứng so với các đối tác không thích ứng, nếu mục tiêu cuối cùng là sử dụng GAM được trang bị cho mục đích dự đoán? Đối với mục đích của tôi, tôi đang gắn bó với tiêu chí độ mịn mặc định của GCV, mặc dù nó có xu hướng kém mịn màng.

Các tài liệu đang phát triển trong các GAM sinh thái ứng dụng, nhưng tôi chưa bắt gặp một nghiên cứu thực hiện một sự thích nghi mượt mà.

Bất kỳ lời khuyên được đánh giá cao.

Câu trả lời:


20

Hầu hết các độ mịn bổ sung trong hộp công cụ mgcv thực sự có sẵn cho các ứng dụng chuyên gia - bạn có thể bỏ qua chúng cho các GAM thông thường, đặc biệt là các độ mịn đơn biến (bạn không cần một spline hiệu ứng ngẫu nhiên, một spline trên quả cầu, trường ngẫu nhiên Markov, hoặc một bộ phim xà phòng mượt mà hơn nếu bạn có dữ liệu đơn biến chẳng hạn.)

Nếu bạn có thể chịu chi phí thiết lập, hãy sử dụng spline hồi quy tấm mỏng (TPRS).

Các spline này là tối ưu theo nghĩa MSE không triệu chứng, nhưng yêu cầu một chức năng cơ bản cho mỗi quan sát. Những gì Simon làm trong mgcv là tạo ra một phiên bản xếp hạng thấp của TPRS tiêu chuẩn bằng cách sử dụng toàn bộ cơ sở TPRS và khiến nó bị phân hủy. Điều này tạo ra một cơ sở mới trong đó khàm cơ sở đầu tiên trong không gian mới giữ lại hầu hết tín hiệu trong cơ sở ban đầu, nhưng trong nhiều hàm cơ sở ít hơn. Đây là cách mgcv quản lý để có được một TPRS chỉ sử dụng một số chức năng cơ bản được chỉ định thay vì một chức năng cho mỗi quan sát. Sự xuất tinh này bảo tồn phần lớn sự tối ưu của cơ sở TPRS cổ điển, nhưng với nỗ lực tính toán đáng kể cho các tập dữ liệu lớn.

Nếu bạn không thể chịu chi phí thiết lập TPRS, hãy sử dụng các hàm hồi quy bậc ba (CRS)

Đây là một cơ sở nhanh chóng để tạo và do đó phù hợp với các vấn đề với nhiều dữ liệu. Tuy nhiên, nó dựa trên nút thắt, do đó, ở một mức độ nào đó, người dùng bây giờ cần phải chọn vị trí các nút đó. Đối với hầu hết các vấn đề, có rất ít vấn đề đạt được bằng cách vượt ra ngoài vị trí nút mặc định (tại ranh giới của dữ liệu và cách đều nhau ở giữa), nhưng nếu bạn có mẫu đặc biệt không đồng đều trên phạm vi của hiệp phương sai, bạn có thể chọn đặt các nút thắt ví dụ, các lượng tử mẫu cách đều nhau của hiệp phương sai.

Mỗi loại mịn khác trong mgcv đều đặc biệt, được sử dụng khi bạn muốn làm mịn đẳng hướng hoặc hai hoặc nhiều đồng biến, hoặc để làm mịn không gian, hoặc thực hiện co rút, hoặc hiệu ứng ngẫu nhiên và spline ngẫu nhiên, hoặc ở đó các biến số theo chu kỳ, hoặc độ rung thay đổi phạm vi của một hiệp phương sai. Bạn chỉ cần mạo hiểm đến mức này vào hộp công cụ trơn tru nếu bạn gặp vấn đề cần xử lý đặc biệt.

Co ngót

Có các phiên bản thu nhỏ của cả TPRS và CRS tính bằng mgcv . Những điều này thực hiện một spline trong đó phần hoàn toàn trơn tru của cơ sở cũng phải chịu hình phạt mịn. Điều này cho phép quá trình lựa chọn độ mịn thu nhỏ lại một mặt mịn hơn cả một hàm tuyến tính về cơ bản bằng không. Điều này cho phép hình phạt độ mịn cũng thực hiện lựa chọn tính năng.

Duchon splines, P splines và B splines

Các spline này có sẵn cho các ứng dụng chuyên gia, nơi bạn cần xác định thứ tự cơ sở và thứ tự phạt riêng biệt. Duchon splines tổng quát hóa TPRS. Tôi có ấn tượng rằng các spline P đã được thêm vào mgcv để cho phép so sánh với các cách tiếp cận dựa trên khả năng bị phạt khác, và bởi vì chúng là các spline được sử dụng bởi Eilers & Marx trong bài báo năm 1996 của họ, đã thúc đẩy rất nhiều công việc tiếp theo trong GAMs. Các spline P cũng hữu ích như là một cơ sở cho các spline khác, như các spline với các ràng buộc hình dạng và các spline thích ứng.

Các spline B, như được thực hiện trong mgcv cho phép rất linh hoạt trong việc thiết lập hình phạt và các nút thắt cho các spline, có thể cho phép một số phép ngoại suy vượt quá phạm vi của dữ liệu được quan sát.

Spline tuần hoàn

Nếu phạm vi của các giá trị cho hiệp phương sai có thể được coi là trên một vòng tròn trong đó điểm cuối của phạm vi phải thực sự tương đương (tháng hoặc ngày trong năm, góc di chuyển, khía cạnh, hướng gió), có thể áp dụng ràng buộc này Điều cơ bản. Nếu bạn có đồng biến như thế này, thì sẽ hợp lý khi áp đặt ràng buộc này.

Chất làm mịn thích ứng

Thay vì điều chỉnh một GAM riêng biệt trong các phần của hiệp phương sai, các spline thích ứng sử dụng ma trận hình phạt có trọng số, trong đó các trọng số được phép thay đổi trơn tru trong phạm vi của hiệp phương sai. Ví dụ, đối với các spline TPRS và CRS, chúng giả định mức độ mịn như nhau trên phạm vi của hiệp phương sai. Nếu bạn có một mối quan hệ trong trường hợp này không phải là trường hợp, thì cuối cùng bạn có thể sử dụng nhiều mức độ tự do hơn dự kiến ​​để cho phép spline thích ứng với các phần uốn lượn và không uốn lượn. Một ví dụ kinh điển trong văn học làm mịn là

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()

nhập mô tả hình ảnh ở đây

Những dữ liệu này thể hiện rõ ràng các giai đoạn có độ mịn khác nhau - hiệu quả bằng không đối với phần đầu tiên của loạt bài, rất nhiều trong quá trình tác động, giảm sau đó.

nếu chúng tôi phù hợp với một GAM tiêu chuẩn cho những dữ liệu này,

m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')

chúng ta có một sự phù hợp hợp lý nhưng có một chút sự gượng gạo ở đầu và cuối phạm vi timesvà sự phù hợp được sử dụng ~ 14 độ tự do

plot(m1, scheme = 1, residuals = TRUE, pch= 16)

nhập mô tả hình ảnh ở đây

Để phù hợp với độ rung khác nhau, một spline thích nghi sử dụng ma trận hình phạt có trọng số với các trọng số thay đổi trơn tru với hiệp phương sai. Ở đây tôi chỉnh lại mô hình ban đầu với cùng kích thước cơ sở (k = 20) nhưng bây giờ chúng tôi có 5 tham số độ mịn (mặc định là m = 5) thay vì 1 ban đầu.

m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')

Lưu ý rằng mô hình này sử dụng mức độ tự do ít hơn nhiều (~ 8) và độ trơn được trang bị ít hơn ở phần cuối, trong khi vẫn có thể điều chỉnh phù hợp với những thay đổi lớn trong gia tốc đầu trong quá trình va chạm.

nhập mô tả hình ảnh ở đây

Điều thực sự đang diễn ra ở đây là spline có cơ sở để thông suốt và là cơ sở cho hình phạt (để cho phép các trọng số thay đổi trơn tru với hiệp phương sai). Theo mặc định cả trong số này là P splines, nhưng bạn cũng có thể sử dụng các loại cơ sở CRS quá ( bschỉ có thể là một trong những 'ps', 'cr', 'cc', 'cs'.)

Như được minh họa ở đây, việc lựa chọn có nên thích nghi hay không thực sự phụ thuộc vào vấn đề; nếu bạn có một mối quan hệ mà bạn cho rằng hình thức chức năng là trơn tru, nhưng mức độ trơn tru khác nhau trong phạm vi của hiệp phương sai trong mối quan hệ thì một spline thích nghi có thể có ý nghĩa. Nếu loạt của bạn có các giai đoạn thay đổi nhanh chóng và các giai đoạn thay đổi thấp hoặc dần dần, điều đó có thể chỉ ra rằng có thể cần một sự thích nghi trơn tru.


1
Cảm ơn anh! Đây thực sự là một câu trả lời tuyệt vời mà tôi nghĩ cũng sẽ giúp những người khác có cùng mối quan tâm.
compbiostats

Đối với vấn đề của tôi, tôi phù hợp với một đường cong tăng đơn điệu mà cuối cùng là cao nguyên thành một tiệm cận ngang. Khi bắt đầu đường cong của tôi, dữ liệu tăng khá nhanh, trước khi chậm dần về phía tiệm cận. Trong một số trường hợp, ngoại suy (gần / xa) ngoài phạm vi dữ liệu quan sát là cần thiết. Mô hình của tôi rất đơn giản, nhưng tôi nhận ra rằng dự đoán ở đây là đầu cơ tốt nhất.
compbiostats
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.