我正在尝试在列表上使用visreg()来生成多个glm预测图以及响应等级上的相关置信区间。
这是我的代码:
library(MASS)
library(ggplot2)
library(visreg)
set.seed(100)
#One Predictor
b_0 <- 0.1
b_1 <- 0.2
design.matrix <- expand.grid("size" = c(5,10,15,30), "alpha" = seq(0.1, 1, by=0.1))
#Prediction Plots with Confidence Intervals
lnorm_glog_plt <- lapply(1:nrow(design.matrix), function(row.i) {
# Get values for current row
size.i <- design.matrix$size[row.i] #size specified in current row of design matrix
alpha.i <- design.matrix$alpha[row.i] #alpha specified in current row of design matrix
x_i <- runif(size.i, 0, 1) #draw a sample of size 'size'
y.true <- exp(b_0 + b_1*x_i) #produce log gamma data
y_i <- rgamma(size.i, rate = alpha.i/y.true, shape = alpha.i) #random gamma sample produced according to shape and size values of current row
#Lognormal Model
visreg(glm(y_i ~ x_i,
family = gaussian(link = "log"),
control = glm.control(maxit=500,
trace = TRUE),
start = c(0.1, 0.2)), scale = "response")
} )
这是它产生的错误:
plot.window(...)中的错误:需要有限的'ylim'值
仅针对这种特定的glm发生(我已经安装了gamma系列glm并运行)。它也仅在“响应”范围内发生。我尝试手动设置ylim = c(a,b),但是我选择的值使我的绘图看起来不可读。
在这种情况下,有人可以建议解决方法吗?
[在您不了解要尝试完成的任务的情况下,我建议使用有限的ylim
范围。只需将其添加到您的visreg
功能:
visreg(glm(y_i ~ x_i,
family = gaussian(link = "log"),
control = glm.control(maxit=500,
trace = TRUE),
start = c(0.1, 0.2)),
scale = "response",
ylim = c(0,10))