optim でより正確な値を取得したい。
次の変数を検討してください。
test<-c(1,2,1,2,3,2,1,2,0.5,0.4,-0.1)
$\mu$ と $\sigma$ の推定値は次のとおりです。
mean(test)
[1] 1.345455
sd(test)
[1] 0.9223488
または私は使用することができます
library(MASS)
fitdistr(test,"normal")
そして私は得る
mean sd
1.3454545 0.8794251
(0.2651566) (0.1874941)
まったく同じではないのはなぜですか? ここで、optim を使用して手動でこれを行いたいと思います。
loglikenorm<-function(theta){
return (-sum(log(dnorm(test,mean=theta[1],sd=theta[2])))
}
optim(c(0,0.01),loglikenorm)
そして私は得る
$par
[1] 1.3451582 0.8798248
これは正確ではありません。もっと正確にしたいのですが、どうすればいいですか?
ここと同じ設定 (通常の distr を使用) で fitdistr と optim を使用すると、推定値がわずかに異なる場合があります。最適化をより正確に行うにはどうすればよいですか?