其他使用BUGS语言的包仅适用于马尔可夫链蒙特卡罗(MCMC)。使用NIMBLE,您可以将BUGS代码转换为模型对象,并将其用于您想要的任何算法。这包括NIMBLE提供的算法和使用nimbleFunction编写的算法。NIMBLE通过允许分布、用户编写的函数和分布等多个参数化来扩展BUGS。
编写NIMBLE算法是为了适应不同的统计模型。对于MCMC,NIMBLE可以指定一组默认的采样器选项,但您可以从R自定义采样器。例如,您可以在一个块中选择要采样的参数,并且可以轻松编写自己的采样器并包含它们。
使用NIMBLE的编译器不需要了解任何C++。NIMBLE提供了R函数来调用编译的算法,您可以在R中获得输出(您确实需要安装C++编译器和相关工具。请参阅安装说明。)
如果您有一个想要实现的方法,可以使用nimbleFunctions对其进行编程。语法与R非常相似,但您需要了解一些细节才能开始。nimbleFunction系统允许程序员控制特定算法应如何适应其应用到的每个模型和/或变量。NIMBLE编译器可以使nimbleFunction高效运行。
nimbleFunctions不需要使用BUGS模型,因此您可以使用它们来加速其他用途的多种数值计算。NIMBLE编译器可以处理数学,包括线性代数和分布。它还支持基本的迭代、流控制和数据结构。