0
私は2つの関数のラッパー関数を持っています。各関数には独自のパラメータベクトルがあります。主な考えは、パラメータのベクトル(ベクトルまたは2つのベクトル)をoptim
に渡してから、関数の合計を最大化したいと考えています。2つのベクトルのベクトルを使用する方法
私の関数はとても複雑なので、私は私の元の関数に似た簡単な例を提供しようとしました。ここに私のコードは次のとおりです。
このエラーを返すset.seed(123)
x <- rnorm(10,2,0.5)
ff <- function(x, parOpt){
out <- -sum(log(dnorm(x, parOpt[[1]][1], parOpt[[1]][2]))+log(dnorm(x,parOpt[[2]][1],parOpt[[2]][2])))
return(out)
}
# parameters in mu,sd vectors arranged in list
params <- c(set1 = c(2, 0.2), set2 = c(0.5, 0.3))
xy <- optim(par = params, fn=ff ,x=x)
:optim
は私の機能の各部分にパラメータを渡すことができないため
Error in optim(par = params, fn = ff, x = x) :
function cannot be evaluated at initial parameters
私は理解したように、私はこのエラーを得ました。だから、私はoptim
に、最初のベクトルが私の関数の最初の部分のパラメータであり、2番目のベクトルが2番目の部分のためのパラメータであると言うことができます。
@akrunこの問題についてご支援いただきありがとうございます。しかし、それは本当に非常に重要です。だから、それで私を助けてくれますか?あなたのすべてのご意見やご協力をいただければ幸いです。前もって感謝します。 – Alice