Линейная регрессия - перемещение независимых и зависимых столбцов для каждого прогона - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь решить эту проблему:

Допустим, у меня есть data("mtcars") фрейм данных. Я хотел бы выполнить регрессию для двух столбцов этого фрейма данных (например, mtcars$mpg против mtcars$wt), сохранить R-квадрат каждой регрессии и остатки каждой регрессии в двух разных фреймах данных, а затем переместить столбцы вправо для обоих независимых и зависимые переменные (например, mtcars$cyl против mtcars$qsec). Мне нужно будет повторять это до тех пор, пока я не достигну последнего столбца независимых переменных (в этой базе данных mtcars это будет столбец drat).

Любая помощь будет принята!

1 Ответ

1 голос
/ 22 февраля 2020

Использовать rollapply для индекса столбца. Список (c (- 5, 0)) означает использование смещений -5 и 0. На каждой итерации.

library(zoo)

resids <- t(rollapply(1:ncol(mtcars), list(c(-5, 0)), 
  function(ix) resid(lm(mtcars[, ix]))))

rsquareds <- rollapply(1:ncol(mtcars), list(c(-5, 0)), 
  function(ix) summary(lm(mtcars[, ix]))$r.squared)

Если вы хотите изменить, какие из них являются зависимыми и независимыми, используйте вместо этого list(c(0, -5)) .

...