Tôi vừa thêm phương thức tóm tắt (hoặc chính xác hơn, tidies) "ridgelm"
đối tượng vào gói broom của mình. Điều này có dạng của hai Generics S3: tidy
và glance
. Bạn có thể cài đặt nó với devtools::install_github("dgrtwo/broom")
(mặc dù trước tiên bạn sẽ cần cài đặt devtools
).
Như một ví dụ, chúng ta hãy thiết lập một hồi quy sườn núi:
library(MASS)
names(longley)[1] <- "y"
fit <- lm.ridge(y ~ ., longley, lambda = seq(0.001, .05, .001))
Chức năng tidy
cung cấp một khung dữ liệu cho thấy mỗi sự kết hợp của lambda và thời hạn dự kiến:
library(broom)
td <- tidy(fit)
head(td)
## lambda GCV term estimate
## 1 0.001 0.1240 GNP 23.02
## 2 0.002 0.1217 GNP 21.27
## 3 0.003 0.1205 GNP 19.88
## 4 0.004 0.1199 GNP 18.75
## 5 0.005 0.1196 GNP 17.80
## 6 0.006 0.1196 GNP 16.99
Trong khi glance
chức năng tạo một bản tóm tắt một hàng, đặc biệt là các lựa chọn của lambda theo các phương pháp khác nhau:
g <- glance(fit)
g
## kHKB kLW lambdaGCV
## 1 0.006837 0.05267 0.006
này rất hữu ích vì nó giúp bạn dễ dàng vẽ và khám phá dữ liệu cho mình chứ không phải dựa vào máy vẽ MASS của:
library(ggplot2)
ggplot(td, aes(lambda, estimate, color = term)) + geom_line()
# plot of GCV versus lambda
ggplot(td, aes(lambda, GCV)) + geom_line() +
geom_vline(xintercept = g$lambdaGCV, col = "red", lty = 2)
Để biết thêm về các phương pháp , xem ?ridgelm_tidiers
hoặc xem họa tiết của gói để biết thêm thông tin về các phương pháp tidy
và glance
nói chung.
Thay vì nháy mắt Bạn có thể sử dụng chức năng dựng sẵn 'chọn' - nó hoạt động giống nhau. Hàm ggplot hoạt động giống như plot.lmridge thông thường (nhưng tất nhiên trông có vẻ pritty hơn). –
@MarcinKosinski: 'select' không hoạt động theo cách tương tự vì nó * in * các giá trị đã chọn thay vì trả lại chúng (vì vậy không có cách nào để lưu chúng, trích xuất chúng, kết hợp chúng hoặc thêm chúng vào biểu đồ, ví dụ). 'plot.ridgelm' tạo ra một đồ thị tương tự, nhưng đáng chú ý là nó không đi kèm với một huyền thoại, hoặc một cách để chọn màu sắc. (Thực ra vì 'plot.ridgelm' không truyền theo' ... 'thành' matplot', bạn có khả năng hạn chế tùy chỉnh nó). –
Ok tôi hiểu rồi. Cảm ơn :) –