如何修复 R2jags::jags 中的“节点与父节点不一致”

2024-01-04

我正在使用 R 包 R2jags。运行下面附加的代码后,R 生成错误消息:“节点与父节点不一致”。

我试图解决它。但是,错误消息仍然存在。我使用的变量是:

i) “采用”:0-1 虚拟变量。

ii) “NumInfo”:一个计数器变量,其范围为{0, 1, 2,...}。

iii) “价格”:5

iv) “NRows”:326。

install.packages("R2jags")
library(R2jags)

# Data you need to run the model.
# Adop: a 0-1 dummy variable.
Adop <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

# NumInfo: a counter variable.
NumInfo <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1)

# NRows: length of both 'NumInfo' and 'Adop'.
NRows <- length(NumInfo)

# Price: 5
Price <- 5

Data <- list("NRows" = NRows, "Adop" = Adop, "NumInfo" = NumInfo, "Price" = Price)

# The Bayesian model. The parameters I would like to infer are: 'mu.m', 'tau2.m', 'r.s', 'lambda.s', 'k', 'c', and 'Sig2'. 
# I would like to obtain samples from the posterior distribution of the vector of parameters.

Bayesian_Model <- "model {
    mu.m ~ dnorm(0, 1)                      
    tau2.m ~ dgamma(1, 1)           
    r.s ~ dgamma(1, 1)
    lambda.s ~ dgamma(1, 1)
    k ~ dunif(1, 1/Price)
    c ~ dgamma(1, 1)
    Sig2 ~ dgamma(1, 1)

    precision.m <- 1/tau2.m
    m ~ dnorm(mu.m, precision.m)
    s2 ~ dgamma(r.s, lambda.s)

    for(i in 1:NRows){
        Media[i] <- NumInfo[i]/Sig2 * m
        Var[i] <- equals(NumInfo[i], 0) * 10 + (1 - equals(NumInfo[i], 0)) * NumInfo[i]/Sig2 * s2 * (NumInfo[i]/Sig2 + 1/s2)
        Prec[i] <- pow(Var[i], -1)
        W[i] ~ dnorm(Media[i], Prec[i])
        PrAd1[i] <- 1 - step(-m/s2 - 1/c * 1/s2 * log(1 - k * Price) + 1/2 * c)
        PrAd2[i] <- 1 - step(-W[i] - m/s2 - 1/c * 1/s2 * log(1 - k * Price) + 1/2 * c - 1/c * log(1 - k * Price))
        PrAd[i] <- equals(NumInfo[i], 0) * PrAd1[i] + (1 - equals(NumInfo[i], 0)) * PrAd2[i]
        Adop[i] ~ dbern(PrAd[i])
        }
    }"

# Save the Bayesian model in your computer with an extension '.bug'.
# Suppose that you saved the .bug file in: "C:/Users/Default/Bayesian_Model.bug".
writeLines(Bayesian_Model, "C:/Users/Default/Bayesian_Model.bug")

# Here I would like to use jags command from R-package called R2jags.
# I would like to generate 1000 iterations.
MCMC_Bayesian_Model <- R2jags::jags(
    model.file = "C:/Users/Default/Bayesian_Model.bug",
    data = Data, 
    n.chains = 1, 
    n.iter = 1000,
    parameters.to.save = c("mu.m", "tau2.m", "r.s", "lambda.s", "k", "c", "Sig2")
    )

运行代码时,R 产生错误消息:“节点与父节点不一致”。我不知道有什么错误。我想知道你是否能帮我解决这个问题。如果您需要更多信息,请告诉我。非常感谢。


在不知道你要做什么的情况下弄清楚模型有点困难,但我建议两个修复:

  1. 代替k ~ dunif(1, 1/Price), 你的意思k ~ dunif(0, 1/Price)? For dunif(a, b), 你必须有a < b(参见第 48 页:http://people.stat.sc.edu/hansont/stat740/jags_user_manual.pdf http://people.stat.sc.edu/hansont/stat740/jags_user_manual.pdf).

  2. 我在模型中插入了一条附加线,

    PrAd01[i] <- max(min(PrAd[i], 0.99), 0.01)
    

    并将最后一行更改为

    Adop[i] ~ dbern(PrAd01[i])
    

    上述手册第 49 页指出0 < p < 1 for dbern(p).

该模型在上述两个更改的情况下运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 R2jags::jags 中的“节点与父节点不一致” 的相关文章

  • 如何在 Shiny 中提取动态生成的输入值?

    我正在创建一个闪亮的应用程序 它将根据客户的不同功能为客户生成分数 在我闪亮的应用程序中 我提供了 checkboxGroupInput 来选择所需的功能 根据所选功能 应用程序将动态地将 numericInput 添加到 Web ui 以
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • 如何在 R 中执行近似(模糊)名称匹配

    我有一个专门用于生物学期刊的大型数据集 该数据集是由不同的人长时间编写的 因此 数据不采用单一格式 例如 在 作者 栏中我可以找到John Smith Smith John Smith J等 但它们是同一个人 我连最简单的动作都做不了 例如
  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • data.table 抛出“找不到对象”错误[重复]

    这个问题在这里已经有答案了 我有一个数据表 library data table mydt lt data table index 1 10 当我在全局环境中尝试它时 我可以让它工作 但当我在调试器中或在包测试中使用它时却无法工作 问题是我
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 在 Google Colab 上的 R 笔记本中安装 python 库

    我正在尝试在 Google Colab 上的 R 笔记本中安装 python 库 为此我使用 reticulate 包 library reticulate py install pandas 但我得到的结果是这个错误 Error coul
  • 无法编译包“maps”

    当我安装 maps 包时 安装中出现警告 ld warning ignoring file Library Developer CommandLineTools SDKs MacOSX10 14 sdk usr lib libSystem
  • 使用“assign()”为列表项分配值

    首先了解一些背景 我写了一个中缀函数 本质上取代了这个习惯用法 x length x 1 lt y 或者简单地说x lt append x y 对于向量 这里是 lt function x y xcall lt substitute x x
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 为什么 Awaiters (async/await) 是结构体而不是类?可以使用类吗?

    为什么等待者 GetAwaiter 使类可等待 是结构而不是类 使用类有什么坏处吗 public struct ConfiguredTaskAwaiter ICriticalNotifyCompletion http referenceso
  • 使用 npm install 时出现 SELF_SIGNED_CERT_IN_CHAIN 错误

    每当我运行 npm install 时 都会出现错误 错误 SELF SIGNED CERT IN CHAIN 如何解决这个错误 即使我曾经遇到过这个错误 尝试执行以下步骤 克服此错误应遵循的步骤 1 按顺序运行这三个命令 npm 配置设置
  • FancyBox 2.0.6 标题超过 1 行

    我正在尝试做与这里解释的完全相同的事情 设置 FancyBox 标题的格式 https stackoverflow com questions 6046680 formatting a title for fancybox 问题是我使用的是
  • 仅反转sql server中字符串的数字部分

    使用 T SQL 我试图找到反转字符串中数字的最简单方法 所以对于像这样的字符串Test123Hello have Test321Hello Before After Test123Hello Test321Hello Tt143 Hell
  • Groovy Grails - 为后续请求存储对象

    我有一个 Web 应用程序 前端向服务器发出 ajax 请求以获取数据 在控制器中我有以下逻辑 def data def method def objects from params determine if it is a first r
  • C# 从静态函数中打印类名

    是否可以从静态函数中打印类名 e g public class foo static void printName Print the class name e g foo 您可以通过三个选项来获取类型 以及名称 YourClass在静态函
  • 使用STL容器进行中值计算时正确的做法是什么?

    假设我需要从 1000000 个随机数值序列中检索中位数 如果使用任何东西but std list 我没有 内置 方法对序列进行排序以进行中值计算 如果使用std list 我无法随机访问值来检索排序序列的中间 中位数 自己实现排序并使用例
  • 如何在Fragment类中加载WebView?如何在android中加载Webview?

    我正在尝试在应该加载的片段中创建一个 WebView 我已经将其添加到我的 xml 文件中 但是 findViewById 方法仅在我扩展 Activity 类时才有效 无论如何 我也可以在 Fragment 中使用它吗 我已经测试了另一个
  • 如何将浮点数和泛型类型相乘?

    我正在 OS X 上使用 C 在 Unity 3 4 2 中进行编程 我有一堂课如下 class Foo
  • MVC Url 请求 - 路径中存在非法字符

    概述 404错误页面在web config中配置并工作 使用 Umbraco v6 2 自定义错误设置为RemoteOnly 问题是当我在 URL 中输入 7C 时 我收到以下消息 Illegal characters in path De
  • 通过 simctl 启动时如何设置 iOS 模拟器语言

    我正在模拟器中使用启动我的应用程序xcrun simctl 我希望能够设置模拟器启动时使用的语言 即 一次运行时切换为法语 另一次运行时切换为英语 有没有办法做到这一点 以前是可以用的 AppleLanguages模拟器的选项 但似乎不再起
  • 是否可以从 JAXB 注释的类生成 XSD?

    我已经使用 JAXB 编写了许多类进行序列化 我想知道是否有一种方法可以根据注释为每个对象生成 XSD 文件 有这个工具吗 就像是generate xsd com my package model Unit java将会awesome 有什
  • 垃圾收集器如何处理 Java 中的原始数据类型?

    正如我们所知 对象通过引用计数和其他此类算法来工作 但对于原始数据类型 我们做不到NULL like int a NULL 垃圾收集器如何处理 Java 中的原始数据类型 原始数据类型要么是对象中的字段 要么是在本身就是对象的数组中使用 对
  • 如何修复 PHPMailer __autoload() 错误?

    我使用 phpMailer 来处理从网站发送的邮件 今天早上我突然收到这样的消息 致命错误 不再支持 autoload 请在第 45 行的 C xampp htdocs webapp PHPMailerAutoload php 中使用 sp
  • 如何按组计算 data.frame 与前一行的时间差

    我试图解决的问题是我有一个数据框 其中包含排序的 POSIXct 变量 每行都进行分类 我想获取每个级别的每行之间的时间差 并将该数据添加回新变量中 可重现的问题如下 以下函数仅用于创建随机时间的样本数据 为了这个问题的目的 random
  • FHIR 构建失败并出现 NoSuchMethodError:net.sf.saxon.Configuration.newConfiguration()

    按照说明进行操作http wiki hl7 org index php title FHIR Build Process http wiki hl7 org index php title FHIR Build Process我的 FHIR
  • Android 中如何获取像素颜色?

    我已将 PNG 图像 具有透明背景的图像 设置为按钮背景 当我触摸按钮时 它会显示按钮触摸位置的 X 坐标和 Y 坐标 但是 我想知道按钮触摸位置的像素颜色按钮 其实我想知道触摸的位置是按钮的透明区域还是按钮的彩色区域 您可以检查我为此目的
  • 如何在 Twitter bootstrap 中放置右侧固定导航栏

    我正在尝试在右侧添加 4 个导航按钮 单击它 我将能够导航到同一页面中的各个 div 就像单页面设计一样 我添加以下代码行以在页面右侧创建 4 个导航按钮 div class offset8 span1 well offset7 small
  • Django:使用“can_order”更改 FormSet 中表单的顺序

    我有一个表单 其中一个字段仅保留name家庭成员 我希望用户能够按照用户的意愿更改订单 当前的顺序是它们创建的顺序 我找到了旗帜can order对于我的表单集 当我将其添加到表单集中时 除了名称之外还出现了另一个字段 该字段是一个整数 显
  • 如何修复 R2jags::jags 中的“节点与父节点不一致”

    我正在使用 R 包 R2jags 运行下面附加的代码后 R 生成错误消息 节点与父节点不一致 我试图解决它 但是 错误消息仍然存在 我使用的变量是 i 采用 0 1 虚拟变量 ii NumInfo 一个计数器变量 其范围为 0 1 2 ii