future_vpaにインプットとして入れる将来予測の空のarrayを生成する関数

make_future_data(
  res_vpa,
  nsim = 1000,
  nyear = 50,
  plus_age = NULL,
  plus_group = NULL,
  future_initial_year_name = 2017,
  start_F_year_name = 2018,
  start_biopar_year_name = 2018,
  start_random_rec_year_name = 2018,
  waa_year,
  waa = NULL,
  waa_catch_year,
  waa_catch = NULL,
  waa_fun = FALSE,
  start_waafun_year_name = start_biopar_year_name,
  waa_fun_name = NA,
  waa_catch_fun = FALSE,
  start_waacatchfun_year_name = start_biopar_year_name,
  waa_catch_fun_name = NA,
  maa_year,
  maa = NULL,
  maa_fun = FALSE,
  start_maafun_year_name = start_biopar_year_name,
  M_year,
  M = NULL,
  faa_year = NULL,
  currentF = NULL,
  futureF = NULL,
  start_ABC_year_name = 2019,
  HCR_beta = 1,
  HCR_Blimit = -1,
  HCR_Bban = -1,
  HCR_year_lag = 0,
  HCR_beta_year = NULL,
  HCR_Blimit_year = NULL,
  HCR_Bban_year = NULL,
  HCR_TAC_reserve_rate = NA,
  HCR_TAC_reserve_amount = NA,
  HCR_TAC_carry_rate = NA,
  HCR_TAC_carry_amount = NA,
  HCR_TAC_upper_CV = NA,
  HCR_TAC_lower_CV = NA,
  HCR_function_name = "HCR_default",
  HCR_reserve_denom = "original_ABC_plus",
  Pope = res_vpa$input$Pope,
  fix_recruit = NULL,
  fix_wcatch = NULL,
  max_F = exp(10),
  max_exploitation_rate = 0.99,
  res_SR = NULL,
  seed_number = 1,
  scale_ssb = 1,
  scale_R = 1,
  resid_type = "lognormal",
  bias_correction = TRUE,
  resample_year_range = NA,
  backward_duration = 5,
  recruit_intercept = 0,
  setting_release = NULL,
  model_average_option = NULL,
  regime_shift_option = NULL,
  silent = FALSE,
  special_setting = NULL
)

Arguments

res_vpa

vpaの結果 (vpa関数の返り値)

nsim

シミュレーションの繰り返し回数

nyear

将来予測の実施年数

plus_age

プラスグループとして計算する行(年齢ではないことに注意)。デフォルト値(NULL)ならfuture_initial_year_name年にNA以外の数値が入っている一番大きい行をプラスグループの行とする。plus_ageという名前だが、plus_group=FALSEの場合には、たんに最大年齢になる。年齢の行数よりもプラスグループが小さいような場合(対馬マイワシなど)に対応。

plus_group

プラスグループを考慮するかどうか。与えない場合、res_vpa$input$plus.groupの設定を引き継ぐ。ただし、inputを使ってdo.callする場合などにはうまく調整できないことがあるので、明示的に与えたほうがよいかも。

future_initial_year_name

将来予測の「初期値となる」年齢別資源尾数を参照する年。この年の年齢別資源尾数を使って翌年の個体群動態が将来予測で決定される

start_F_year_name

将来予測でF全体にmultiplierを乗じる場合、multiplierを乗じる最初の年

start_biopar_year_name

生物パラメータを将来の生物パラメータとして設定された値に置き換える年の最初の年

start_random_rec_year_name

将来の加入を再生産関係から予測する最初の年

waa_year

将来の年齢別体重を過去の平均値とする場合、過去のパラメータを平均する期間, maa_year, M_yearも同様

waa

将来の年齢別体重を直接与える場合, maa, M_yearも同様

waa_fun

FALSE: 使わない、TRUE: log(weight)~log(number)の回帰式から将来のweightを予測する,

start_waafun_year_name

上記の設定がスタートする最初の年。それ以外の年は上で設定されたパラメータが使われる

waa_fun_name

カスタマイズされたwaa_funを使う場合、その関数のオブジェクトの名前

waa_catch_fun

FALSE: 使わない、TRUE: log(weight)~log(number)の回帰式から将来のweightを予測する

waa_catch_fun_name

カスタマイズされたwaa_funを使う場合、その関数のオブジェクトの名前

maa_fun

maturity ~ number の回帰式から将来のmaturityを予測する(暫定的、太平洋マダラでのみ利用)

faa_year

将来のFを過去の平均値とする場合、平均をとる年を指定する。下のcurrentF, futureFが指定されている場合にはこの設定は無視される

currentF

start_ABC_yar_name以前に使うFのベクトル(いわゆるcurrent F)

futureF

start_ABC_yar_name以降に使うFのベクトル(いわゆるFmsy)

start_ABC_year_name

HCRを有効にする年

HCR_beta

HCRのbeta

HCR_Blimit

HCRのBlimit

HCR_Bban

HCRのBban

HCR_year_lag

HCRするときにいつのタイミングのssbを参照するか.0の場合、ABC計算年のSSBを参照する。正の値1を入れると1年前のssbを参照する

HCR_beta_year

betaを年によって変える場合。tibble(year=2020:2024, beta=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_betaで設定されたbetaは上書きされる。

HCR_Blimit_year

Blimitを年によって変える場合。tibble(year=2020:2024, Blimit=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_Blimitで設定されたBlimitは上書きされる。

HCR_Bban_year

Bbanを年によって変える場合。tibble(year=2020:2024, Bban=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_Bbanで設定されたBbanは上書きされる。

HCR_TAC_reserve_rate

TACの取り残し率。マイナス値を入れれば前借りもできる。

HCR_TAC_reserve_amount

TACの獲り残し量。マイナス値を入れれば前借りもできる。rateとamountの片方どちらかだけ設定する

HCR_TAC_carry_rate

当初TACのうち何トンまで持ち越せるかの上限(比率)。マイナス値を入れれば前借りもできる。

HCR_TAC_carry_amount

当初TACのうち何トンまで持ち越せるかの上限(比率)。マイナス値を入れれば前借りもできる。

HCR_TAC_upper_CV

漁獲量が前年の漁獲量のHCR_TAC_upper_CV倍と比較し、それよりも変化が大きい場合には前年の漁獲量xHCR_TAC_upper_CVを上限とする。単一の値か、tibble形式 tibble(year=2020:2024, TAC_upper_CV=rep(0.1,5)) で与える

HCR_TAC_lower_CV

漁獲量が前年の漁獲量のHCR_TAC_lower_CV倍と比較し、それよりも変化が大きい場合には前年の漁獲量xHCR_TAC_lower_CVを下限とする。単一の値か、tibble形式 tibble(year=2020:2024, TAC_lower_CV=rep(0.1,5)) で与える

HCR_function_name

デフォルトは"HCR_default" ここを変更(関数名を文字列で与える。関数は別に定義しておく)すると自作のHCRが適用される。その場合、データのほうで定義されているbeta, Blimit, Bbanなど、同じ名前のものは有効

HCR_reserve_denom

比率で取り残し量を決める場合、もともとのABCをもとにするか("original_ABC"、ブリ・マダラ繰越前借り設定)前年からの繰越も考慮したABCをもとにするか("original_ABC_plus", スケトウ繰越設定)

Pope

漁獲方程式にPopeの近似式を使うかどうか。与えない場合には、VPAのオプションが引き継がれる

fix_recruit

将来予測において再生産関係を無視して加入量を一定値で与える場合、その加入の値。list(year=2020, rec=1000)のように与える。

fix_wcatch

将来予測において漁獲量をあらかじめ決める場合

res_SR

再生産関係の推定関数 (fit.SR of fit.SRregime) の返り値

seed_number

乱数のシードの数

resid_type

加入量の残差の発生方法。"lognormal":対数正規分布, "resample": リサンプリング, "backward": backward resampling

bias_correction

将来予測でバイアス補正をするかどうか

resample_year_range

"resampling", "backward"で有効。年の範囲を入れると、対象とした年の範囲で計算される残差を用いる。

backward_duration

"backward"の場合、何年で1ブロックとするか。"backward"で有効。デフォルトは5 。

recruit_intercept

将来の加入の切片。将来の加入は R=f(ssb) + intercept となる。

setting_release

より詳細な放流シナリオを設定する場合. 将来の放流数は list(number=tibble(value=)) or list(number=tibble(year=))) or list(number=tibble(year=xxx, value=xxx))) として与える。yearのみ単独で与えるのは過去年を与え、その期間の平均放流数を使う。yearとvalueの両方を与える場合には、将来年が想定されており、その年の放流尾数をvalueとして用いる。例えば tibble(year=c(2021:2100), value=c(100,200,rep(300,length(21:2100)-2)) と与えると2021,2022年は100, 200匹の総放流尾数、2023年以降は300匹となる。年は、実際に将来予測を実施するよりも十分長い年数を与えること(長すぎても問題はないので)。将来の添加効率も list(rate=tibble(value=)) or list(rate=tibble(year=))) として与える。この場合のyearは過去年。valueを与えると、与えたvalueのベクトルからランダムサンプリングされる。結果的にsetting_release = list(number=tibble(year=1990:2000), rate=tibble(value=c(0.4, 0.5, 0.3))) みたいな、リストの中に2つのtibbleが入ったちょっとややこしい構造になります。この将来予測へのデータにはres_vpaとres_SR$input$SRdataの両方に放流に関するデータが格納されています。過去の放流データをどちらのソースからとってくるかについても、data_source="SR" or "VPA"で選択してください。setting_releaseで指定されない限り、デフォルトはVPA結果からとってきます。

model_average_option

model averagingをする場合のオプション. SR_matのlistとweightをlist形式で入れる(list(SR_list=list(res_SR1,res_SR2),weight=c(0.5,0.5)))

regime_shift_option

res_SRにfit.SRregimeの返り値を入れた場合に指定する。将来予測で再生産関係のどのフェーズがおこるかを指定する。list(future_regime=将来のregimeの仮定。keyで指定された番号を入れる)

special_setting

list形式で与えるmake_future_dataの返り値のdataと同じ名前の要素について、最後にデータをここで示されたarrayのシミュレーション1回めの値で上書きする。arrayのデータに対してのみ有効。

Value

以下の要素からなるリスト

input

使用した引数のリスト。do.call(make_future_data, input)で計算を再現できる

data

future_vpa関数に渡すデータのセット

data$naa_mat, data$caa_mat, data$waa_mat, data$waa_catch_mat, data$maa_mat, data$M_mat, data$faa_mat

年齢×年数(VPA期間年+将来予測年)×シミュレーション回数の3次元データ。順に、年齢別年別シミュレーション別の資源尾数、漁獲尾数、体重、漁獲量計算用の体重、成熟率、自然死亡係数、漁獲死亡係数。このうち、資源尾数はVPA期間年までのみデータが入っていて、future_vpaを実行することによってここに推定値が入る。faa_matについても、future_vpa実行時にHCRなどの適用の設定によって適宜書き換えられる。

data$SR_mat