make_future_data.Rd
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
)
vpaの結果 (vpa関数の返り値)
シミュレーションの繰り返し回数
将来予測の実施年数
プラスグループとして計算する行(年齢ではないことに注意)。デフォルト値(NULL)ならfuture_initial_year_name年にNA以外の数値が入っている一番大きい行をプラスグループの行とする。plus_ageという名前だが、plus_group=FALSEの場合には、たんに最大年齢になる。年齢の行数よりもプラスグループが小さいような場合(対馬マイワシなど)に対応。
プラスグループを考慮するかどうか。与えない場合、res_vpa$input$plus.groupの設定を引き継ぐ。ただし、inputを使ってdo.callする場合などにはうまく調整できないことがあるので、明示的に与えたほうがよいかも。
将来予測の「初期値となる」年齢別資源尾数を参照する年。この年の年齢別資源尾数を使って翌年の個体群動態が将来予測で決定される
将来予測でF全体にmultiplierを乗じる場合、multiplierを乗じる最初の年
生物パラメータを将来の生物パラメータとして設定された値に置き換える年の最初の年
将来の加入を再生産関係から予測する最初の年
将来の年齢別体重を過去の平均値とする場合、過去のパラメータを平均する期間, maa_year, M_yearも同様
将来の年齢別体重を直接与える場合, maa, M_yearも同様
FALSE: 使わない、TRUE: log(weight)~log(number)の回帰式から将来のweightを予測する,
上記の設定がスタートする最初の年。それ以外の年は上で設定されたパラメータが使われる
カスタマイズされたwaa_funを使う場合、その関数のオブジェクトの名前
FALSE: 使わない、TRUE: log(weight)~log(number)の回帰式から将来のweightを予測する
カスタマイズされたwaa_funを使う場合、その関数のオブジェクトの名前
maturity ~ number の回帰式から将来のmaturityを予測する(暫定的、太平洋マダラでのみ利用)
将来のFを過去の平均値とする場合、平均をとる年を指定する。下のcurrentF, futureFが指定されている場合にはこの設定は無視される
start_ABC_yar_name以前に使うFのベクトル(いわゆるcurrent F)
start_ABC_yar_name以降に使うFのベクトル(いわゆるFmsy)
HCRを有効にする年
HCRのbeta
HCRのBlimit
HCRのBban
HCRするときにいつのタイミングのssbを参照するか.0の場合、ABC計算年のSSBを参照する。正の値1を入れると1年前のssbを参照する
betaを年によって変える場合。tibble(year=2020:2024, beta=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_betaで設定されたbetaは上書きされる。
Blimitを年によって変える場合。tibble(year=2020:2024, Blimit=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_Blimitで設定されたBlimitは上書きされる。
Bbanを年によって変える場合。tibble(year=2020:2024, Bban=c(1.3,1.2,1.1,1,0.9)) のようにtibble形式で与える。HCR_Bbanで設定されたBbanは上書きされる。
TACの取り残し率。マイナス値を入れれば前借りもできる。
TACの獲り残し量。マイナス値を入れれば前借りもできる。rateとamountの片方どちらかだけ設定する
当初TACのうち何トンまで持ち越せるかの上限(比率)。マイナス値を入れれば前借りもできる。
当初TACのうち何トンまで持ち越せるかの上限(比率)。マイナス値を入れれば前借りもできる。
漁獲量が前年の漁獲量のHCR_TAC_upper_CV倍と比較し、それよりも変化が大きい場合には前年の漁獲量xHCR_TAC_upper_CVを上限とする。単一の値か、tibble形式 tibble(year=2020:2024, TAC_upper_CV=rep(0.1,5)) で与える
漁獲量が前年の漁獲量のHCR_TAC_lower_CV倍と比較し、それよりも変化が大きい場合には前年の漁獲量xHCR_TAC_lower_CVを下限とする。単一の値か、tibble形式 tibble(year=2020:2024, TAC_lower_CV=rep(0.1,5)) で与える
デフォルトは"HCR_default" ここを変更(関数名を文字列で与える。関数は別に定義しておく)すると自作のHCRが適用される。その場合、データのほうで定義されているbeta, Blimit, Bbanなど、同じ名前のものは有効
比率で取り残し量を決める場合、もともとのABCをもとにするか("original_ABC"、ブリ・マダラ繰越前借り設定)前年からの繰越も考慮したABCをもとにするか("original_ABC_plus", スケトウ繰越設定)
漁獲方程式にPopeの近似式を使うかどうか。与えない場合には、VPAのオプションが引き継がれる
将来予測において再生産関係を無視して加入量を一定値で与える場合、その加入の値。list(year=2020, rec=1000)のように与える。
将来予測において漁獲量をあらかじめ決める場合
再生産関係の推定関数 (fit.SR of fit.SRregime) の返り値
乱数のシードの数
加入量の残差の発生方法。"lognormal":対数正規分布, "resample": リサンプリング, "backward": backward resampling
将来予測でバイアス補正をするかどうか
"resampling", "backward"で有効。年の範囲を入れると、対象とした年の範囲で計算される残差を用いる。
"backward"の場合、何年で1ブロックとするか。"backward"で有効。デフォルトは5 。
将来の加入の切片。将来の加入は R=f(ssb) + intercept となる。
より詳細な放流シナリオを設定する場合. 将来の放流数は 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 averagingをする場合のオプション. SR_matのlistとweightをlist形式で入れる(list(SR_list=list(res_SR1,res_SR2),weight=c(0.5,0.5)))
res_SRにfit.SRregimeの返り値を入れた場合に指定する。将来予測で再生産関係のどのフェーズがおこるかを指定する。list(future_regime=将来のregimeの仮定。keyで指定された番号を入れる)
list形式で与えるmake_future_dataの返り値のdataと同じ名前の要素について、最後にデータをここで示されたarrayのシミュレーション1回めの値で上書きする。arrayのデータに対してのみ有効。
以下の要素からなるリスト
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