如何修复 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中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 尝试读取 CSV 文件时出现“无法识别的字符串转义”

    我正在尝试导入一个 csv文件 以便我可以观看此视频 R ggplot2 图形直方图 http www youtube com watch v 47kWynt3b6M 我安装了所有正确的软件包 包括ggplot以及相关的包 视频中的第一个说
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 使用 ggmap 截断密度多边形

    我在使用 R ggmap 绘制密度图时遇到问题 我的数据如下所示 gt head W date lat lon dist 1 2010 01 01 31 942 86 659 292 415 2 2010 01 10 32 970 84 1
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对

随机推荐

  • 为什么 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