17.3

17.2では別の場所へのモデルの投影を行った。 17.3では別の時間へのモデルの投影を行う。

時間への投影は大きく、未来への投影と過去への投影に分けられる。

17.3.1 未来への投影

雑にまとめてしまうと絶滅するかどうか、などを予測することができる。

library(raster)
library(fields)
library(gam)
## Loading required package: splines
## Loading required package: foreach
## Loaded gam 1.20
library(mgcv)
## Loading required package: nlme
## 
## Attaching package: 'nlme'
## The following object is masked from 'package:raster':
## 
##     getData
## This is mgcv 1.8-34. For overview type 'help("mgcv-package")'.
## 
## Attaching package: 'mgcv'
## The following objects are masked from 'package:gam':
## 
##     gam, gam.control, gam.fit, s
mammals_data <- read.csv("hsdm/data/tabular/species/mammals_and_bioclim_table.csv", row.names=1)
gam1 = gam(VulpesVulpes ~ s(bio3) + s(bio7) + s(bio11) + s(bio12), data=mammals_data, family="binomial")
bio3r.cu<-raster("hsdm/data/raster/bioclim/current/grd/bio3.grd")
bio7r.cu<-raster("hsdm/data/raster/bioclim/current/grd/bio7.grd")
bio11r.cu<-raster("hsdm/data/raster/bioclim/current/grd/bio11.grd")
bio12r.cu<-raster("hsdm/data/raster/bioclim/current/grd/bio12.grd")
biostack.curr<-stack(bio3r.cu,bio7r.cu,bio11r.cu,bio12r.cu)
names(biostack.curr)
## [1] "bio3"  "bio7"  "bio11" "bio12"
vulpes.curr <- predict(biostack.curr, gam1, type="response")

ここまでで17.2までに走っていたスクリプトを走らせる。 bio3r.fuなどは将来の環境である。どこから取得したのかなどについては未確認。

bio3r.fu<-raster("hsdm/data/raster/bioclim/future/grd/bio3.grd")
bio7r.fu<-raster("hsdm/data/raster/bioclim/future/grd/bio7.grd")
bio11r.fu<-raster("hsdm/data/raster/bioclim/future/grd/bio11.grd")
bio12r.fu<-raster("hsdm/data/raster/bioclim/future/grd/bio12.grd")
biostack.fut<-stack(bio3r.fu,bio7r.fu,bio11r.fu,bio12r.fu)
names(biostack.fut)
## [1] "bio3"  "bio7"  "bio11" "bio12"

17.2で作成したGAMのモデルを用いて将来へ投影する。 当たり前かもしれないが、作成時に用いた変数の名称は統一させなければならない。それは上記のnames(biostack.fut)などで確かめることができる。

vulpes.fut <- predict(biostack.fut, gam1, type="response")
vulpes.na.cur<-crop(vulpes.curr, extent(-170,-50,10,90))
vulpes.na.fut<-crop(vulpes.fut, extent(-170,-50,10,90))
par(mfrow=c(1,2))
  plot(vulpes.na.cur, col=two.colors(start="grey90", 
    end="firebrick4", middle= "orange2"),main="Current climate")
  plot(vulpes.na.fut, col=two.colors(start="grey90",
    end="firebrick4",middle= "orange2"),main="Future climate")

par(mfrow=c(1,1))

プロットからは将来、アカギツネが高緯度へ進出する可能性が読み取れる。

Future HS and Uncertainty

biostack.fut_df <- as.data.frame(rasterToPoints(biostack.fut))
vulpes.fut_se <- raster::predict(gam1, biostack.fut_df, 
    type="response", se.fit=T)
vulpes.fut_se <- rasterFromXYZ(cbind(biostack.fut_df[,1:2],
    vulpes.fut_se), biostack.fut)
## Warning in if (is.na(res[1])) {: 条件が長さが 2 以上なので、最初の 1 つだけが使
## われます
## Warning in if (is.na(res[2])) {: 条件が長さが 2 以上なので、最初の 1 つだけが使
## われます
vulpes.fut_se<-crop(vulpes.fut_se, extent(-170,-50,10,90))
names(vulpes.fut_se) <- c("Habitat suitability future 
    climate", "Habitat suitability Uncertainty")
plot(vulpes.fut_se, col=two.colors(start="grey90",
    end="firebrick4", middle= "orange2"))

しかし、予測の不確実性をプロットすると高緯度地帯で不確実性が高いという結果に。

これらのことから、内容的には特に記述はないが、高緯度へ進出する可能性は不確実性に由来する可能性も考慮する必要がある。

アカギツネのように移動能力の高い種であれば環境変化に応じて移動することが可能であるが、移動能力の低い生物はある時間において投影した将来の生息適地が実際の分布領域の外側にある可能性にも考慮が必要である。

(これも当たり前の話に思えるが)ある時期で当てはめたモデルを将来に投影する際には、ニッチを構成する環境条件が変わっていないか注意が必要である。これは場所においても同じ。

17.3.2 過去への投影

過去への投影を行うことで、現在の分布パターンの理解や過去の移入プロセスなどの検証を行うことができ得る。

過去への投影ではないが、学習の際に過去のデータを用いることで現在、及び将来の予測精度が上がる場合もある。