在R中对Gamma密度进行最大似然估计

4

我刚刚模拟了100个来自形状参数为5和速率参数为5的伽玛分布的随机观测值:

x=rgamma(100,shape=5,rate=5)

现在,我想使用一个函数从这些观测值中找到最大似然估计的 alpha 和 lambda 参数,并返回这两个参数。

如果有任何提示,将不胜感激。谢谢。


1
library("stats4"); ?mle; example("mle") - Ben Bolker
1个回答

6
您可以在MASS包中使用fitdistr(...)来实现此功能。
set.seed(1)   # for reproducible example
x <- rgamma(100,shape=5,rate=5)

library(MASS)
fitdistr(x, "gamma", start=list(shape=1, rate=1))$estimate
#    shape     rate 
# 6.603328 6.697338 

请注意,像这样的小样本并不能得到很好的估计结果。
x <- rgamma(10000,shape=5,rate=5)
library(MASS)    # may be loaded by default
fitdistr(x, "gamma", start=list(shape=1, rate=1))$estimate
#    shape     rate 
# 4.984220 4.971021 
fitdistr(...) 还会返回估计量的标准误差和对数似然值。

谢谢您先生!讲解得非常好。 - Mercier
对于估计的标准误差,是渐近方差的平方根吗?如果不是,有没有一种有趣的方法来找到它?我期待着在R中使用optim函数来完成这个任务。 - Mercier
1
一种获取此信息的方法是在命令行中键入 fitdistr(没有 ? 和没有 (...),只有函数名)。这将列出该函数的代码。从中可以看到,fitdistr(...) 将标准误差计算为方差-协方差矩阵的对角线的平方根,而方差-协方差矩阵则是由 optim(...) 返回的海森矩阵的逆矩阵。因此,我会说,是的,它是渐近方差的平方根。 - jlhoward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接