繁体   English   中英

使用 ggplot2 function 的混合效应 model 残差图

Graphs of the mixed effects model residuals using the ggplot2 function

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用 ggplot2 function 绘制混合效应 model 的残余效应。 但是,在执行搜索后,我发现了一些可用的功能,但在我看来,对于 function nlme 它们不起作用。

我打算制作的图表是以下示例的图表:

数据在这里。

数据: https://drive.google.com/file/d/19mykz4B7jkTilbtwPQb3NUI09YZwohhs/view?usp=sharing

我最初尝试的计算例程如下,请参阅执行 ggplot2 中的 function 时出现的错误。

library(splines)
library(ggplot2)
library(nlme)
library(gridExtra)

setwd("C:\\Users\\Desktop")
datanew1 = read.table("dadosnew.csv", header = T, sep=";", dec = ",")
datanew1$DummyVariable = as.factor(datanew1$DummyVariable)
datanew1$Variable2 = as.factor(datanew1$Variable2)
datanew1$Variable3 = as.factor(datanew1$Variable3)
#############################################################################
############################## Model ########################################
#############################################################################
model <-  lme(Response~(bs(Variable1, df=3)) + DummyVariable,
                         random=~1|Variable2/Variable3, datanew1, method="REML")
completemodel <- update(model, weights = varIdent(form=~1|DummyVariable))

p1 <- qplot(.fitted, .resid, data = completemodel) +
  geom_hline(yintercept = 0) +
  geom_smooth(se = FALSE)

Erro: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class lme
Run `rlang::last_error()` to see where the error occurred.

p2 <- qplot(sample =.stdresid, data = completemodel, stat = "qq") + geom_abline()
grid.arrange(p1,p2)

Erro: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class lme
Run `rlang::last_error()` to see where the error occurred.
Além disso: Warning message:
`stat` is deprecated 

我尝试制作图表的另一种方法是使用下面的 function,但我没有成功。

ggplot(completemodel, aes(.fitted, .resid)) + geom_point()

Erro: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class lme
Run `rlang::last_error()` to see where the error occurred.

1 个回复

[解决方案]

library(splines)
library(ggplot2)
library(nlme)
library(gridExtra)

datanew1 = read.table("E:/Downloads/dadosnew.csv", header = T, sep=";", dec = ",")

datanew1$DummyVariable = as.factor(datanew1$DummyVariable)
datanew1$Variable2 = as.factor(datanew1$Variable2)
datanew1$Variable3 = as.factor(datanew1$Variable3)


model <-  lme(Response~(bs(Variable1, df=3)) + DummyVariable,
              random=~1|Variable2/Variable3, datanew1, method="REML")
completemodel <- update(model, weights = varIdent(form=~1|DummyVariable))

df_model <- broom.mixed::augment(completemodel)
#> Registered S3 method overwritten by 'broom.mixed':
#>   method      from 
#>   tidy.gamlss broom
df_model[".stdresid"] <- resid(completemodel, type = "pearson")

p1 <- ggplot(df_model, aes(.fitted, .resid)) + 
  geom_point() +
  geom_hline(yintercept = 0) +
  geom_smooth(se=FALSE)

p2 <- ggplot(df_model, aes(sample = .stdresid)) +
  geom_qq() +
  geom_qq_line()

grid.arrange(p1,p2)
#> `geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'

1 使用ezANOVA的ggplot2残差

我用ezANOVA运行了一种三向重复测量ANOVA。 我正在尝试通过qqplot观察残差发生了什么,但是我不知道如何到达残差或者它们是否在那里。 使用我的LME模型,我只是从模型中提取它们 并绘制它们 我想使用ggplot,因为我想保持图形的一致性。 编辑 ...

2015-05-14 13:07:24 3 915   r/ ggplot2
2 R 中的线性混合效应 model 残差分析

我正在尝试为我收集的调查数据估计线性混合效应 model。 数据集主要包含分类变量(序数和名义),响应变量也是分类变量(1-5 分)。 但是在我使用的 model 中,它没有设置为一个因素,而是一个数字。 受访者被要求仅根据包装对产品特性(例如风味、外观和健康度)进行评分。 我估计了一个 model ...

3 ggplot2 中的半正态图残差图

我正在尝试为 ggplot2 中的半正态 plot 中的残差制作下面显示的图表。 但是,我遇到了一个错误,标题为 Error: data must be a data frame, or other object coercible by fortify () ,而不是 S3 object with ...

5 使用 ggplot2 绘制主效应图

我是 R 和 ggplot2 的新手。 我想为我所做的全因子实验创建一个主效应图。 该图应取低水平的均值,并绘制一条与高水平均值的线。 截至目前,我能够使用 stat_summary() 创建均值,但我无法弄清楚如何在省略中心点的情况下连接它们。 现在我只是使用 geom_smooth(),这并 ...

8 使用purrr和ggplot创建残差图矩阵

假设我有以下数据帧: 我想用purrr创建一个残差图的网格。 例如,到目前为止,我有2个诊断图的公式: 我将公式存储在我计划针对强化数据集dt运行的列表中。 现在我需要将dt传递给formulas chart每个元素。 我实际上也尝试使用gridExtra组合两者,但 ...

9 ggplot的残差图,X轴为“排名”残差

我正在尝试在ggplot中重新创建这样的图: 。 该图从回归输出中获取残差,并按顺序绘制它们(X轴为残差的等级)。 我对此的最佳尝试是: 但是,这将产生一个完全空白的图。 我尝试过这样的事情: 但这会产生错误的方向。 什么是正确的方法,然后用第三个因素为这些线 ...

2019-01-24 21:52:47 1 229   r/ ggplot2
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM