Чи є теоретична проблема із усередненням коефіцієнтів регресії для побудови моделі?


13

Я хочу побудувати регресійну модель, яка є середнім числом декількох моделей OLS, кожна базується на підмножині повних даних. Ідея цього лежить в основі цієї роботи . Я створюю k складок і будую k OLS-моделі, кожна з даних без однієї складки. Потім я середнє значення коефіцієнтів регресії, щоб отримати остаточну модель.

Це вражає мене чимось схожим на щось на кшталт випадкової лісової регресії, в якій побудовані та усереднені множинні дерева регресії. Однак продуктивність усередненої моделі OLS здається гіршою, ніж просто побудова однієї моделі OLS на всіх даних. Моє запитання: чи є теоретична причина, чому усереднення декількох моделей OLS є неправильним чи небажаним? Чи можна очікувати усереднення декількох моделей OLS для зменшення перевитрати? Нижче наведено приклад 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
Ви можете спробувати використовувати середні значення коефіцієнта, а не середні значення коефіцієнта. Я бачив, що ця методика може іноді дати кращі результати.
Джеймс Філліпс

Можливо, це не призведе до збільшення продуктивності або зменшення надмірного розміщення, але у нього є інші корисні програми. Цей хлопець використовує для вибору правильної тенденції для своїх потокових даних часового ряду youtube.com/watch?v=0zpg9ODE6Ww&index=64&list=WL
Джош

Дивіться також цю публікацію, stats.stackexchange.com/q/68030/28746
Алекос Пападопулос

Відповіді:


14

Враховуючи, що OLS мінімізує MSE залишків серед усіх неупереджених лінійних оцінювачів (за теоремою Гаусса-Маркова) і що середньозважене середнє значення об'єктивних лінійних оцінювачів (наприклад, оцінені лінійні функції від кожної з ваших складок ) є самою неупередженою. лінійного оцінювача, повинно бути так, що OLS, застосований до всього набору даних, буде перевершувати середньозважене середнє значення лінійних регресій, якщо випадково вони не дадуть однакових результатів.kkk

Щодо переозброєння - лінійні моделі не схильні до переозброєння так само, як, наприклад, машини для підвищення рівня градієнта. Забезпечення лінійності забезпечує це. Якщо у вас є дуже невелика кількість людей, які відтягують вашу регресійну лінію OLS далеко від місця, де вона має бути, ваш підхід може трохи - лише незначно - полегшити шкоду, але існує набагато перевершений підхід до вирішення цієї проблеми в контексті дуже невелика кількість людей, що випадають, наприклад, міцна лінійна регресія або просто побудова даних, ідентифікація, а потім видалення залишків (якщо припустити, що вони справді не є представником процесу генерації даних, параметри якого ви зацікавлені в оцінці).


Ви маєте на увазі, що ви маєте на увазі, що він має кращі оцінки коефіцієнтів, або що він буде кращим, ніж підхід kfold по всій платі (за винятком інших людей, як ви згадували)?
Араш Ховайда

Він матиме нижчий МСЕ залишків, ніж підхід k-кратного, що передбачає, якщо припустити, що функціональна форма моделі є правильною, що в середньому вона матиме кращі оцінки коефіцієнтів і буде кращим, ніж підхід k-кратного рада - якщо ваша конкретна проблема не вказує на те, що для MSE слід віддати перевагу іншому критерію, наприклад, середній абсолютній помилці.
jbowman

1

А як щодо запуску завантажувального пристрою? Створіть 100-1000 повторних зразків зі 100% -ною швидкістю вибірки, використовуючи необмежену випадкову вибірку (вибірка з заміною). Запустіть моделі реплікацією та отримайте медіану для кожного коефіцієнта регресії. Або спробуйте середину. Огляньте і розподіл кожного коефіцієнта, щоб побачити, чи змінюються знаки та на які сукупні значення розподілу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.