آموزش R | برآورد ماکزیمم درستنمایی به کمک شبیه سازی

فرض کنید ۲۰ مشاهده از توزیع نمایی با پارامتر نامعلوم لامبدا داریم (داده ها را با تابع rexp شبیه سازی می کنیم). می خواهیم براورد ماکزیمم درستنمایی برای پارامتر مجهول را به دست بیاوریم. ابتدا ۲۰ مشاهده شبیه سازی می کنیم. (اعداد تولید شده هربار متفاوت هستند، ولی همگی از توزیع نمایی استخراج شده اند.) سپس تابع لگاریتمی آن را بصورت تابعی به نام nllhood می نویسیم. سپس با nlminb براورد پارامتر مورد نظر را محاسبه می کنیم.

خروجی برنامه:

$par
[۱] ۴٫۳۸۹۸۳۴

$objective
[۱] -۹٫۵۸۵۸۳۴

$convergence
[۱] ۰

$iterations
[۱] ۶

$evaluations
function gradient
۷        ۸

$message
[۱] “relative convergence (4)”

برنامه:

>  x <- rexp(۲۰, rate = ۴)
>  n <- length(x)
>  nllhood = function(lambda) {
+  -۱ * (n * log(lambda) – lambda * sum(x))
+  }
>  fit <- nlminb(۶, nllhood)
>  fit

ارسال دیدگاه