Bối cảnh: Multi-mô hình suy luận với glmulti
glmulti là một chức năng R/gói để lựa chọn mô hình tự động cho các mô hình tuyến tính tổng quát xây dựng tất cả các khả năng mô hình tuyến tính tổng quát cho một biến phụ thuộc và một bộ các dự đoán, phù hợp với họ thông qua chức năng cổ điển glm và cho phép sau đó cho suy luận nhiều mô hình (ví dụ, sử dụng trọng lượng mô hình có nguồn gốc từ AICc, BIC). glmulti hoạt động theo lý thuyết cũng với bất kỳ hàm nào khác trả về hệ số, khả năng đăng nhập của mô hình và số tham số miễn phí (và có thể thông tin khác?) Ở cùng định dạng glm.Chức năng/gói nào cho hồi quy tuyến tính mạnh mẽ hoạt động với glmulti (tức là, hoạt động như glm)?
Mục tiêu của tôi: Multi-mô hình suy luận với các lỗi mạnh mẽ
Tôi muốn sử dụng glmulti với mô hình mạnh mẽ của các lỗi của một biến phụ thuộc định lượng để bảo vệ chống lại các tác động ra giá trị ngoại biên.
Ví dụ: tôi có thể giả định rằng các lỗi trong mô hình tuyến tính được phân phối dưới dạng t distribution thay vì phân phối bình thường. Với tham số kurtosis của nó, phân phối t có thể có đuôi nặng và do đó mạnh mẽ hơn với các ngoại lệ (so với phân bố chuẩn).
Tuy nhiên, tôi không cam kết sử dụng phương pháp phân phối t. Tôi hài lòng với bất kỳ phương pháp nào mang lại khả năng đăng nhập và do đó hoạt động với phương pháp tiếp cận đa phương thức trong glmulti. Nhưng điều đó có nghĩa, mà tiếc là tôi không thể sử dụng các mô hình tuyến tính mạnh mẽ nổi tiếng trong R (ví dụ, lmRob từ robust hoặc lmrob từ robustbase) bởi vì họ không hoạt động trong khuôn khổ loga và do đó có thể không làm việc với glmulti.
Vấn đề: Tôi không thể tìm thấy một hàm hồi quy mạnh mẽ làm việc với glmulti
Các chỉ hàm hồi quy tuyến tính mạnh mẽ cho RI thấy rằng hoạt động trong khuôn khổ loga là heavyLm (từ heavy gói); nó mô hình các lỗi với phân phối t. Thật không may, heavyLm không hoạt động với glmulti (ít nhất là không nằm ngoài hộp) vì nó không có phương pháp S3 cho loglik (và có thể cả những thứ khác).
Để minh họa:
library(glmulti)
library(heavy)
Sử dụng dữ liệu stackloss
head(stackloss)
Regular mô hình Gaussian tuyến tính:
summary(glm(stack.loss ~ ., data = stackloss))
Multi-mô hình suy luận với glmulti chúng tôi ing GLM 's mặc định chức năng liên kết Gaussian
stackloss.glmulti <- glmulti(stack.loss ~ ., data = stackloss, level=1, crit=bic)
print(stackloss.glmulti)
plot(stackloss.glmulti)
mô hình tuyến tính với t phân phối lỗi (mặc định là df = 4)
summary(heavyLm(stack.loss ~ ., data = stackloss))
Multi-mô hình suy luận với glmulti gọi heavyLm như chức năng phù hợp
stackloss.heavyLm.glmulti <- glmulti(stack.loss ~ .,
data = stackloss, level=1, crit=bic, fitfunction=heavyLm)
cung cấp các lỗi sau:
Initialization...
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "heavyLm".
Nếu tôi xác định các chức năng sau đây,
logLik.heavyLm <- function(x){x$logLik}
glmulti có thể lấy loga, nhưng sau đó các lỗi sau xảy ra:
Initialization...
Error in .jcall(molly, "V", "supplyErrorDF",
as.integer(attr(logLik(fitfunc(as.formula(paste(y, :
method supplyErrorDF with signature ([I)V not found
Câu hỏi đặt ra: Những chức năng/gói cho hồi quy tuyến tính mạnh mẽ hoạt động với glmulti (tức là, cư xử như glm)?
Có lẽ là một cách để xác định chức năng hơn nữa để có được heavyLm làm việc với glmulti, nhưng trước khi bắt tay vào cuộc hành trình này, tôi muốn hỏi xem ai
- biết của một hàm hồi quy tuyến tính mạnh mẽ mà (a) hoạt động theo khung khả năng đăng nhập và (b) hoạt động như glm (và do đó sẽ hoạt động với glmulti ngoài hộp).
- có heavyLm đã hoạt động với glmulti.
Mọi trợ giúp đều được đánh giá cao!
Cảm ơn rất nhiều! – jonlemon