R中nlm-package的时间复杂度?

Time complexity of nlm-package in R?

我正在估计非线性系统(通过看似无关的回归 - SUR),使用 systemfitnlsystemfit() 函数)包,包含 4 个方程、32 个参数来估计 (!) 和412 条意见。但是我的代码需要永远(我的笔记本电脑不是超级强大的笔记本电脑)。到目前为止,这个过程已经进行了 13 个小时 运行。我不是计算方面的专家,但前段时间有人向我解释了算法(或 big-o)的时间复杂度的概念,然后根据这个概念,计算某个算法的时间可能依赖于特定的函数关系关于观察次数 and/or 系数。

因此,我正在考虑停止我的过程,并尝试(暂时)简化模型并尝试 运行 一些更简单的东西,只是为了检查估计的参数到目前为止是否有意义.然后,运行 一个完整的模型。

但是如果我可以更改模型中的关键元素,这一切都有意义,这可以显着减少处理时间。这就是为什么我在 google 上寻找 nlm 包的时间复杂度(nlsystemfit() 函数依赖于 nlm)但没有成功。所以,这是我的问题:有人知道我在哪里可以找到该信息,或者至少给我建议如何在 运行 整个模型之前测试非线性系统?

由于您没有提供有关您的模型或相同代码的任何实质性信息,因此很难对您的情况进行改进。

根据你所说的:

Hence, I'm thinking of just stopping my process, and trying to simplify the model (temporarily) and trying to run something simpler, only to check-up if the estimated parameters had sens so far. And then, run a whole model.

您似乎需要 基准测试 或获取测量的执行时间,如您的情况。 (尽管它也可以处理内存使用或其他一些性能指标)

有很多方法可以在 R 中对代码进行基准测试,其中包括在 algorithm/function 执行之前和之后使用 Sys.time()system.time(),或者诸如此类的库rbenchmark(这是 system.time 函数的简单包装)、tictocbenchmicrobenchmark

其中最后两个是更可取的选项,因为 bench::mark 包括 system_time()system.time()microbenchmark 的更高精度替代被认为是可靠的来源准确测量和比较 R expressions/algorithms.

的执行时间