2

optim/nlm を使用して最尤推定を行っていますが、パラメーターは多次元配列になっています。

尤度はうまく評価されます。つまり、データ x とパラメーター theta の多次元配列が与えられると、尤度(theta,x) は実数を返します。

ただし、optim/nlm を使用して、theta が正常に評価されたのと同じ次元の開始値を使用すると、次のエラーが発生します。

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

可能性を評価するとき。optim/nlm が多次元配列を 1D 配列にフラット化することがわかりました。パラメータの多次元配列で optim/nlm を使用できる方法はありますか?

4

1 に答える 1

3

私はこれがそれ自体で可能であるとは信じていませんoptim。私のアドバイスは、自分で形状を復元することです。

optim(
    matrix(1:4, 2, 2),
    function(par) {
        par = matrix(par, 2, 2) # Reshape
        sum((par - matrix(5:8, 2, 2))**2)
    }
)
于 2011-11-10T20:30:27.700 に答える