--- title: "R Laboratuvarı 12: Maksimum olabilirlik" format: html execute: echo: true warning: false --- Üstel ömür modelinin hız parametresi analitik ve sayısal olarak tahmin edilir. ```{r} life <- c(82, 105, 97, 121, 76, 110) analitik <- 1 / mean(life) neg_loglik <- function(rate) { if (rate <= 0) return(Inf) -(length(life) * log(rate) - rate * sum(life)) } sayisal <- optimize(neg_loglik, interval = c(1e-6, 0.2))$minimum sonuc <- data.frame( yontem = c("analitik ML", "sayısal ML"), hiz_saat_eksi_1 = c(analitik, sayisal), ortalama_omur_saat = 1 / c(analitik, sayisal) ) knitr::kable(sonuc, digits = 6, caption = "Üstel model hız tahmini") ``` Bu olabilirlik sağdan sansür bulunmadığını varsayar. Bernoulli kusur olasılığı için maksimum olabilirlik tahmini ve büyük örneklem standart hatası aşağıda hesaplanır. ```{r} x_kusur <- 18L n_parca <- 50L p_hat <- x_kusur / n_parca p_se <- sqrt(p_hat * (1 - p_hat) / n_parca) bernoulli <- data.frame( olcu = c("ML kusur olasılığı", "yaklaşık standart hata"), deger = c(p_hat, p_se) ) stopifnot(isTRUE(all.equal(p_hat, 0.36))) knitr::kable(bernoulli, digits = 5, caption = "Bernoulli model tahmini") ``` Bir uç değere karşı ortalama ile kırpılmış ortalamanın duyarlılığı karşılaştırılır. İki özetin her koşulda aynı anakütle parametresini hedeflemediği unutulmamalıdır. ```{r} life_contaminated <- c(life, 800) duyarlilik <- data.frame( veri = c("özgün", "800 saat eklenmiş"), ortalama_saat = c(mean(life), mean(life_contaminated)), kirpilmis_ortalama_saat = c(mean(life, trim = 0.20), mean(life_contaminated, trim = 0.20)) ) knitr::kable(duyarlilik, digits = 3, caption = "Tahminci duyarlılığı") ```