optimx()は間違った解決策を提供していますか、それとも簡単なポイントがありませんか?ありがとうございました!
私は非常に単純な可能性を最大化しようとしています。これは、Fの分布がパラメトリックに指定されていないという意味で、ノンパラメトリック尤度です。むしろ、観察されたそれぞれについてxi
、f(xi)=pi
したがってlog(Likelihood)=Sum(log(f(xi)))=Sum(log(pi))
。
私が最大化しようとしている関数は次のとおりです。sum(log(pi))+lamda(sum(pi-1))
ここでsum(pi)=1
(つまり、これは制約付き最大化の問題であり、ラグランジュ乗数を使用して解決できます)。
この問題に対する答えは、データポイントの数がpi=1/n
どこにあるかです。n
ただし、optimxはこの解決策を提供していないようです。誰かが何か考えを持っていますか。の場合n=2
、私が最大化している関数はですlog(p1)+log(p2)+lamda(p1+p2-1)
。
これが私のコードとRからの出力です:
n=2
log.like=function(p)
{
lamda=p[n+1]
ll=0
for(i in 1:n){
temp = log(p[i])+lamda*p[i]-lamda/(n)
ll=ll+temp
}
return(-ll)
}
mle = optimx(c(0.48,.52,-1.5),
log.like,
lower=c(rep(0.1,2),-3),
upper=c(rep(.9,2),-1),
method = "L-BFGS-B")
> mle
par fvalues method fns grs itns conv KKT1 KKT2 xtimes
1 0.9, 0.9, -1.0 1.010721 L-BFGS-B 8 8 NULL 0 FALSE NA 0
n=2
isp1=p2=1/2
と。のときの方程式の解lamda=-2
。ただし、optimxを使用すると、これは取得されません。何か案が?