预测多个单独组的线性回归

2024-03-01

我想预测单个数据框中多个组的线性回归的值。 我发现以下博客文章几乎可以满足我需要的一切:https://www.r-bloggers.com/2016/09/running-a-model-on-separate-groups/ https://www.r-bloggers.com/2016/09/running-a-model-on-separate-groups/

但是,我无法将其与带有 newdata 的 Predict() 函数结合起来。 对于一组,我使用以下内容:

m <- lm(y ~ x, df)
new_df <- data.frame(x=c(5))
predict(m, new_df)

这给出了 x=5 时 y 的预测值。

当我的 df 中有多个组时,我该如何执行此操作?这是我尝试过的:

df %>%
    nest(-group) %>%
    mutate(fit = map(data, ~ lm(.$y ~ .$x)),
           results = map(fit, predict)) %>%
    unnest(results)

当我尝试使用 results = map(fit, Predict(new_df)) 时,我只收到错误。有没有办法将 x 的值(在本例中为 5)传递到上面的代码中?

理想情况下,我会得到一个新的 data.frame,其中包含两列、组和预测的 y 值。

这是一个示例数据框:

group   x   y
g1  1   2
g1  1.5 3
g1  2   4
g1  2.3 4.4
g1  3   6
g1  3.4 6.2
g1  4.11    7
g1  4.8 7.9
g1  5   8
g1  5.3 8.2
g2  2   5
g2  2.3 4
g2  4   2.2
g2  4.4 1.9
g2  7   0.3

EDIT:

使用 ggplot2 绘制样本数据,我得到以下图:

ggplot(df, aes(x,y,colour=group)) +
 geom_point() +
 stat_smooth(method="lm", se=FALSE)

使用以下代码,我得到了受欢迎的预测 y 值:

predict(lm(y ~ x, df[df$group =="g1", ]), new_df)
       1 
8.180285 

predict(lm(y ~ x, df[df$group =="g2", ]), new_df)
       1 
1.732136 

我想生成一个新的数据框,它应该看起来像这样并包含预测的 y 值x=5:

group   y_predict  
g1  8.180285  
g2  1.732136

使用注释中可重复显示的输入,因为我们只需要拟合值,所以不需要使用nest但可以使用mutate:

library(dplyr)

df %>%
  group_by(group) %>%
  mutate(pred = fitted(lm(y ~ x))) %>%
  ungroup %>%
  select(group, pred)

giving:

# A tibble: 15 x 2
   group    pred
   <chr>   <dbl>
 1 g1     2.47  
 2 g1     3.19  
 3 g1     3.90  
 4 g1     4.33  
 5 g1     5.33  
 6 g1     5.90  
 7 g1     6.91  
 8 g1     7.89  
 9 g1     8.18  
10 g1     8.61  
11 g2     4.41  
12 g2     4.15  
13 g2     2.63  
14 g2     2.27  
15 g2    -0.0563

这也可以这样完成:

library(dplyr)

df %>%
  mutate(pred = fitted(lm(y ~ x*group + 0, df))) %>%
  select(group, pred)

或者像这样仅使用基本 R:

transform(df, pred = fitted(lm(y ~ x*group + 0, df)))[c("group", "pred")]

或使用 nlme 中的 lmList (它随 R 一起提供,因此不必安装):

library(dplyr)
library(nlme)

df %>%
  mutate(pred = fitted(lmList(y ~ x | group, df))) %>%
  select(group, pred)

或使用不带 dplyr 的 lmList:

library(nlme)

transform(df, pred = fitted(lmList(y ~ x | group, df)))[c("group", "pred")]

Note

Lines <- "
group   x   y
g1  1   2
g1  1.5 3
g1  2   4
g1  2.3 4.4
g1  3   6
g1  3.4 6.2
g1  4.11    7
g1  4.8 7.9
g1  5   8
g1  5.3 8.2
g2  2   5
g2  2.3 4
g2  4   2.2
g2  4.4 1.9
g2  7   0.3"
df <- read.table(text = Lines, header = TRUE)

Added

关于注释,此代码按组生成 x = 5 的预测:

df %>%
  group_by(group) %>%
  summarize(pred = predict(lm(y ~ x), list(x = 5)), .groups = "drop") %>%
  select(group, pred)
## # A tibble: 2 x 2
##   group  pred
##   <chr> <dbl>
## 1 g1     8.18
## 2 g2     1.73
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预测多个单独组的线性回归 的相关文章

  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • 使用 dplyr::filter 的整洁方式是什么?

    使用下面的函数调用foo c b 输出以内联方式显示 正确的写作方式是什么df gt filter x gt x 我已经包含了一个使用的示例mutate以整洁的风格与之对比filter foo lt function variables x
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • 使用predictNLS围绕R中的拟合值创建置信区间?

    我想使用 R 中 propogate 包中的 PredictNLS 围绕一大组拟合值构建置信区间 作为示例 我将使用它们在函数描述中引用的数据集 https rdrr io github anspiess propagate man pre
  • 替换字符串/文本中“从第 n 次到最后一次”出现的单词

    这个问题以前曾被问过 但尚未得到令提问者满意的答案 https stackoverflow com questions 36368712 how to use stringrs replace all function to replace
  • 如何将 ggrough 图表另存为 .png

    说我正在使用R包裹ggrough https xvrdm github io ggrough https xvrdm github io ggrough 我有这个代码 取自该网页 library ggplot2 library ggroug
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想
  • 如何从R arrow中的feather文件中读取列名和元数据?

    现已取代 独立R 的羽毛库 https github com wesm feather有一个函数叫做feather metadata 允许从磁盘上的羽毛文件中读取列名称和类型 而无需打开它们 当在 R 中加载羽毛文件时 这对于仅选择特定列很
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • 捕获段错误、内存未映射错误

    我试图在 R 中找到 1347 x 209974 矩阵的列的相关性 每次我这样做 使用一个简单的命令cor matrix 我收到消息 caught segfault address 0xffffffffd058abf8 cause memo
  • 如何匹配R中列之间的多个对应值

    我有一个结构如下的数据框 ID Value1 Value2 1 a d g f 12 14 15 9 2 b c e 5 18 20 3 h i j 6 7 25 所以我有一个 ID 和两个值 对于值 1 有多个对应于值 2 的选项 我想最
  • 基于条件反应逻辑闪亮的 Flexdashboard

    我正在尝试有条件地进行一种类型的渲染 renderPlot 或其他 renderText 基于一些输入 这是我尝试过的 title Citation Extraction output flexdashboard flex dashboar

随机推荐

  • asp.net OnClientClick 未呈现最初禁用的按钮

    我有一个禁用的 asp Button 稍后我用 JavaScript 启用它 像这样
  • s[i]^=32 如何将大写转换为小写?

    int main string s cout lt lt enter the string lt lt endl cin gt gt s for int i 0 i lt s length i s i 32 cout lt lt modif
  • Clojure 常量的约定、样式和用法?

    在 Clojure 中定义常量的最佳实践有哪些 包括样式 约定 效率等 例如 这是正确的吗 def PI 3 14 问题 Clojure 中常量应该大写吗 从风格上来说 它们应该在一侧还是两侧都有星号 字符 我应该注意哪些计算效率注意事项
  • 安卓白标

    我在一家公司工作 该公司在商店里有这个 foo 应用程序 该应用程序是我们硬件的助手 深受经销商的喜爱 我们确保该名称尽可能通用 以便我们的供应商能够将应用程序作为 他们的应用程序 进行营销 然而 一些经销商确实希望在应用程序上显示他们的确
  • 使用 stanford-nlp 对一些文本进行分块

    我正在使用 stanford core NLP 并使用此行加载一些模块来处理我的文本 props put annotators tokenize ssplit pos lemma ner parse dcoref 是否有一个模块可以加载以分
  • jQuery 使用数据 id 对元素进行排序

    我的 HTML 结构如下 div class clist div div div div div div div div div div div div div div div 我想将它们排序为 div class clist div di
  • 从 Google Sheets API 获取过滤后的数据

    我正在使用 nodeJS 从 google 工作表中获取数据 URL 如下所示 var url https sheets googleapis com v4 spreadsheets sheet key values Sheet2 A1 J
  • 编译与编译树与编译文件之间的区别?

    我试图将我的项目集成到 android studio 中 但在添加依赖项时我有点困惑 我不知道哪一个效果好 我尝试过编译文件树和编译文件 它不适合我 我找到了一些方法 任何人都可以告诉我哪一种适合添加库 仅像 admob 这样的 jar 文
  • ModSecurity CSRF 规则警报

    我已经安装了 Owasp ModSecurity 之后我的应用程序上的所有页面都有此规则警报 ModSecurity Warning Match of eq 1 against ARGS CSRF TOKEN required file e
  • “添加为链接”选项发生了什么?

    为什么是添加现有文件作为链接 http visualstudiohacks com tips options add an existing file to a project without copying it 功能仅适用于托管项目 我
  • 从 url 加载图像

    如何从图像的 url 将图像加载到 UIImage 对象 目前 我正在使用 UIImage FromFile 加载图像 并将图像作为内容包含在内 但我需要能够从另一个网站获取它 image Image UIImage FromFile im
  • GitHub Action:使用 PowerShell 将环境变量传递到 Action 中

    我正在尝试构建一个将在 PowerShell 中运行的工作流程 我正在为我的分支名称设置一个环境 以便在签出不同存储库的步骤中使用 run branchName Env GITHUB REF replace refs heads echo
  • 与需要参数的工厂方法统一

    我想使用需要参数的工厂方法在 Unity 容器中注册类型 这些参数将由统一解析 但只能在运行时解析 工厂方法代码 public static IApp Create IOne ITwo 注册码 container RegisterType
  • 如何将包含 JPanel 的 JScrollPane 视口滚动到特定位置

    我正在尝试创建一个大型游戏板 其中只有一部分在视口中可见 并且希望能够使用箭头键移动视口以查看整个板 现在我有一个 JScrollPane 其中包含一个 JPanel 其中包含图像 文本和其他内容 但这些都是无关紧要的 现在我有一个与 JP
  • 如何使用 Python 3.5.1 从列表中打印多个不连续的值

    我创建了一个列表 并想从列表中选择一些要打印的项目 下面 我只想在索引 0 处打印 bear 在索引 3 处打印 kangaroo 我的语法不正确 gt gt gt animals bear python peacock kangaroo
  • 使用 C++ 线程模拟 pthread_kill

    如何使用 C 线程模拟 pthread kill 函数 我之前问过这个问题 但没有得到回应 thread native handle 函数在这里有帮助吗 所以这个问题的答案是依赖平台相关的功能并使用std thread native han
  • Bash for 循环打印出意外的输出,为什么呢?

    我编写了一个脚本 用于查询 AWS Route53 上的 dns 区域并返回特定服务器的 IP 目的是在启动 CloudFormation 堆栈后运行此脚本 并且该脚本将更新我的本地 ssh config包含更新的服务器 IP 的文件 我想
  • 故事板中的自动布局,如何将子视图的宽度设置为其超级视图的 1/3?

    我知道这可能非常简单 但是 我试图弄清楚如何告诉子视图其宽度需要是其父视图宽度的 1 3 我想在故事板中执行此操作 而不是在代码中 所以情况非常简单 只是 ViewController 视图中的 UIView 如何在故事板中使用自动布局来完
  • 如何保存 pgAdmin 4 中的更改

    我是 postgreSQL 的初学者 有 2 台服务器 我想删除一台 我单击 删除服务器 但是当我退出程序时 我无法保存此更改 并且在重新打开程序时 第二个服务器又回来了 这看起来非常简单 但我找不到任何明显的方法来保存此更改 请帮忙 当您
  • 预测多个单独组的线性回归

    我想预测单个数据框中多个组的线性回归的值 我发现以下博客文章几乎可以满足我需要的一切 https www r bloggers com 2016 09 running a model on separate groups https www