0

这是代码,我想将此 Plot 的 QQplot 提取到 post.check(out) 中。另外,如何更改qqplot的标题?


library(GJRM)
set.seed(0)
n <- 400
x1 <- round(runif(n))
x2 <- runif(n)
x3 <- runif(n)
f1 <- function(x) cos(pi*2*x) + sin(pi*x)
y1 <- -1.55 + 2*x1 + f1(x2) + rnorm(n)
dataSim <- data.frame(y1, x1, x2, x3)
eq.mu <- y1 ~ x1 + s(x2) + s(x3)
eq.s <- ~ s(x3)
fl <- list(eq.mu, eq.s)
out <- gamlss(fl, data = dataSim)
conv.check(out)
post.check(out)

在此处输入图像描述

应用下面的想法,结果是:

p1 <- post.check(out)
plot(qqnorm(p1$qr), main = "Normal")

在此处输入图像描述

就我而言,我只想要一个情节。我想知道,因为我只想包装 qqplots 而不是直方图。下一个代码是不可重现的,它只是为了展示我所拥有的。

DA.mrf<-as.ggplot(~post.check(DA.gamlss.mrf.6, main = "Dagum",cex=0.7,cex.axis=0.7))
GA.mrf<-as.ggplot(~post.check(GA.gamlss.mrf.6, main = "Gamma"))
LN.mrf<-as.ggplot(~post.check(LN.gamlss.mrf.4, main = "LogNormal"))
IG.mrf<-as.ggplot(~post.check(IG.gamlss.mrf.4, main = "Inverse Gaussian"))
WE.mrf<-as.ggplot(~post.check(WE.gamlss.mrf.6, main = "Weibull"))

plot_grid(DA.mrf, GA.mrf, LN.mrf,
          IG.mrf, WE.mrf, ncol=3,label_size = 5)

在此处输入图像描述

提前致谢!!

4

1 回答 1

1

首先,如果您可以提供一个可重现的示例,这将更有帮助(有关详细信息,请参阅如何创建一个最小的、可重现的示例)。

从您发布的代码中,您似乎可以分别从每个模型重新创建 QQ 图。例如,对于您的第一个模型DA.gamlss.mrf.6,您可以使用:

p1 <- post.check(DA.gamlss.mrf.6)
plot(qqnorm(p1$qr), main = "Your Choice of Title Goes Here")

请注意,根据您的型号,您可能需要将qr上面替换为qr1qr2help(post.check)有关详细信息,请参阅GJRM包装。

于 2020-11-22T16:49:34.653 回答