・標本整理
午後
・会議
・学会業務
・会議
・書類作成
Rで最大エントロピーを用いた生息適地の推定に関する土日の悪戦苦闘メモ。
色々とやり方があることが分かった。
まず、この本では、バッチモード(?)でmaxentを実行する方法が書かれている。
コマンドでmaxent.jarを実行するということだと思うけど、私にはできなかった。
ちなみに、この本で主に扱われているbiomod2パッケージでは、バッチモードを使わなくても
BIOMOD_Modeling( models = c("MAXENT.Phillips") )で実行できる。しかし、解析オプションの設定や結果の出力がうまく制御できなかった。
ということで、biomod2は挫折した。ただ、他のモデルを比較したり、アンサブル予測をするには、biomod2上で実行する必要があるので(?)、今後の課題としておく。
Rからmaxent.jarを実行するにはもう一つ方法がある。dismoパッケージを経由する方法。こちらは出力されるデータが(私には)扱いやすかった。
マニュアル通りにやればこんな感じの地図が作れる。
また、そもそもJavaを使わずにmaxentをRで実行するためのmaxnetパッケージというのがある(スペルがややこしいので注意)。本家Maxentを作った本人によって作られており、Rで最大エントロピーを用いた生息適地の推定をするなら、これが本命かも。
kh-blogさんによる日本語での詳しい説明がある。
Rでやるならこれが良いのかも。他にも、MIAmaxent、rmaxent、maxlikeなんてもあるらしい。maxlikeは以前使ったことがあるか、前2者は詳細不明。
地図にプロットする際に、確率ではなく、ある閾値で区切って在 or 不在の二値化にしたいことも多いはず。
これについては、自動で計算してくれる関数をCecina Babich Morrowさんsが公開している。
上の地図をminimum training presence (MTP)で作図してみた。MTPでは、種の分布が発見された地点を全て、最適地に含むように閾値を指定する。
また、閾値が決まっているならば、plot()の機能を使う方が安心かも。
breakpoints <- c(0,0.1,0.2) #区切りを決める colors <- c("red","blue") #区間の色を決める plot(model_pred, breaks=breakpoints,col=colors, legend = FALSE)