Có bất kỳ vấn đề lý thuyết với các hệ số hồi quy trung bình để xây dựng một mô hình?


12

Tôi muốn xây dựng một mô hình hồi quy trung bình của nhiều mô hình OLS, mỗi mô hình dựa trên một tập hợp con của dữ liệu đầy đủ. Ý tưởng đằng sau điều này được dựa trên bài báo này . Tôi tạo k nếp gấp và xây dựng k mô hình OLS, mỗi mô hình trên dữ liệu không có một nếp gấp. Sau đó tôi lấy trung bình các hệ số hồi quy để có được mô hình cuối cùng.

Điều này gây ấn tượng với tôi giống như một cái gì đó giống như hồi quy rừng ngẫu nhiên, trong đó nhiều cây hồi quy được xây dựng và tính trung bình. Tuy nhiên, hiệu suất của mô hình OLS trung bình có vẻ tệ hơn là chỉ xây dựng một mô hình OLS trên toàn bộ dữ liệu. Câu hỏi của tôi là: có một lý do lý thuyết tại sao trung bình nhiều mô hình OLS là sai hoặc không mong muốn? Chúng ta có thể mong đợi trung bình nhiều mô hình OLS để giảm quá mức không? Dưới đây là một ví dụ R.

#Load and prepare data
library(MASS)
data(Boston)
trn <- Boston[1:400,]
tst <- Boston[401:nrow(Boston),]

#Create function to build k averaging OLS model
lmave <- function(formula, data, k, ...){
  lmall <- lm(formula, data, ...)
  folds <- cut(seq(1, nrow(data)), breaks=k, labels=FALSE)
  for(i in 1:k){
    tstIdx <- which(folds==i, arr.ind = TRUE)
    tst <- data[tstIdx, ]
    trn <- data[-tstIdx, ]
    assign(paste0('lm', i), lm(formula, data = trn, ...))
  }

  coefs <- data.frame(lm1=numeric(length(lm1$coefficients)))
  for(i in 1:k){
    coefs[, paste0('lm', i)] <- get(paste0('lm', i))$coefficients
  }
  lmnames <- names(lmall$coefficients)
  lmall$coefficients <- rowMeans(coefs)
  names(lmall$coefficients) <- lmnames
  lmall$fitted.values <- predict(lmall, data)
  target <- trimws(gsub('~.*$', '', formula))
  lmall$residuals <- data[, target] - lmall$fitted.values

  return(lmall)
}

#Build OLS model on all trn data
olsfit <- lm(medv ~ ., data=trn)

#Build model averaging five OLS 
olsavefit <- lmave('medv ~ .', data=trn, k=5)

#Build random forest model
library(randomForest)
set.seed(10)
rffit <- randomForest(medv ~ ., data=trn)

#Get RMSE of predicted fits on tst
library(Metrics)
rmse(tst$medv, predict(olsfit, tst))
[1] 6.155792
rmse(tst$medv, predict(olsavefit, tst))
[1] 7.661 ##Performs worse than olsfit and rffit
rmse(tst$medv, predict(rffit, tst))
[1] 4.259403

2
Bạn có thể thử sử dụng các giá trị hệ số trung bình , thay vì các giá trị hệ số trung bình . Tôi đã thấy rằng kỹ thuật này đôi khi có thể mang lại kết quả tốt hơn.
James Phillips

Nó có thể sẽ không cung cấp cho bạn một hiệu suất tăng hoặc giảm so với phù hợp, nhưng nó có các ứng dụng hữu ích khác. Chap này sử dụng để chọn xu hướng chính xác cho dữ liệu chuỗi thời gian phát trực tuyến của mình youtube.com/watch?v=0zpg9ODE6Ww&index=64&list=WL
josh

Câu trả lời:


13

kk

Đối với quá mức - các mô hình tuyến tính không có xu hướng bị quá mức theo cùng một cách, ví dụ, các máy tăng tốc Gradient là. Việc thực thi tuyến tính nhìn thấy điều đó. Nếu bạn có một số lượng nhỏ các ngoại lệ kéo đường hồi quy OLS của bạn ra khỏi vị trí cần thiết, cách tiếp cận của bạn có thể hơi - chỉ một chút - cải thiện thiệt hại, nhưng có nhiều cách tiếp cận vượt trội để xử lý vấn đề đó trong bối cảnh một số lượng rất nhỏ các ngoại lệ, ví dụ: hồi quy tuyến tính mạnh mẽ hoặc đơn giản là vẽ dữ liệu, xác định và sau đó xóa các ngoại lệ (giả sử rằng chúng thực sự không đại diện cho quá trình tạo dữ liệu có tham số bạn quan tâm.)


bởi "vượt trội", bạn có nghĩa là nó sẽ có ước tính tốt hơn về các hệ số hoặc nó sẽ tốt hơn phương pháp tiếp cận trên bảng (không bao gồm các ngoại lệ, như bạn đã đề cập)?
Arash Howaida

Nó sẽ có MSE của phần dư thấp hơn so với phương pháp gấp k, nghĩa là, giả sử dạng chức năng của mô hình là chính xác, trung bình nó sẽ có ước tính tốt hơn về các hệ số và tốt hơn so với phương pháp gấp k hội đồng quản trị - trừ khi vấn đề cụ thể của bạn chỉ ra rằng một tiêu chí khác, ví dụ, lỗi tuyệt đối trung bình, sẽ được ưu tiên cho MSE.
jbowman

1

Còn việc chạy bootstrap thì sao? Tạo 100-1000 mẫu sao chép với tỷ lệ lấy mẫu 100% bằng cách sử dụng lấy mẫu ngẫu nhiên không hạn chế (lấy mẫu thay thế). Chạy các mô hình bằng cách nhân rộng và lấy trung vị cho mỗi hệ số hồi quy. Hoặc thử ý nghĩa. Ngoài ra hãy xem và phân phối của từng hệ số để xem nếu các dấu hiệu thay đổi và tại các giá trị phân phối tích lũy.

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.