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
関数を利用して正規分布のパラメーターを推定する例を示す。y
に rnorm
により生成した乱数を格納し、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
- Rの統計解析関数Tips. HTML