Mặc dù @kith mở đường, có hơn có thể được thực hiện. Trên thực tế, toàn bộ quá trình có thể được tự động hóa. Trước tiên, hãy tạo ra một số dữ liệu:
x1 <- rnorm(10)
x2 <- rnorm(10)
x3 <- rnorm(10)
y <- rnorm(10)
x4 <- y + 5 # this will make a nice significant variable to test our code
(mydata <- as.data.frame(cbind(x1,x2,x3,x4,y)))
mô hình của chúng tôi là sau đó:
model <- glm(formula=y~x1+x2+x3+x4,data=mydata)
Và vector Boolean của các hệ số thực sự có thể được chiết xuất bởi:
toselect.x <- summary(model)$coeff[-1,4] < 0.05 # credit to kith
Nhưng đây không phải là tất cả các! Ngoài ra, chúng tôi có thể thực hiện việc này:
# select sig. variables
relevant.x <- names(toselect.x)[toselect.x == TRUE]
# formula with only sig variables
sig.formula <- as.formula(paste("y ~",relevant.x))
EDIT: như áp phích tiếp theo đã chỉ ra, dòng sau phải là sig.formula <- as.formula(paste("y ~",paste(relevant.x, collapse= "+")))
để bao gồm tất cả các biến.
Và chạy hồi quy với các biến chỉ có ý nghĩa như OP ban đầu muốn:
sig.model <- glm(formula=sig.formula,data=mydata)
Trong trường hợp này ước tính sẽ bằng 1 khi chúng ta đã xác định x4 như y + 5, ngụ ý mối quan hệ hoàn hảo.
Dùng thử gói [glmulti] (http://www.jstatsoft.org/v34/i12/paper). – krlmlr
Ngoài ra, bạn phải được cảnh báo về việc chọn các biến "quan trọng" trong thời trang này. Ý nghĩa thống kê có thể được thay đổi bằng cách thêm/loại bỏ một biến độc lập.Câu hỏi của bạn cho thấy việc xóa * tất cả * biến không đáng kể trong lần chạy đầu tiên. Khi làm điều đó, một số biến quan trọng ban đầu sẽ trở nên không đáng kể, trong khi một số biến bạn đã xóa có thể có giá trị tiên đoán tốt. Những gì bạn thực sự muốn là loại bỏ từng cái một, và so sánh từng bước của mô hình phù hợp. Xem chủ đề này: http://bit.ly/ZLVaD5 –
Xem thêm điều này: http://www.statmethods.net/stats/regression.html –