r - 线性回归 - 为每次运行移动独立列和相关列
问题描述
我正在努力解决这个问题:
假设我有data("mtcars")
数据框。我想对此数据帧的两列执行回归(例如mtcars$mpg
vs mtcars$wt
),将每个回归的 R 平方和每个回归的残差存储到两个不同的数据帧中,然后将独立变量和因变量的列向右移动(例如mtcars$cyl
vs mtcars$qsec
)。我将需要重复此操作,直到到达最后一个自变量列(在此mtcars
数据库中它将是drat
列)。
任何帮助,将不胜感激!
解决方案
在列索引上使用 rollapply。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))
改用。
推荐阅读
- java - 如何绕过 javax.validation.ValidationException:HV000064:无法实例化 ConstraintValidator:在 Spring
- javascript - 带有动漫js的Svg变形不改变路径
- c# - .NET Core 3.1 - 无法加载文件或程序集 System.Runtime,版本 = 4.2.2.0
- parsing - Microsoft Word 剪贴板 HTML 文档
- selenium - Selenium 导航通过 selenium 保持循环(python)
- javascript - 未加载反应脚本
- javascript - AngularJS 弹出表单
- vue.js - 我想根据用户在所有产品的 3 个不同参数中所做的选择在 Vue Js 中显示过滤后的产品
- django - Http 和 https 混淆 request.build_absolute_uri()?
- laravel - {id} 与 {tag} 之间的 Laravel 路由差异