gpt4 book ai didi

r - 从多组线性回归中有效提取拟合值

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

如何有效地从多个线性回归模型中提取拟合值并将其附加到用于构建模型的原始数据中?

示例数据:

library(dplyr)

# Fit several (3 in this case) linear regression models

fitted_models <- iris %>%
group_by(Species) %>%
do(model = lm(Petal.Length~Sepal.Length+Sepal.Width, data = .))

我可以提取每个组的拟合值(见下文),但这很麻烦,而且如果您有 10 个或 100 个模型,效率会很低。如何更有效地从模型中提取拟合数据并将其附加回用于构建模型的数据集?

df2 <- iris[,c(5,3)]
df2$predicted <- NA
df2[1:50,3] <- fitted_models$model[[1]]$fitted.values
df2[51:100,3] <- fitted_models$model[[2]]$fitted.values
df2[101:150,3] <- fitted_models$model[[3]]$fitted.values
df2

最佳答案

创建模型后,可以按行分组,因此我们可以直接提取到列表中并取消嵌套列表列

library(dplyr)
library(tidyr)
fitted_models %>%
transmute(Species, fitted.values = list(model$fitted.values)) %>%
ungroup %>%
unnest(fitted.values)

-输出

# A tibble: 150 × 2
Species fitted.values
<fct> <dbl>
1 setosa 1.47
2 setosa 1.46
3 setosa 1.42
4 setosa 1.41
5 setosa 1.46
6 setosa 1.51
7 setosa 1.40
8 setosa 1.46
9 setosa 1.38
10 setosa 1.45
# … with 140 more rows

关于r - 从多组线性回归中有效提取拟合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70885975/

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