Maxentの利用方法 その2;MaxentでHSIモデルを作成する方法

Maxentの利用方法の続きです。ようするに、Maxentは、生き物の生息データと、その場所の環境データ(標高、植生など)から、対象地域内での生息確率を予測するツールです。これだけだとRでのロジスティック回帰分析などと手順はあまり変わりません。
しかし、Maxentの便利な所は、

  1. 計算された生息確率が、どの環境データにどれくらい依存しているか?
  2. それぞれの環境データの値の変化が、生息確率にどのように影響するか?

この結果も同時に出力できるところです。つまり、変数選択と、変数の説明も同時にできてしまうのです。この結果を利用すれば、HSIモデルを簡単に作成できるので、その方法を紹介します。

1. Maxentの設定

Maxentを実行するときに、"Create response curves" と "Do jackknife to measure variable importance"にチェックを入れます。

2. 変数選択

緑色のグラフは、その変数が無いときにどれくらい生息適合度が下がるかを表しています。
青色のグラフは、その変数だけのときにどれぐらいの生息適合度になるかを表しています。
このグラフを見て、相関のある変数や、あまり意味のない変数を確認して、それをモデルから外すことによって変数選択をします。

※ただ、出力された予測結果は、上記のことを考慮して重み付けされているので、意味のない変数が入っているからといって、意味のない出力結果になっているわけではありません。

3. 変数の説明

変数ごとに、その値が変化すると生息確率がどのように変化するを表しています。
このグラフを見て、どのような環境条件が、その生き物に適しているのかを理解します。

4. HSIモデルの作成

2.で適切に変数選択をすれば、3.のグラフがそのままSI値になります。
あとは、どうやってHSIモデルとしてSIを結合するかですが、Maxentで出力される確立分布P(Row)を変形したlogisticの値をそのまま使います。
確率分布Pは、以下のように定義されています。

P=Exp(λ1f1+λ2f2+,,,)/Z
Z=ΣExp(λ1f1+λ2f2+,,,)

ただし、実際には、変数は0〜1に正規化されて計算されているので、以下のようにします。

f1 = λ1*(x - min)/(max-min) ※関数の形が線形の場合
f2 = λ1*(x*x - min)/(max-min) ※関数の形が二次の項の場合

S = f1 + f2 + ,,,, - linearPredictorNormalizer ※linearPredictorNormalizerは、Expの中が正だと計算が不安定になるので、それを調整する値
P = Exp(S)/densityNormalizer

ロジスティックの値は、Pとentropyの値から以下のように計算します。

logistic = Exp(entropy)*P/(1+Exp(entropy)*P

上記の計算に必要なλ,min,max,linearPredictorNormalizer,densityNormalizer,entropyの値は、出力フォルダの中のhogehoge.lamdasファイルに出力されています。


というわけで、Maxentを利用すれば、簡単にHSIモデルを作成することができました。