最尤推定 fitdistr

R の MASS パッケージの中に fitdistr 関数があり、最尤推定に用いられる。

fitdistr(
  x,         # データ
  densfun,   # 確率質量・密度関数
  start,     # 初期値(リストで与える)
  ...        # densfun もしくは optim に代入したい引数 
)

densfun に指定できる分布の名前は beta, cauchy, chi-squared, exponential, f, gamma, geometric, log-normal, lognormal, logistic, negative binomial, norma, Poisson, t, weibull である。

正規分布のパラメーター推定

fitdistr 関数を利用して正規分布のパラメーターを推定する例を示す。yrnorm により生成した乱数を格納し、fitdistr でパラメーター推定を行う。

y <- rnorm(100, mean = 10, sd = 2.5)

fit <- fitdistr(y, densfun = "normal")
fit
##       mean          sd    
##   10.0140406    2.2942897 
##  ( 0.2294290) ( 0.1622308)

初期値を与える例。この場合、密度関数 dnorm を利用する。また、初期値として標本平均と標本標準偏差を与える。

fitdistr(y, densfun = dnorm, start = list(mean = mean(y), sd = sd(y)))
##       mean          sd    
##   10.0140406    2.2942896 
##  ( 0.2294290) ( 0.1622306)

負の二項分布のパラメーター推定

負の二項分布のパラメーターを 2 つ持つ分布である。正規分布と同様に fitdistr 関数を利用してパラメーターを推定することができる。

y <- rnbinom(100, mu = 100, size = 2)

fitdistr(y, densfun = "negative binomial")
##       size           mu     
##     2.1345928   103.4400000 
##  (  0.2907785) (  7.1526378)

References

  1. Rの統計解析関数Tips. HTML