r - 循环回归永久实体,保存所有实体的预测值
问题描述
我的目标是对所有实体(循环)进行回归,变量“income”和“family.members”作为自变量,并根据每个实体的“income”和“family.members”水平保存预测的 Y 值”。That is lm(happiness~income + family.members, data=df1))
我已经尝试过使用 group_by(),但技术部分有点超出我的水平。希望有人能帮忙!
当前数据集
ID Year Happiness income members
11 1 3 34242 2
11 2 7 32321 4
31 1 1 24222 1
13 1 10 51231 5
31 2 3 12313 3
目标
ID Year Happiness income members pred.happiness
13 1 3 34242 2 3,2
11 1 7 32321 4 4,2
33 3 1 24222 1 3,4
13 2 10 51231 5 3,2
11 2 2 12313 3 3,2
解决方案
如果没有可使用的数据,我们无法直接为您提供帮助。然而,这里是一个nest()
方法的例子。
library(tidyverse)
library(modelr)
head(ChickWeight)
#> weight Time Chick Diet
#> 1 42 0 1 1
#> 2 51 2 1 1
#> 3 59 4 1 1
#> 4 64 6 1 1
#> 5 76 8 1 1
#> 6 93 10 1 1
by_id <- ChickWeight %>%
group_by(Chick) %>%
nest()
lin <- function(df){
lm(weight ~ Time,data = ChickWeight)
}
by_id <- by_id %>% mutate(model = map(data,lin))
by_id <- by_id %>%
mutate(pred = map2(data,model,modelr::add_predictions))
by_id
#> # A tibble: 50 x 4
#> # Groups: Chick [50]
#> Chick data model pred
#> <ord> <list> <list> <list>
#> 1 1 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 2 2 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 3 3 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 4 4 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 5 5 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 6 6 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 7 7 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 8 8 <tibble [11 × 3]> <lm> <tibble [11 × 4]>
#> 9 9 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> 10 10 <tibble [12 × 3]> <lm> <tibble [12 × 4]>
#> # … with 40 more rows
由reprex 包于 2020-11-30 创建(v0.3.0)
有关更多信息,请参阅Hadley 的许多模型。
祝你好运!
推荐阅读
- verilog - 在veriloga中创建实例矩阵
- ruby-on-rails - 您可以将“下一个”传递回调用当前函数的函数吗?
- webpack - Webpack 简单包没有运行时块
- javascript - vue 3 为触摸屏适配 @mouseover 和 @mouseleave
- python - 如何在 keras/tensorflow 中将图像拆分为补丁/子图像?
- javascript - jQuery .load() 不让我填写输入文本
- python - 如何让所有 ResNet50 层都出现在 model.summary 中?
- flutter - 读取 wav 音频文件并在 dart 和 flutter 中获取与时间相关的幅度数据以进行绘图
- firebase - 如何在firebase中更新url img
- python - bisect 中的 insort_left 和 insort_right 有什么区别?