【发布时间】:2019-10-23 14:51:28
【问题描述】:
我正在使用“分段”包来查找 R 中线性回归中的断点
library(tidyverse)
library(segmented)
df <- data.frame(x = c(1:10), y = c(1,1,1,1,1,6:10))
lm_model <- lm(y ~ x, data = df)
seg_model <- segmented(obj = lm_model, seg.Z = ~ x)
但如果我在 purrr:map 中运行相同的模型,分段会失败。
map_test <- df %>%
nest() %>%
mutate(map_lm = map(data, ~lm(y ~ x, data = .)),
param_map_lm = map(map_lm, tidy))
map_lm_model <- map_test[[2]][[1]]
map_seg_model <- segmented(obj = map_lm_model, seg.Z = ~ x)
“is.data.frame(data) 中的错误:对象 '.'没找到”
当从map输出中提取的lm中取出lm obj时,segmented找不到底层数据。
然而,这两个线性模型对象看起来是相同的。
我真正需要做的是一个更有用的地图,在数据帧的多个子集上运行 lm,然后在生成的 lm 上“分段”运行。
【问题讨论】: