簡體   English   中英

伯努利隨機變量的似然圖和對數似然圖 function

[英]Plots of Likelihood and log-likelihood function of Bernoulli random variable

data(quilpie, package = "GLMsData"); names(quilpie)
mu = seq(0.01, 0.99, length.out = 100L)
loglik = NULL
lik =NULL
for (i in 1:length(mu)) {
  loglik[i] <- sum(dbinom(quilpie$y, size = 1, prob=mu[i], log=TRUE))
  lik[i] <- sum(dbinom(quilpie$y, size=1, prob=mu[i], log=FALSE))
}
plot(mu, lik, type = "l", lwd = 2,
     xlab = expression(paste(,mu ,)),
     main = "Likelihood function",
     ,ylab = expression(paste("loglik (", mu ,")")))
abline(v = mu[which(lik==max(lik))], lwd = 3, lty =2)
abline(v = optimize(lik, lower = 0, upper = 1, maximum = TRUE)$max)
optimize(lik, lower = 0.01, upper = 0.99, maximum = TRUE)
mu[which(lik==max(lik))]

plot(mu, loglik, type = "l", lwd = 2,
     xlab = expression(paste(,mu ,)),
     main = "Log-likelihood function",
     ,ylab = expression(paste("loglik (", mu ,")")))
abline(v = mu[which(loglik==max(loglik))], lwd = 3, lty =2)
abline(v = optimize(loglik, lower = 0, upper = 1, maximum = TRUE)$max)
optimize(loglik, lower = 0.01, upper = 0.99, maximum = TRUE)
mu[which(loglik==max(loglik))]

我正在嘗試獲取可能性和對數似然的圖。 對數似然 plot 運行良好,但似然 function plot 沒有顯示任何內容。 此外,優化function 不起作用。 我需要這方面的幫助。

logliklik的計算重寫為函數,將它們向量化,然后optimize 和 plot 與curve

請注意,函數將在參數prob上進行優化,這里作為第一個參數,名為x
參數y是數據。

floglik <- function(x, y){
  sum(dbinom(y, size = 1, prob = x, log = TRUE))
}
floglik <- Vectorize(floglik, "x")

max_loglik <- optimize(floglik, interval = c(0, 1), y = quilpie$y, maximum = TRUE)

curve(floglik(x, quilpie$y), from = 0, to = 1,
      lwd = 2,
      xlab = expression(paste(mu)),
      main = "Log-likelihood function",
      ylab = expression(paste("loglik (", mu ,")")))
abline(v = max_loglik$maximum)

可能性也是如此。

flik <- function(x, y){
  prod(dbinom(y, size = 1, prob = x, log = FALSE))
}
flik <- Vectorize(flik, "x")
max_lik <- optimize(flik, interval = c(0, 1), y = quilpie$y, maximum = TRUE)

curve(flik(x, quilpie$y), from = 0, to = 1,
      lwd = 2,
      xlab = expression(paste(mu)),
      main = "Likelihood function",
      ylab = expression(paste("lik (", mu ,")")))
abline(v = max_lik$maximum)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM