gpt4 book ai didi

r - 分割数据并运行线性回归循环

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

我已经看到很多类似的问题,但是我试图写的循环的一个关键就是我所缺少的。我有一组包含约4,000个不同键的数据集,每个键有约1,000个观察值。我已经筛选出一个关键点以隔离该关键点的观察值,运行线性回归,检查了模型假设,并且一切看起来都不错。但是,我想遍历此数据集并为每个键运行线性回归。然后,我将要存储系数,pvalue,R ^ 2等,并将其一起查看。

这是我的数据样本:

Key y1 x1 x2
A 10 1 3
A 11 2 4
A 12 3 5
B 13 4 6
B 14 5 7
B 15 6 8
C 16 7 9
C 17 8 1
C 18 9 2


我跑了:

datA <- data %>% filter(key=='A')
lm(y1 ~ x1 + x2, data = datA)


然后对键B和C重复该操作。我在这里看到的每个问题都是针对整个集合的不同变量进行循环,而不是在行上拆分数据。

但是我需要再做4,000次。编写此循环的任何帮助将不胜感激(在编写循环时我很糟糕)。

最佳答案

也可以使用broom软件包将输出整理为更具可读性的形式。

list_models <- lapply(split(data, data$Key), function(x) lm(y1 ~ x1 + x2, data = x))

library(broom)

as_tibble(do.call(rbind, lapply(list_models, broom::tidy)))

# A tibble: 7 x 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 9.00e+ 0 2.22e-15 4.05e15 1.57e-16
2 x1 1.00e+ 0 1.03e-15 9.73e14 6.54e-16
3 (Intercept) 9.00e+ 0 4.59e-15 1.96e15 3.25e-16
4 x1 1.00e+ 0 9.06e-16 1.10e15 5.77e-16
5 (Intercept) 9.00e+ 0 NaN NaN NaN
6 x1 1.00e+ 0 NaN NaN NaN
7 x2 3.02e-16 NaN NaN NaN

关于r - 分割数据并运行线性回归循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962181/

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