我想在R中找到给定Gamma,Weibull和Log正态分布的数据的对数似然性。如果我已经估计了各个分布的参数,我该如何进行?
答案 0 :(得分:6)
这是Gamma的一个例子。 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"
- &gt; dweibull()
densfun="lognormal"
- &gt; dlnorm()
在这两种情况下,参数的参数化/名称在fitdistr
和相应的密度函数之间匹配。