gpt4 book ai didi

r - 如何在 R 中循环/重复线性回归

转载 作者:行者123 更新时间:2023-12-04 10:07:14 25 4
gpt4 key购买 nike

我已经想出了如何在 R 中使用 4 个变量制作表格,我将其用于多元线性回归。每个回归的因变量 (Lung) 取自包含 22,000 列的 csv 表的一列。自变量之一(血液)取自类似表的相应列。每列代表一个特定基因的水平,这就是为什么有这么多基因。还有两个额外的变量(每个患者的年龄和性别)。当我输入线性回归方程时,我使用 lm(Lung[,1] ~ Blood[,1] + Age + Gender),它适用于一个基因。我正在寻找一种方法来输入这个方程,并让 R 计算肺和血液的所有剩余列,并希望将系数输出到表格中。任何帮助,将不胜感激!

最佳答案

您想运行 22,000 次线性回归并提取系数吗?从编码的角度来看,这很容易做到。

set.seed(1)

# number of columns in the Lung and Blood data.frames. 22,000 for you?
n <- 5

# dummy data
obs <- 50 # observations
Lung <- data.frame(matrix(rnorm(obs*n), ncol=n))
Blood <- data.frame(matrix(rnorm(obs*n), ncol=n))
Age <- sample(20:80, obs)
Gender <- factor(rbinom(obs, 1, .5))

# run n regressions
my_lms <- lapply(1:n, function(x) lm(Lung[,x] ~ Blood[,x] + Age + Gender))

# extract just coefficients
sapply(my_lms, coef)

# if you need more info, get full summary call. now you can get whatever, like:
summaries <- lapply(my_lms, summary)
# ...coefficents with p values:
lapply(summaries, function(x) x$coefficients[, c(1,4)])
# ...or r-squared values
sapply(summaries, function(x) c(r_sq = x$r.squared,
adj_r_sq = x$adj.r.squared))

模型存储在一个列表中,其中模型 3(带有 DV Lung[, 3] 和 IVs Blood[,3] + Age + Gender)在 my_lms[[3]] 中。等等。您可以使用列表上的应用函数进行汇总,从中可以提取您想要的数字。

关于r - 如何在 R 中循环/重复线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com