Hồi quy từng bước trong R - Nó hoạt động như thế nào?


15

Tôi đang cố gắng để hiểu sự khác biệt cơ bản giữa hồi quy từng bước và hồi quy ngược trong R bằng cách sử dụng chức năng bước. Để hồi quy từng bước tôi đã sử dụng lệnh sau

  step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both")

Tôi đã nhận được đầu ra dưới đây cho mã trên.

ở đằng trước

Đối với lựa chọn biến ngược tôi đã sử dụng lệnh sau

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward")

Và tôi đã nhận được đầu ra dưới đây cho lạc hậu

phía sau

Theo như tôi đã hiểu, khi không có tham số nào được chỉ định, lựa chọn từng bước đóng vai trò là lùi trừ khi tham số "trên" và "dưới" được chỉ định trong R. Tuy nhiên, trong đầu ra của lựa chọn từng bước, có thêm + phân tán được thêm vào bước thứ 2 Hàm cố gắng đạt được bằng cách thêm + phân phối lại trong lựa chọn từng bước là gì? Tại sao R thêm + phân tán trong bước 2 trong khi kết quả là như nhau (giá trị AIC và giá trị lựa chọn mô hình) làm lựa chọn lùi. Làm thế nào là R chính xác làm việc trong lựa chọn từng bước?

Tôi thực sự muốn hiểu làm thế nào chức năng này hoạt động trong R. Cảm ơn trước sự giúp đỡ!

Câu trả lời:


16

Có lẽ sẽ dễ hiểu hơn về cách hồi quy từng bước được thực hiện bằng cách xem xét tất cả 15 mô hình lm có thể.

Đây là một cách nhanh chóng để tạo công thức cho tất cả 15 kết hợp.

library(leaps)
tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F)
all.mods <- summary(tmp)[[1]]
all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+"))))

head(all.mods)
[[1]]
mpg ~ drat
<environment: 0x0000000013a678d8>

[[2]]
mpg ~ qsec
<environment: 0x0000000013a6b3b0>

[[3]]
mpg ~ wt
<environment: 0x0000000013a6df28>

[[4]]
mpg ~ disp
<environment: 0x0000000013a70aa0>

[[5]]
mpg ~ wt + qsec
<environment: 0x0000000013a74540>

[[6]]
mpg ~ drat + disp
<environment: 0x0000000013a76f68>

Các giá trị AIC cho mỗi mô hình được trích xuất bằng:

all.lm<-lapply(all.mods, lm, mtcars)

sapply(all.lm, extractAIC)[2,]
 [1]  97.98786 111.77605  73.21736  77.39732  63.90843  77.92493  74.15591  79.02978  91.24052  71.35572
[11]  63.89108  65.90826  78.68074  72.97352  65.62733

Hãy quay trở lại bước hồi quy của bạn. Giá trị extractAIC cho lm (mpg ~ wt + drat + dist + qsec) là 65,63 (tương đương với mô hình 15 trong danh sách trên).

Nếu mô hình loại bỏ phân tán (-disp), thì lm (mpg ~ wt + drat + qsec) là 63.891 (hoặc mô hình 11 trong danh sách).

Nếu mô hình không xóa bất cứ thứ gì (không có), thì AIC vẫn là 65,63

Nếu mô hình loại bỏ qsec (-qsec), thì lm (mpg ~ wt + drat + dist) là 65.908 (mô hình 12).

Vân vân.

Về cơ bản bản tóm tắt cho thấy tất cả có thể loại bỏ từng bước một từ mô hình đầy đủ của bạn và so sánh giá trị extractAIC, bằng cách liệt kê chúng theo thứ tự tăng dần. Vì giá trị AIC nhỏ hơn có nhiều khả năng giống với mô hình TRUTH, bước giữ lại mô hình (-disp) trong bước một.

Quá trình được lặp lại một lần nữa, nhưng với mô hình được giữ lại (-disp) làm điểm bắt đầu. Các thuật ngữ được trừ ("ngược") hoặc trừ / thêm ("cả hai") để cho phép so sánh các mô hình. Vì giá trị AIC thấp nhất trong so sánh vẫn là mô hình (-disp), nên dừng quá trình và các mô hình kết quả được đưa ra.

Liên quan đến truy vấn của bạn: "Hàm cố gắng đạt được bằng cách thêm + phân tán lại trong lựa chọn từng bước là gì?", Trong trường hợp này, nó không thực sự làm gì cả, vì mô hình tốt nhất trong tất cả 15 mô hình là mô hình 11 , tức là lm (mpg ~ wt + drat + qsec).

Tuy nhiên, trong các mô hình phức tạp với số lượng lớn các yếu tố dự đoán đòi hỏi nhiều bước để giải quyết, việc thêm lại một thuật ngữ đã bị xóa ban đầu là rất quan trọng để cung cấp cách so sánh toàn diện nhất cho các điều khoản.

Hy vọng điều này sẽ giúp một cách nào đó.


6
"Vì giá trị AIC nhỏ hơn có nhiều khả năng giống với mô hình TRUTH" là sai thẳng. Xây dựng mô hình từng bước có khả năng giữ lại các dự đoán sai như nhau để loại bỏ các dự đoán thực sự ... trong số một loạt các vấn đề khác: stats.stackexchange.com/questions/115843/
Alexis

2
Rõ ràng đó là một lời nói dối. Đó là lý do tại sao lựa chọn mô hình dựa trên các tiêu chí duy nhất (như hồi quy từng bước) là một sự ngây thơ.
Adam Quek

@Alexis thích các đề xuất của bạn trong câu trả lời của bạn trong liên kết.
Adam Quek

3

Đây là một phản ứng đơn giản hóa. Đầu tiên, cả hai thủ tục đều cố gắng giảm AIC của một mô hình nhất định, nhưng họ thực hiện nó theo những cách khác nhau. Sau đó, sự khác biệt cơ bản là trong quy trình lựa chọn ngược, bạn chỉ có thể loại bỏ các biến khỏi mô hình ở bất kỳ bước nào, trong khi trong lựa chọn từng bước, bạn cũng có thể thêm các biến vào mô hình.

Về đầu ra trong lựa chọn từng bước, nói chung, đầu ra cho thấy bạn đã ra lệnh thay thế để giảm AIC, vì vậy hàng đầu tiên ở bất kỳ bước nào là lựa chọn tốt nhất của bạn. Sau đó, có một +disphàng thứ ba vì thêm biến đó vào mô hình của bạn sẽ là lựa chọn tốt thứ ba để giảm AIC của bạn. Nhưng rõ ràng, như sự thay thế tốt nhất của bạn là <none>, điều đó có nghĩa là không làm gì cả, quy trình dừng lại và cho bạn kết quả giống như trong lựa chọn lạc hậu.

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.