1

R のガンマ分布、ワイブル分布、および対数正規分布を指定して、データの対数尤度を見つけたいと考えています。それぞれの分布のパラメーターを既に推定した場合、どうすればよいでしょうか?

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-魔法の少し:

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 に答える