具有多维参数数组的 R optim/nlm

发布于 2024-12-15 06:25:01 字数 329 浏览 0 评论 0原文

我正在使用 optim/nlm 进行最大似然估计,并且我的参数位于多维数组中。

似然评估良好,即给定数据 x 和参数 theta 的多维数组,likelihood(theta,x) 给出实数。

然而,使用 optim/nlm,起始值与 theta 的维度相同,评估得很好,我收到以下错误:

Error in theta[1, 1, 1] : incorrect number of dimensions

评估可能性时。事实证明 optim/nlm 将我的多维数组展平为一维数组。无论如何,我可以将 optim/nlm 与多维参数数组一起使用吗?

I'm using optim/nlm to do a maximum likelihood estimation, and my parameters are in a multidimensional array.

The likelihood evaluates fine, i.e. given a data x, and multidimensional array of parameters theta, likelihood(theta,x) gives a real number.

However, using optim/nlm, with a starting value that has the same dimension as the theta had evaluated just fine, I'm getting the following error:

Error in theta[1, 1, 1] : incorrect number of dimensions

when evaluation the likelihood. It turns out that optim/nlm flattens my multidimensional array to a 1D array. Is there anyway I can use optim/nlm with a multidimensional array of parameters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

隔纱相望 2024-12-22 06:25:01

我不相信 optim 本身可以实现这一点。我的建议是自己恢复形状,例如

optim(
    matrix(1:4, 2, 2),
    function(par) {
        par = matrix(par, 2, 2) # Reshape
        sum((par - matrix(5:8, 2, 2))**2)
    }
)

I do not believe this is possible with optim itself. My advice would be to restore the shape yourself, e.g.

optim(
    matrix(1:4, 2, 2),
    function(par) {
        par = matrix(par, 2, 2) # Reshape
        sum((par - matrix(5:8, 2, 2))**2)
    }
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文