Cách điều chỉnh làm mịn trong mô hình GAM của mgcv


14

Tôi đang cố gắng tìm ra cách kiểm soát các tham số làm mịn trong mô hình gamcv: gam.

Tôi có một biến nhị thức mà tôi đang cố gắng mô hình hóa chủ yếu là hàm của tọa độ x và y trên một lưới cố định, cộng với một số biến khác có ảnh hưởng nhỏ hơn. Trước đây, tôi đã xây dựng một mô hình hồi quy cục bộ khá tốt bằng cách sử dụng gói locfit và chỉ các giá trị (x, y).

Tuy nhiên, tôi muốn thử kết hợp các biến khác vào mô hình và có vẻ như các mô hình phụ gia tổng quát (GAM) là một khả năng tốt. Sau khi xem các gói gam và mgcv, cả hai đều có chức năng GAM, tôi đã chọn cái sau vì một số ý kiến ​​trong các chủ đề danh sách gửi thư dường như khuyên dùng nó. Một nhược điểm là nó dường như không hỗ trợ hồi quy cục bộ mượt mà hơn như hoàng thổ hoặc locfit.

Để bắt đầu, tôi chỉ muốn thử sao chép mô hình locfit, chỉ sử dụng tọa độ (x, y). Tôi đã thử với cả sản phẩm mịn và sản phẩm tenor:

my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1)

my.gam.s  <- gam(z ~  s(x, y), family=binomial(logit), data=my.data, scale = -1)

Tuy nhiên, âm mưu dự đoán từ mô hình, chúng được làm mịn hơn nhiều so với mô hình locfit. Vì vậy, tôi đã cố gắng điều chỉnh mô hình để không vượt quá nhiều. Tôi đã thử điều chỉnh các tham số sp và k, nhưng tôi không rõ chúng ảnh hưởng đến việc làm mịn như thế nào. Trong locfit, tham số nn kiểm soát nhịp của vùng lân cận được sử dụng, với các giá trị nhỏ hơn cho phép làm mịn ít hơn và "lắc lư" hơn, giúp thu được một số khu vực trên lưới nơi xác suất của kết quả nhị thức thay đổi nhanh chóng. Làm thế nào tôi có thể thiết lập mô hình gam để cho phép nó hoạt động tương tự?

Câu trả lời:


22

Đối ksố thiết lập hiệu quả tính chiều của ma trận làm mịn cho mỗi thuật ngữ. gam()đang sử dụng điểm số GCV hoặc UBRE để chọn mức độ mịn tối ưu, nhưng nó chỉ có thể hoạt động trong phạm vi chiều của ma trận làm mịn. Theo mặc định, te()làm mịn có k = 5^2cho bề mặt 2d. Tôi quên những gì nó là s()để kiểm tra các tài liệu. Lời khuyên hiện tại của Simon Wood, tác giả của mgcv , là nếu mức độ mịn được chọn bởi mô hình ở mức hoặc gần với giới hạn của chiều được áp đặt bởi giá trị được sử dụng k, bạn nên tăng kvà chỉnh lại mô hình để xem nếu mô hình phức tạp hơn được chọn từ ma trận làm mịn chiều cao hơn.

Tuy nhiên, tôi không biết locfit hoạt động như thế nào , nhưng bạn cần phải có thứ gì đó ngăn bạn lắp một bề mặt quá phức tạp (GCV và UBRE, hoặc (RE) ML nếu bạn chọn sử dụng chúng [bạn không thể như bạn thiết lập scale = -1], đang cố gắng làm điều đó), không được hỗ trợ bởi dữ liệu. Nói cách khác, bạn có thể phù hợp với các tính năng rất cục bộ của dữ liệu nhưng bạn có phù hợp với nhiễu trong mẫu dữ liệu bạn đã thu thập hoặc bạn có phù hợp với giá trị trung bình của phân phối xác suất không? gam() có thể đang nói với bạn điều gì đó về những gì có thể được ước tính từ dữ liệu của bạn, giả sử rằng bạn đã sắp xếp thứ nguyên cơ bản (ở trên).

Một điều khác để xem xét là các chất làm mịn bạn đang sử dụng là toàn cầu theo nghĩa là độ mịn được chọn được áp dụng trên toàn bộ phạm vi của độ mịn. Các bộ làm mịn thích ứng có thể sử dụng "phụ cấp" độ mịn được phân bổ trong các phần của dữ liệu nơi đáp ứng đang thay đổi nhanh chóng. gam()có khả năng sử dụng chất làm mịn thích ứng.

Xem ?smooth.terms?adaptive.smoothđể xem những gì có thể được trang bị bằng cách sử dụng gam(). te()có thể kết hợp hầu hết nếu không phải tất cả các công cụ làm mịn này (kiểm tra các tài liệu có thể và không thể bao gồm trong các sản phẩm tenor) để bạn có thể sử dụng cơ sở mượt mà thích ứng để cố gắng nắm bắt tỷ lệ cục bộ tốt hơn trong các phần của dữ liệu phản ứng đang thay đổi nhanh chóng.

Tôi nên thêm, rằng bạn có thể lấy R để ước tính một mô hình với một mức độ tự do cố định được sử dụng bởi một thuật ngữ trơn tru, sử dụng fx = TRUEđối số s()te(). Về cơ bản, bộ k phải là những gì bạn muốn và fx = TRUEgam()sẽ chỉ phù hợp với một spline hồi quy của độ cố định của tự do không phải là một hồi quy spline phạt.


Cảm ơn rất nhiều, Gavin, vì một câu trả lời chi tiết như vậy. Tôi hoàn toàn bỏ lỡ các chất làm mịn thích ứng, và sẽ thử chúng. Tôi hiểu mối quan tâm về việc quá mức, nhưng những gì tôi đã làm với gam cho đến nay không hiển thị các tính năng trong dữ liệu được biết là có ở đó thông qua chuyên môn về miền.
đại tá triq
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.