用BUGS语言从R编写统计模型

NIMBLE采用并扩展BUGS作为建模语言,并允许您使用创建的模型进行编程。

其他使用BUGS语言的包仅适用于马尔可夫链蒙特卡罗(MCMC)。使用NIMBLE,您可以将BUGS代码转换为模型对象,并将其用于您想要的任何算法。这包括NIMBLE提供的算法和使用nimbleFunction编写的算法。NIMBLE通过允许分布、用户编写的函数和分布等多个参数化来扩展BUGS。

 

使用和定制NIMBLE的统计算法

NIMBLE提供MCMC、顺序蒙特卡罗(粒子过滤器)等。

编写NIMBLE算法是为了适应不同的统计模型。对于MCMC,NIMBLE可以指定一组默认的采样器选项,但您可以从R自定义采样器。例如,您可以在一个块中选择要采样的参数,并且可以轻松编写自己的采样器并包含它们。 

编译模型和算法以实现快速执行。

NIMBLE生成根据您的模型和算法定制的C++代码,对其进行编译,并允许您从R中使用它。

使用NIMBLE的编译器不需要了解任何C++。NIMBLE提供了R函数来调用编译的算法,您可以在R中获得输出(您确实需要安装C++编译器和相关工具。请参阅安装说明。)

在NIMBLE中编写自己的算法

在R中使用nimbleFunction编写新的统计方法类似于编写R函数。

如果您有一个想要实现的方法,可以使用nimbleFunctions对其进行编程。语法与R非常相似,但您需要了解一些细节才能开始。nimbleFunction系统允许程序员控制特定算法应如何适应其应用到的每个模型和/或变量。NIMBLE编译器可以使nimbleFunction高效运行。

 

通过C++编译R中的数值计算,无需编写任何C++代码。

不关心用BUGS语言编写的模型吗?只想尝试让你的R代码运行得更快吗?

nimbleFunctions不需要使用BUGS模型,因此您可以使用它们来加速其他用途的多种数值计算。NIMBLE编译器可以处理数学,包括线性代数和分布。它还支持基本的迭代、流控制和数据结构。