我正在 Julia 中寻找一个函数来估计 ARMA 过程的系数。
例如,在 Matlab(系统识别工具箱的一部分)中使用预测误差模型作为 pem
和 armax
。 pem documentation和 armax documentation .
我查看了以下软件包,但看不出它们能满足我的要求: TimeSeries.jl TimeModels.jl
一个解决方案当然是使用 Matlab.jl并使用 Matlab 函数,但我希望在 Julia 中完成这一切。
如果现在什么都没有,有人知道是否有任何好的 Julia 函数可用于多维数值最小化(如 Newton-Raphson),可用于实现 PEM 函数?
最佳答案
更新:我刚刚将一个名为 RARIMA.jl 的模块推送到了 github .该模块可用于估计、预测和模拟 ARIMA 模型(ARMA 是其中的特例)。一些函数是在 Julia 中实现的,其他函数(特别是估计)使用 RCall 调用等效的 R 函数。在使用 RARIMA 之前,您需要安装并验证它是否有效。该包尚未正式注册(尚未),因此 Pkg.add("RARIMA")
目前无法使用。如果您想使用 RARIMA,请尝试 Pkg.clone("https://github.com/colintbowers/RARIMA.jl")
。如果失败,您可以在存储库 github 页面上提交问题,但请务必检查 RCall
是否已安装并在执行此操作之前正常工作。干杯,如果/当软件包正式注册时,我会回来并在这里更新。
原始答案:我只是浏览了源代码,TimeModels
似乎没有任何估计 ARIMA 模型的功能,虽然确实有一个函数可以模拟它们。不过,给定时间,我怀疑这将是处理 ARIMA 建模的包。 TimeSeries
包更多地是关于构建对象类型 TimeSeries
而不是实现时间序列模型,所以如果 ARIMA 建模被合并到该包中我会感到惊讶。
据我所知,在这一点上,如果你想要一个功能齐全的 ARIMA 包,你需要使用 Matlab 或 R。R 非常好(请参阅 Rob Hyndman 编写的预测包 - 它非常好nice) 并且可能比 Matlab 选项更容易与 Julia 交互。当然,另一种选择是自己启动它并将代码与 TimeModels
包合并:-)
在优化程序方面,Julia 有相当一部分是用 Julia 编写的,可以在 JuliaOpt 下找到。伞。 Optim特别是 package 非常受欢迎并且开发得很好。然而,我认识的大多数真正喜欢这个东西的人都使用 NLOpt这是一个可从多种语言(包括 Julia)调用的免费开源库。我从那些倾向于 24/7 全天候使用这些东西的人那里只听到了关于这个库的好消息。
关于matlab - 在 Julia 中估算 ARMA 系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27025328/