如何用泊松分布估计[并绘制]最大似然?

艾琳

我设置了一个函数来计算分布的可能性。我得到的是负值,我想知道我的功能是否正确?如果可以的话,如何绘制函数曲线?

y <- function(mu, x) {
  n <- length(x)
  -n*mu + log(mu)*sum(x) - sum(lfactorial(x))
}

x<-c(5,4,0,1,4,7,3,5,4)
mu<-c(3,4,2.5)
y(x,mu)

任何建议都将非常有帮助。

ÁlvaroA.GutiérrezVargas

在下面,您可以从Poisson分布中找到对数似然的完整表达。此外,我模拟了Poisson分布中的数据,rpois用于测试mu等于5,然后使用优化对数似然性从数据中恢复optimize

#set seed
set.seed(777)
#loglikeliood of poisson
log_like_poissson <- function(y) {
  n <- length(y)
  function(mu) {
    log(mu) * sum(y) - n * mu - sum(lfactorial(y))
  }
}
# Data simulation: Poisson with lambda = 5
y <- rpois(n=10000, lambda = 5)
# Optimization of the loglikelihood
optimise(log_like_poissson(y), 
         interval = c(0, 100), 
         maximum = TRUE)

#$maximum
#[1] 4.994493
#
#$objective
#[1] -22033.2

该代码高度基于Advanced R的第10章,您可以在其中找到有关如何优化上述可能性的广泛讨论。

[编辑]

对于问题的图形部分,您可以使用以下代码查看对数似然在mu的不同值下的行为。从图中可以看出,该函数的最大值为mu等于5的值(符合预期)。

library(ggplot2)
values_for_mu<- seq(from=0.05, to = 10 ,   by =0.05 )
#new loglikelihood (only depends on mu)
log_like_poissson2 <- function(mu) {
  n <- length(y)
  (log(mu) * sum(y)) - (n * mu) - sum(lfactorial(y))
}
#Evaluate the loglikelihood at different values of mu
values_log_like <- unlist(lapply(values_for_mu, 
             FUN = log_like_poissson2))
#generate a dataframe to ggplot2
df <- data.frame(values_for_mu, values_log_like)
# Plot
ggplot(df, aes(x=values_for_mu, y=values_log_like)) +
  geom_line() + geom_vline(xintercept = 5, linetype="dotted", 
                           color = "red", size=1.5) + 
  xlab("mu") + ylab("Value of Log-likelihood")

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

r中三参数威布尔分布的最大似然估计

来自分类Dev

R:计算最大似然估计器

来自分类Dev

如何用pymc 2对两个泊松分布的总和建模?

来自分类Dev

如何用pymc 2对两个泊松分布的总和建模?

来自分类Dev

如何使Seaborn符合泊松分布?

来自分类Dev

如何估计R中的泊松分布样本的Lambda,并以此为基础得出估计量密度函数的核估计?

来自分类Dev

拟合泊松分布

来自分类Dev

最大似然估计到底是什么意思?

来自分类Dev

最大似然估计到底是什么意思?

来自分类Dev

Pyspark,如何使用udf计算泊松分布?

来自分类Dev

如何在 Python 中实现这个 R 泊松分布?

来自分类Dev

如何在R中绘制泊松密度曲线?

来自分类Dev

使泊松分布适合正态分布

来自分类Dev

使用ggplot2的stat_function绘制泊松分布

来自分类Dev

RuntimeWarning:绘制泊松分布时在功率中遇到无效值

来自分类Dev

RuntimeWarning:绘制泊松分布时在功率中遇到无效值

来自分类Dev

Java中的泊松分布(正确吗?)

来自分类Dev

在C ++中实现泊松分布

来自分类Dev

递归和,使用泊松分布

来自分类Dev

在泊松分布python中找到概率

来自分类Dev

具有多个x的泊松分布

来自分类Dev

Python中的双变量泊松分布

来自分类Dev

使用R生成泊松分布

来自分类Dev

递归和,使用泊松分布

来自分类Dev

如何实现泊松回归?

来自分类Dev

如何实现泊松回归?

来自分类Dev

基于牛顿-拉夫森和矩量法的最大似然估计

来自分类Dev

在三个参数Weibull cdf上运行最大似然估计的错误

来自分类Dev

使用最大似然估计器实现实现的曲线拟合不起作用