线性回归-每次运行都移动独立列和从属列

问题描述 投票:0回答:1

我正在努力解决这个问题:

假设我有data("mtcars")个数据帧。我想对此数据框的两列执行回归(例如mtcars$mpgmtcars$wt),将每个回归的R平方和每个回归的残差存储到两个不同的数据框中,然后将两个独立的列向右移动和因变量(例如mtcars$cylmtcars$qsec)。我将需要重复此操作,直到到达最后一个独立变量列为止(在此mtcars数据库中将是drat列)。

任何帮助将不胜感激!

r for-loop regression sapply
1个回答
1
投票

使用滚动应用于列索引。 List(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))

© www.soinside.com 2019 - 2024. All rights reserved.