更新: 2018-01-16 12:26:08
生態学のデータ解析 - 極値分布
- ここでは R を使った極値分布の推定について説明します
- 参照: CRAN Task View の Environmetrics の Extreme values section
もくじ
極値理論とは何か
- ある確率分布にしたがう独立な N 個のサンプルがあったときに,そのサンプルの極値 (最大値など) はどういった分布にしたがうか,を統計モデリングする理論
- 例: 毎年の最高気温が独立と考えたときに,20 年分のデータを集めたときの最高気温はどうなるか? またもし 100 年ぶんデータがあるとすればその最高気温はどうなるか予測せよ,といったハナシ
一般化極値分布 (GEV) とはなにか
- Genelarized Extreme Value distribution (Wikipedia) とは代表的な極値分布 3 種類をまとめた確率分布
- パラメーターは三つ: μ (mu), σ (sigma), ξ (xi)
- 以下に紹介する R の極値分布 package ではこれらのパラメーターを最尤推定している
- 内部では
optim()
を使って計算している-
method
オプション指定できる: (例)method = "SANN"
でシミュレイテッドアニーリニング法,収束が難しい状況でも最尤推定値が計算できたりする,ただし精度はあらくなりがち
-
- 内部では
R をつかった GEV の推定
library(extRemes) と library(ismev)
- どちらも Stuart Coles 原作
- もともと R 用ではなかったので全体に R っぽくない
-
library(extRemes)
すると自動的にlibrary(ismev)
される- 両 library はいつもいっしょに使うのがよい (それぞれ単独では使いにくい)
- R の
library(help = ...)
: ismev, extRemes - ismev とは作者 Coles の書いた教科書 An Introduction to Statistical Modeling of Extreme Values (2001) からとられた名前である (つまり教科書の例題などをふくむ)
- 極値分布とか知らない人はこの教科書がないとこれらの library を使うのはたいへんだろう
-
library(extRemes)
すると TclTk の専用 user interface が表示されるが,こんなのはすぐに消してしまったよい- もちろんこの専用 UI 上でデータ解析しても良い
- 以下では専用 UI を 使わない 場合について説明している
-
x
がデータ (例: 毎年の最大気温,欠測なし) が格納されているとする- GEV の 3 パラメーターは
gev.fit(x)
で推定される - return plot は下のように作図させる
- R の help 参照: help(rlplot)
- GEV の 3 パラメーターは
data(ftcanmax) fit <- gev.fit(ftcanmax[,"Prec"]) class(fit) <- "gev.fit" rlplot(fit)
- この
rlplot()
関数は解読するといろいろ参考になる-
print(rlplot)
などで表示できる - また GEV の quantile 値をえる
gevq()
関数は help などはないけど,ユーザー側から自由に使うことができる (print(gevq)
参照)
-
- Tutorial: http://www.isse.ucar.edu/extremevalues/tutorial/index.html