r - 如何将参数应用于系数的多模型点和须图?
问题描述
我正在尝试创建如下图(取自https://cran.r-project.org/web/packages/dotwhisker/vignettes/dotwhisker-vignette.html),但没有截距,也没有重新缩放:
我一直在关注 https://cran.r-project.org/web/packages/glmmTMB/vignettes/model_evaluation.pdf中的代码:
if (requireNamespace("broom.mixed") && requireNamespace("dotwhisker")) {
(t1 <- broom.mixed::tidy(owls_nb1, conf.int = TRUE))
if (packageVersion("dotwhisker")>"0.4.1") {
## to get this version (which fixes various dotwhisker problems)
## use devtools::install_github("bbolker/broom.mixed") or
## wait for pull request acceptance/submission to CRAN/etc.
dwplot(owls_nb1)+geom_vline(xintercept=0,lty=2)
} else {
owls_nb1$coefficients <- TRUE ## hack!
dwplot(owls_nb1,by_2sd=FALSE)+geom_vline(xintercept=0,lty=2)
}
}
我尝试通过以下方式应用此代码以实现多个模型的 dwplot(没有截距且没有重新缩放):
mod1 <- glmmTMB(Species1_Occupancy ~ offset(log(Study_Unit_Area)) + (1|Site) + scale(Var1) + scale(Var2) + scale(Var3) + scale(Var4) + scale(Var5) + scale(Var6), data=data, family=binomial(link="cloglog"))
mod2 <- glmmTMB(Species2_Occupancy ~ offset(log(Study_Unit_Area)) + (1|Site) + scale(Var1) + scale(Var2) + scale(Var3) + scale(Var4) + scale(Var5) + scale(Var6), data=data, family=binomial(link="cloglog"))
mod3 <- glmmTMB(Species3_Occupancy ~ offset(log(Study_Unit_Area)) + (1|Site) + scale(Var1) + scale(Var2) + scale(Var3) + scale(Var4) + scale(Var5) + scale(Var6), data=data, family=binomial(link="cloglog"))
dwplot(list(mod1,mod2,mod3), show_intercept = FALSE, by_2sd = FALSE)
但我收到此错误消息:
Error in tidy.glmmTMB(., conf.int = TRUE, ...) :
unknown effect type list(par = c(beta = 0, beta = 0, beta = 0, beta = 0, beta = 0, beta = 0, beta = 0, theta = 0), fn = function (x = last.par[-random], ...)
{
if (tracepar) {
cat("par:\n")
print(x)
}
if (!validpar(x))
return(NaN)
ans <- try({
if (MCcontrol$doMC) {
ff(x, order = 0)
MC(last.par, n = MCcontrol$n, seed = MCcontrol$seed, order = 0)
}
else ff(x, order = 0)
}, silent = silent)
if (is.character(ans))
NaN
else ans
}, gr = function (x = last.par[-random], ...)
{
ans <- try({
if (MCcontrol$doMC) {
ff(x, order = 0)
MC(last.par, n = MCcontrol$n, seed = MCcontrol$seed, order = 1)
}
else ff(x, order = 1)
}, silent = silent)
if (is.character(ans))
ans <- rep(NaN, length(x))
if (tracemgc)
cat("outer mgc: ", max(abs(ans)), "\n")
ans
}, he = function (x = last.par[-random], ...)
{
当我在没有该by_2sd()
功能的情况下运行它时,我没有收到错误消息,但仍显示截距。
dwplot(list(mod1,mod2,mod3), show_intercept = FALSE)
任何帮助将非常感激。
解决方案
推荐阅读
- c# - Enumerable.Range / Observable.FromAsync 上的反应性扩展 OperationCancelled 异常
- angular - angular 6获取文件最后修改的时间戳?
- rollupjs - 构建带有汇总的 Vue.js 3(测试版)应用程序时出现问题:“错误:意外的令牌(请注意,您需要插件才能导入不是 JavaScript 的文件)”
- api - 如何在 json-server 上创建自定义路由?
- c# - 想知道如何让用户添加到链表?
- python - Asyncio python:如何在协程中调用对象方法?
- javascript - 调用一个新的 PHP 页面并传递一个长文本
- sql-server - 将 SQL Server LocalDB 的默认实例从版本 12 更改为版本 13?
- c - 以下 C 代码显示:格式 '%s' 需要类型为 'char *' 的参数,但参数 3 的类型为 int
- wordpress - wp_insert_post 生成重复 id