1

我想在 R 中找到给定 Gamma、Weibull 和 Log 正态分布的数据的对数似然。鉴于我已经估计了各自分布的参数,我该如何继续?

4

1 回答 1

6

这是伽玛的一个例子。Weibull 和 log-Normal 遵循完全相同的过程。

set.seed(101)
x <- rgamma(20,shape=3,rate=2.5)

library(MASS)
(ff <- fitdistr(x,"gamma"))
##     shape       rate  
##   4.452775   4.175653 
##  (1.358630) (1.348722)

fitdistr有一个对数似然访问器方法:

logLik(ff)
## 'log Lik.' -13.14535 (df=2)

或者您可以手动完成:

sum(dgamma(x,shape=coef(ff)["shape"],rate=coef(ff)["rate"],log=TRUE))
## [1] -13.14535

或一点糖/R-magic:

with(as.list(coef(ff)),
      sum(dgamma(x,shape=shape,rate=rate,log=TRUE)))

对于其他分布

  • densfun="weibull"->dweibull()
  • densfun="lognormal"->dlnorm()

在这两种情况下,参数的参数化/名称fitdistr在相应的密度函数之间匹配。

于 2014-02-19T09:11:12.363 回答