- 此问题在此处已有答案**:
How to Loop/Repeat a Linear Regression in R(4个答案)
昨天关门了。
我有一个数据集,其中列表示波数以及权重。下面给出了一个示例数据集,实际数据集几乎有3000+列与不同的波数相关。我想对每个波数执行多元线性回归(权重作为自变量,每次的每个波数作为因变量),并获得每个波数的R^2值。目的是根据这些R^2值识别最重要的波数
例如,第一波数的线性回归模型为:
X400~重量X401~重量等
我想创建一个循环来获取每个波数的R^2值,并将其存储在单独的表中,以便在进一步分析中使用。
我用下面的代码为1个波数建立了一个线性模型。但是我不明白为什么要为每一列创建一个循环,因为原始数据集有3000多个波数。
df1 = data.frame(
weight = c(15, 18, 20, 21, 18),
X400 = c(12.5, 9, 16.5, 9, 20),
X401 = c(12, 19, 14.5, 9, 26),
X402 = c(11.5, 9.6, 18.5, 19, 20),
X403 = c(10.5, 8, 12.5, 17, 23),
X404 = c(12.5, 9, 15, 9, 20),
X405 = c(14.5, 19, 12.5, 8, 21.2),
X406 = c(13.5, 7, 18.5, 12, 17),
X407 = c(12, 3.9, 12.9, 10, 4.8))
model <- lm(X400 ~ weight, data = df1)
summary(model)$r.squared
输出表应如下所示。R1、R2、R3 ...表示与每个波数相关的R^2值。
| 波数|R^2值|
| - ------|- ------|
| X400|R1|
| X401|R2|
| 小行星402|R3|
| 小行星403|R4|
| 小行星404|R5|
| 小行星405|R6|
| 小行星406|R7|
| 小行星407|八国集团|
我怎么能在R中做到这一点?
1条答案
按热度按时间w9apscun1#
不如这样:
由reprex package(v2.0.1)于2023年1月20日创建