r - 对数据框的每一组进行线性拟合,检查异方差性

标签 r ggplot2 lapply lm

我有一个这样的数据框:

ORD   exp type         mu
1   Combi pH=7 exp_F   mu 0.15637365
2   Combi pH=7 exp_F   mu 0.12817901
3   Combi pH=7 exp_F   mu 0.13392221
4   Combi pH=7 exp_F   mu 0.09683254
5   Combi pH=7 exp_F   mu 0.11249738
6   Combi pH=7 exp_F   mu 0.10878719
7   Combi pH=7 exp_F   mu 0.11019295
8   Combi pH=7 exp_F   mu 0.12100511
9   Combi pH=7 exp_F   mu 0.09803942
10  Combi pH=7 exp_F   mu 0.13842086
11  Combi pH=7 exp_F   mu 0.12778964
12     ORD0793 exp_F   mu 0.13910441
13     ORD0793 exp_F   mu 0.12603702
14     ORD0793 exp_F   mu 0.12670842
15     ORD0795 exp_F   mu 0.12982122
16     ORD0795 exp_F   mu 0.13648100
17     ORD0795 exp_F   mu 0.13593685
18     ORD0799 exp_F   mu 0.13906691
continues...

我想做一个线性调整,如 lm(mu~ORD, data=df)但对于每一组类型和经验。我已经尝试了以下但它不工作..:
intsl <- df %>% group_by(exp,type) %>% 
  fortify(lm(mu~ORD)) %>% 
  select(exp,type, .fitted, .resid) 

我需要使用强化,因为我需要 .fitted 和 .resid 字段,以便稍后使用 facet_grid 按类型和 exp 对图进行多图排序。包含在 ggplot 中以检查每个拟合模型中是否存在异方差性..就像但在一个有组织的多图中:
enter image description here

有什么建议? :<

最佳答案

fortify() 的文档在 ggplot2包表示该方法将被弃用,并且 broom应该使用包代替。根据信息 here ,你应该做这样的事情:

library(dplyr)
library(broom)

intsl <- df %>%
  group_by(exp, type) %>%
  do(fit = lm(mu ~ ORD, .)

intsl %>% augment(fit)

这应该为您提供数据框,其中包含用于对回归进行分组的变量、回归变量以及每个观察的额外输出,例如 .fitted.resid ,因此您可以继续使用 ggplot 绘制它们直接地。

关于r - 对数据框的每一组进行线性拟合,检查异方差性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693218/

相关文章:

r - 给定列名,提取最后一个非 NA 值

r - 如何使用 ggplot2 制作包含 5 点摘要的箱线图?

r - 修改现有ggplot对象中的比例而不替换比例

r - 为什么我的 ggplot 对象变得这么大?

r - 如何为 R 中的 lapply 创建的每个图添加标题?

r - 在ggplot中绘制累积频率分布的更简单方法?

r - 分位数回归的置信区间是多少?以及如何找到默认以外的内容?

R:ggplot2,我可以让 facet/strip 文本环绕吗?

R - 缓慢地对有序因子进行排序

r - 将不同长度的列表组合成数据帧