【问题标题】:Conduct multivariate regression on every nth row of dataframe in R对 R 中的每 n 行数据帧进行多元回归
【发布时间】:2020-05-25 18:25:37
【问题描述】:

我有一个包含 376 列和 2700 行的数据框,每个主题对应 270 行(因此,在这种情况下有 10 个主题)。每 270 行是一个主题的数据(即 1:270 - 主题 1;271:540 - 主题 2)。

我有一个单独的数据框 (2700 x 8) 和我的自变量,每个主题也是 270 行。

我希望从我的 376 个 DV 中回归出 8 个 IV 并获得残差。对我来说,棘手的部分是我想对每个主题分别进行回归(即每 270 行单独回归)。下面是一些模拟数据:

DV = matrix(rnorm(2700*376),ncol=376) #construct matrix for dependent variables

IV =  matrix(rnorm(2700*8),ncol=8) #matrix for independent variables

要从整个数据中获取残差,我会这样做

resid = residuals(lm(DV~IV))

但是我将如何调整它以使其回归每个主题(每 270 行)完成?如果我的 IV 和 DV 数据帧结合起来会更容易吗?

我是 R 新手,非常感谢任何帮助,谢谢。

【问题讨论】:

  • 嗨 Aleya,如果没有 reprex,很难提供帮助,但您的案例实际上已经得到了很好的解释,我通常遵循本书使用的方法 r4ds.had.co.nz/many-models.html
  • 嗨,为什么你的因变量有 376 列?我希望有一列y-values?
  • 您好 Valeri,我有几个因变量,我想同时将它们全部放入模型中。所以每一列都是一个DV。

标签: r regression rows multivariate-testing


【解决方案1】:

使用 for 循环和基础 R 的建议:

result_list <- NULL
first <- 1
for (i in 1:10) {
  last <- i * 270
  this_subjects_results <- residuals(lm(DV[first:last,] ~ IV[first:last,]))
  result_list <- list(result_list, this_subjects_results)
  first <- last + 1
}

【讨论】:

    猜你喜欢
    • 2019-09-22
    • 2015-07-21
    • 2015-10-03
    • 2018-05-06
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多