R でアルファ多様性を計算する:
シャノンおよびシンプソン指数

UB3/informatics/r/diversity_alpha

このページの最終更新日: 2023/03/16

  1. 概要: α多様性とは
  2. R による Shannon および Simpson indices の計算

広告

概要: α多様性とは

α多様性は、ある地点の生物多様性を示す指標である。他にも β多様性および γ多様性があるので、基礎的な内容については以下のサイト内検索から関連ページを参照のこと。


α多様性を表す指数としては、Shannon index および Simpson index の 2 つが有名である。このページでは、R を用いてこれらの指数を算出する方法をまとめる。

なお、Shannon および Simpson indices は 以下の式で定義されている。s は全体の種の数、pi は種 i の個体数が全体の個体数に占める割合である。

Shannon 指数

Shannon指数

Simpson 指数

Shannon指数

R による Shannon および Simpson indices の計算

diversity 関数

vegan という パッケージ の diversity() 関数で、2 つの指数が同時に計算される (1)。

データ形式は、1 つの行が 1 サンプル (または地点)、各行にそれぞれの種の abundance がある整然データである。すなわち、以下の表のような形。

Achimill

Agrostol

Airaprae

Alopgeni

Anthodor

Bellpere

1

1

0

0

0

0

0

2

3

0

0

3

0

3

3

0

4

0

7

0

2


これは vegan パッケージに含まれている dune という 組み込みデータセット の一部である。数字はおそらく個体数、Achimill, Agrostol... などは Achillea millefolium、Agrostis stolonifera などの種の名前である。

dune は 20 行 30 列のデータなので、上に表示しているのはごく一部。

多様性は diversity() 関数で計算する (2)。Shannon がデフォルトなので、何も指定しないと Shannon index が計算される。Simpson index は、index = "simpson" とするか、または単に "simpson" で良い。

diversity(dune, index = "simpson")
diversity(dune, "simpson")
diversity(dune) # Shannon がデフォルト

結果は以下のようにベクターになる。5 個しか示していないが、dune の場合は 20 個のサンプル (20 行に分けて収められている) について全て多様性が計算されるので、全体で 20 個の数値が得られる。

Rによるアルファ多様性の計算

renyi 関数

renyi という関数を使う方法もあるようである (1)。exp(renyi(dune)) のようにすると、0 が種数、1 がシャノン・ウィナー、2 がシンプソンになると書かれているが、どうも diversity 関数の結果と一致しない。あとでこの関数について調べて更新。


広告

References

  1. 多様性指数の算出:R備忘録. Link: Last access 2022/05/03.
  2. Vegan Tutorial. Link: Last access 2022/05/03.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。