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