Skip to contents
fao_settings(lang = "zh")   # 本文所有图表使用中文
📦 数据来源:FAO全球捕捞产量(Global Capture Production)2026.1.0版(FAO于2026-03-30发布,1950–2024年),下载地址Capture_2026.1.0.zip,许可证CC BY 4.0。用fao_data_info()查看你使用的版本和引用格式。

本文的五个函数都采用渔业学和生态学文献中已发表的方法。每一节都给出方法及其出处,便于对照原始研究核查结果,并说明哪些设置是本包的选择、而非原始研究的做法。完整的参考文献列在文末。

示例使用东北大西洋(FAO 27区)。图表保存在figures/png/summary/,表格保存在tables/。中上层鱼/底层鱼渔获比pelagic_demersal()也属于这一类分析,见📈 类群结构、资源状态与趋势。

FAO27 <- fishing_area_data("Atlantic, Northeast")

五个函数共有以下参数:

参数 含义 默认值
plot 将图表保存到figures/png/summary/ TRUE
table 将表格保存到tables/ TRUE
lang 图表和名称的语言:"en"、"zh"或"both";NULL表示使用fao_settings()设置的语言 NULL
pptx 同时把图表保存为可编辑的PowerPoint文件,存放在figures/pptx/summary/ FALSE;运行fao_settings(pptx = TRUE)后为TRUE
plot_show 保存图表的同时把图画在绘图窗口中(例如RStudio的Plots窗格) FALSE,或fao_settings()中的plot_show
label 输出文件名开头的名称 数据所属的渔区(或国家)

这些函数以不可见的方式返回结果:把结果赋给一个对象(x <- catch_shocks(...)),才能使用其中的表格。

📝 写入Word报告

fao_report()可以把其中四项分析加入某个渔区的Word报告(见📝 一键生成评估报告(Word、LaTeX、PDF))。这些章节默认关闭:

fao_report(27, shocks = TRUE, collapse = TRUE, synchrony = TRUE, distant = TRUE)

各函数的参数以章节名作前缀传入:

fao_report(27, shocks = TRUE, collapse = TRUE, synchrony = TRUE, distant = TRUE,
           shocks_method = "gephart2017",   # 即catch_shocks(method = "gephart2017")
           collapse_method = "worm2006",    # 即collapse_analysis(method = "worm2006")
           collapse_seed = 2,               # 零模型随机序列的随机数种子
           synchrony_by = "country",        # 即catch_synchrony(by = "country")
           distant_countries = 5,           # 介绍5个主要远洋捕捞国家
           distant_min_catch = 100)         # 即distant_water_profile(min_catch = 100)
章节 函数 报告专有的设置
shocks catch_shocks()
collapse collapse_analysis() collapse_seed:零模型随机序列的随机数种子,默认为1,使报告每次给出相同的数字
synchrony catch_synchrony()
distant distant_water_profile() distant_countries:介绍的国家数,默认为3(近五年在该渔区远洋渔获量最高的国家),也可以直接给出国家名,如c("China", "Japan")
pelagic pelagic_demersal()

compare_releases()比较的是数据的两个版本,而不是描述某个渔区,所以不是报告的章节。

⚡ 渔获骤变

骤变(shock)指产量从一年到下一年突然出现的异常大幅下降。Gephart et al. (2017)提出了在各国水产品产量序列中识别骤变的统计方法,Cottrell et al. (2019)用该方法的一个变体比较了作物、畜牧、渔业和水产养殖生产中的骤变。catch_shocks()把这两种方法用于FAO产量序列,并按年份和分组统计骤变发生的频率。

方法

默认情况下,一条序列是一个国家在一个FAO渔区的产量(by = c("country", "area"))。序列从第一个有产量的年份开始,到数据的最后一年结束,缺失的年份按0计。对每条序列:

  1. 对产量ctc_t做平滑,保留平滑后的残差rt=ct−ĉtr_t = c_t - \hat{c}_t。
  2. 用残差对前一年的残差做回归:rt=a+brt−1+etr_t = a + b\,r_{t-1} + e_t(滞后1年的回归)。
  3. 在这一回归中库克距离(Cook’s distance)超过阈值的年份为候选骤变。库克距离衡量单个观测值对回归拟合的影响,因此能找出打破通常年际变化规律的年份。
  4. 只有产量低于根据前几年计算的基线BtB_t时,候选年份才算骤变。损失量为Bt−ctB_t - c_t吨,或100(Bt−ct)/Bt100\,(B_t - c_t)/B_t%。
  5. 此后产量第一次回升到BtB_t的95%以上的年份,即为该次骤变的恢复年份。

两种方法的平滑方法、阈值和基线不同:

"cottrell2019"(默认) "gephart2017"
平滑方法 LOESS,跨度0.6 lowess,跨度2/3
库克距离阈值 大于0.3 大于0.35
基线BtB_t 前7年产量的中位数 前5年产量的平均值
最早可能出现骤变的年份 序列的第8年 序列的第6年
出处 Cottrell et al. (2019)的方法部分及其代码 Gephart et al. (2017)第2节及其代码

由骤变可以得到两个汇总指标:

  • 某一年的骤变频率:当年的骤变次数除以当年参与分析的序列数,以百分比表示(Cottrell et al. 2019);序列从其第一个有产量的年份起计入,产量降到零的年份也计入,因此降到零的骤变在分子和分母中都被计入;
  • 某个分组(渔区、国家、大洲或物种类群)的骤变率:骤变次数除以该组的序列数(Gephart et al. 2017)。

有两项设置是本包的选择。有产量的年数少于min_years(20年)的序列不纳入分析,因为两项研究都没有规定序列的最短长度。已不存在的国家(如苏联)的序列在其最后一个有产量的年份结束,以免把国家的解体算作骤变。

示例

shocks <- catch_shocks(FAO27$area_data)
Atlantic__Northeast_shocks.png
Atlantic__Northeast_shocks_series.png
Atlantic__Northeast_shocks_by_continent.png
Atlantic__Northeast_shocks_by_country.png

第一幅图是每年的骤变频率。第二幅图显示产量最大的top_n条序列从首年到末年的时间范围,每次骤变用一个点表示,点的大小代表损失的百分比。其余的图给出各大洲和各国家的骤变率,柱旁标注骤变次数和序列数;只有一个组的分组(这里是渔区)不出图。

按损失吨数排列的最大几次骤变:

largest <- shocks$shocks[order(-shocks$shocks$loss_tonnes), ]
show_table(data.frame(largest[, c("series_name", "Year", "catch_tonnes", "baseline_tonnes", "loss_tonnes",
                                  "loss_pct", "cooks_distance", "recovery_years")], row.names = NULL),
           digits = c(0, 0, 0, 0, 0, 1, 2, 0))
series_name Year catch_tonnes baseline_tonnes loss_tonnes loss_pct cooks_distance recovery_years
格陵兰 | 东北大西洋 2024 89,282 124,106 34,824 28.1 0.47 NA
格陵兰 | 东北大西洋 2019 85,189 118,128 32,939 27.9 0.32 3
波兰 | 东北大西洋 1977 196,823 215,725 18,902 8.8 1.97 3
泽西 | 东北大西洋 2020 992 1,537 545 35.5 0.39 NA

骤变频率最高的年份,以及各大洲的骤变率:

show_table(data.frame(head(shocks$by_year[order(-shocks$by_year$shock_frequency_pct), ], 5), row.names = NULL))
Year n_series n_shocks shock_frequency_pct
1977 23 1 4.35
2019 29 1 3.45
2020 29 1 3.45
2024 29 1 3.45
1950 18 0 0.00
show_table(data.frame(subset(shocks$by_group, grouping == "continent"), row.names = NULL))
grouping group group_name n_series n_shocks shocks_per_series
continent Americas 美洲 2 2 1.00
continent Europe 欧洲 23 2 0.09
continent Asia 亚洲 3 0 0.00
continent Other 其他 2 0 0.00

结果解读:27区有30条国家序列至少有20年有产量,其中3条序列共出现4次骤变。任何一年的骤变频率都不超过4.3%:对单条序列而言,骤变是罕见事件。recovery_years是产量回升到基线95%所用的年数;NA表示到序列结束时仍未恢复(4次骤变中有2次)。已不存在的苏联和“Other nei”(未归属到具体国家的渔获)在FAO国家列表中没有所属大洲,因此显示为NA。

其他设置

Gephart et al. (2017)的方法。文件名中不含方法名,所以用label避免这次调用的图表覆盖第一次调用的图表:

gephart <- catch_shocks(FAO27$area_data, method = "gephart2017", label = "FAO27 gephart2017")
FAO27_gephart2017_shocks.png
both <- merge(shocks$shocks[, c("series", "Year")], gephart$shocks[, c("series", "Year")])
c(cottrell2019 = nrow(shocks$shocks), gephart2017 = nrow(gephart$shocks), both = nrow(both))
#> cottrell2019  gephart2017         both 
#>            4            6            3

两种方法分别找到4次和6次骤变,其中只有3次落在相同的序列和年份:许多年份的库克距离都接近阈值,这些临界情况取决于平滑方法和基线。两种方法都能得到的结果更为可靠。

by = "species"时,一条序列是一个物种条目在该渔区的产量(所有国家合计),骤变率还会按ISSCAAP物种类群给出:

species_shocks <- catch_shocks(FAO27$area_data, by = "species", label = "FAO27 species")
FAO27_species_shocks_by_species_group.png
groups <- subset(species_shocks$by_group, grouping == "species_group" & n_series >= 5)
show_table(data.frame(groups[, c("group_name", "n_series", "n_shocks", "shocks_per_series")], row.names = NULL))
group_name n_series n_shocks shocks_per_series
鲱、沙丁鱼、鳀类 6 4 0.67
其他中上层鱼类 19 10 0.53
鲑、鳟、胡瓜鱼类 9 4 0.44
蟹、蜘蛛蟹类 7 3 0.43
金枪鱼、狐鲣、旗鱼类 15 6 0.40
鲨、鳐、银鲛类 50 19 0.38
蛤、鸟蛤、蚶类 16 6 0.38
鲆、鲽、鳎类 22 8 0.36
其他沿岸鱼类 47 17 0.36
其他淡水鱼类 6 2 0.33

两项原始研究分析的是各国的全国总量,即一个国家所有物种和渔区的合计。使用全部渔区的数据并设by = "country",即可得到同样的序列(耗时较长):

catch_shocks(load_fao_data(), by = "country", method = "gephart2017")

参数与返回值

参数 含义 默认值
area_data FAO产量数据:fishing_area_data()$area_data,或load_fao_data()的任意子集
by 序列的定义:"country"、"area"和"species"中的一个或多个 c("country", "area")
method "cottrell2019"或"gephart2017" "cottrell2019"
min_years 有产量的年数少于该值的序列不纳入分析 20
top_n 时间线图中显示的产量最大的序列数 25
plot、table、lang、pptx、label 通用参数(见本文开头)
元素 内容
shocks 每次骤变一行:所属序列、Year、catch_tonnes、baseline_tonnes、loss_tonnes、loss_pct、cooks_distance和recovery_years
by_year 每年的n_series(当年参与分析的序列数,包括产量降到零的序列)、n_shocks和shock_frequency_pct
by_group 按grouping(国家、渔区、物种、大洲、物种类群)统计的骤变率:n_series、n_shocks和shocks_per_series
series 参与分析的序列:first_year、last_year、n_years、total_tonnes和n_shocks
  • 两项原始研究分析的都是全国总量。一个国家在一个渔区的序列,或一个物种的序列,是把同一方法用于更小的单元。
  • 波动剧烈的序列(如秘鲁鳀)可能不出现骤变,因为大幅变化在这类序列中很常见(Gephart et al. 2017)。
  • 骤变只是产量序列中的异常,可能源于资源本身、环境、市场、管理或统计报告方式的变化,产量数据本身无法区分。
  • 平滑和回归都使用整条序列,所以增加一年的新数据,可能改变较早的年份是否被判定为骤变。

💥 渔业崩溃

根据产量数据判定崩溃,常用的定义有两种。Mullon et al. (2005)统计了FAO产量序列中的崩溃,并描述了崩溃前产量下降的形态;Worm et al. (2006)跟踪产量低于其最高值10%的渔业所占的比例。Wilberg and Miller (2007)指出,即使是没有趋势的随机序列,按第二种指标计算的比例也会上升,所以collapse_analysis()会把数据与这样的随机序列进行比较。

方法

"mullon2005"(默认) "worm2006"
一条序列 一个国家在一个FAO渔区捕捞的一个物种或属 一个物种条目在一个FAO渔区的产量,所有国家合计
不纳入分析 未鉴定到属或种的条目;exclude_countries中的国家;最后complete_years(20)年中有缺失年份的序列;年平均产量低于min_mean_catch(500吨)的序列 总产量低于min_total_catch(1万吨)的渔业
崩溃 在最高产量XmaxX_{max}出现的年份之后,产量连续4年低于Xmax/10X_{max}/10;其中第一年为崩溃年份DcD_c(Mullon et al. 2005,第113页) 产量低于最高值10%的年份即处于崩溃状态,回升到10%以上即为恢复。渔业从产量首次达到最高值10%的年份算起
结果 崩溃次数、崩溃年份和崩溃前的下降形态 每年处于崩溃状态的渔业比例,以及曾经崩溃的渔业比例(Worm et al. 2006,正文及补充材料第4–5页)

exclude_countries默认包含Mullon et al. (2005)第112页排除的国家:前苏联、南斯拉夫和捷克斯洛伐克,它们的序列随国家解体而中断;南非和纳米比亚,它们的序列曾被拆分;以及中国,作者认为其序列失真。

下降形态(Mullon et al. 2005,第114页)按以下顺序判定(原文没有说明判定顺序):

类型 规则
平台型 从Dc−8D_c - 8到Dc−3D_c - 3的每一年产量都高于Xmax/4X_{max}/4:长期高产之后突然下降
平滑型 从Dc−10D_c - 10到DcD_c产量与时间的相关系数低于−0.7-0.7:长期、平稳的下降
波动型 其余情况:几经起伏之后的下降
未分类 发生在序列首年之后不足10年的崩溃

Mullon et al.在1950–2000年的1519条FAO序列中发现366次崩溃(24%):平台型占21%,平滑型占33%,波动型占45%。

零模型:序列的最高值随序列长度增加而增大,因此即使什么都没有变化,以最高值为参照定义的“崩溃”渔业比例也会随时间上升(Wilberg and Miller 2007)。null_model = TRUE(默认)时,函数在n_sim(100)组无趋势的随机序列上重复同样的分析,随机序列的起始年份和长度与真实序列相同。与Wilberg and Miller (2007)一样,这些序列是平稳的一阶自回归对数正态序列:xt=ρxt−1+εtx_t = \rho\,x_{t-1} + \varepsilon_t,其中ρ=0.75\rho = 0.75,εt∼N(0,σ2(1−ρ2))\varepsilon_t \sim N\!\left(0,\ \sigma^2 (1 - \rho^2)\right),产量=ext= e^{x_t};σ2=ln⁡(1+CV2)\sigma^2 = \ln(1 + \text{CV}^2),对应80%的变异系数。随机序列中的崩溃比例,就是定义本身所产生的水平。

随机数:每次运行都会重新抽取随机序列,所以零模型的结果每次略有不同。在调用前使用set.seed()可以固定结果。本页使用set.seed(1),使网站每次构建时正文中的数字都与表格一致;fao_report()用collapse_seed(默认为1)做同样的处理。

示例

set.seed(1)   # 固定零模型的随机序列
collapses <- collapse_analysis(FAO27$area_data)
Atlantic__Northeast_collapse_mullon2005.png
Atlantic__Northeast_collapse_mullon2005_types.png
Atlantic__Northeast_collapse_mullon2005_by_group.png

第一幅图是每年的崩溃次数,按下降形态区分。第二幅图是各类型崩溃前后的平均产量(相对于各自的最高值),从崩溃前10年到崩溃后5年;虚线为Xmax/4X_{max}/4和Xmax/10X_{max}/10。第三幅图是至少有3条序列的ISSCAAP物种类群中崩溃序列所占的比例。

s <- collapses$summary
show_table(data.frame(s, row.names = NULL), digits = 1)
type n pct_of_series pct_of_collapses n_series null_pct_of_series
collapsed 166 35.9 100.0 463 22.6
plateau 27 5.8 16.3 463 NA
smooth 45 9.7 27.1 463 NA
erratic 84 18.1 50.6 463 NA
not classified 10 2.2 6.0 463 NA

最高产量最大的崩溃序列,以及各物种类群的崩溃比例:

collapsed <- subset(collapses$series, collapsed)
collapsed <- collapsed[order(-collapsed$max_tonnes), c("series_name", "max_year", "max_tonnes", "collapse_year", "type")]
show_table(data.frame(collapsed, row.names = NULL), digits = 0)
series_name max_year max_tonnes collapse_year type
挪威 | 毛鳞鱼 | 东北大西洋 1977 2,115,701 1987 plateau
挪威 | 大西洋鲱 | 东北大西洋 1954 1,461,500 1973 erratic
挪威 | 大西洋鲭 | 东北大西洋 1967 868,600 1980 erratic
冰岛 | 大西洋鲱 | 东北大西洋 1966 770,700 1969 plateau
丹麦 | 挪威长臀鳕 | 东北大西洋 1974 475,142 2003 smooth
大不列颠及北爱尔兰联合王国 | 大西洋鳕 | 东北大西洋 1956 474,900 2000 erratic
俄罗斯联邦 | 毛鳞鱼 | 东北大西洋 1992 424,781 1994 not classified
丹麦 | 黑线鳕 | 东北大西洋 1969 317,500 1977 erratic
挪威 | 挪威长臀鳕 | 东北大西洋 1975 308,806 2001 smooth
丹麦 | 大西洋鳕 | 东北大西洋 1981 194,716 2017 erratic
groups <- subset(collapses$by_group, grouping == "species_group" & n_series >= 3)
show_table(data.frame(groups[, c("group_name", "n_series", "n_collapsed", "pct_collapsed")], row.names = NULL), digits = 1)
group_name n_series n_collapsed pct_collapsed
鳕、无须鳕、黑线鳕类 124 57 46.0
鲆、鲽、鳎类 63 16 25.4
其他底层鱼类 56 22 39.3
鲱、沙丁鱼、鳀类 42 17 40.5
其他中上层鱼类 33 14 42.4
虾类 18 5 27.8
其他沿岸鱼类 17 5 29.4
鲨、鳐、银鲛类 14 4 28.6
蛤、鸟蛤、蚶类 12 7 58.3
金枪鱼、狐鲣、旗鱼类 11 3 27.3

结果解读:按Mullon et al. (2005)的定义,27区463条序列中有166条(35.9%)发生了崩溃,而无趋势的随机序列中这一比例为22.6%。指向真实崩溃的是两者之差,而不是比例本身。在所有崩溃中,波动型占51%,平台型占16%,平滑型占27%。平台型崩溃最难预见:产量在骤降之前一直保持在高位(Mullon et al. 2005)。

其他设置

Worm et al. (2006)的定义,使用同样的种子:

set.seed(1)
worm <- collapse_analysis(FAO27$area_data, method = "worm2006")
Atlantic__Northeast_collapse_worm2006.png

实线为数据,虚线为零模型的随机序列;红色为曾经崩溃的渔业比例,蓝色为当年处于崩溃状态的渔业比例。

show_table(data.frame(worm$summary, row.names = NULL), digits = 1)
type n n_series pct_of_series null_pct_of_series
collapsed in the last year 103 246 41.9 13.3
collapsed at least once 178 246 72.4 82.1
show_table(data.frame(subset(worm$by_year, Year %in% c(1960, 1980, 2000, max(Year))), row.names = NULL), digits = 1)
Year n_fisheries n_collapsed n_ever_collapsed pct_current pct_cumulative null_pct_current null_pct_cumulative
1960 120 12 24 10.0 20.0 14.5 42.9
1980 175 46 91 26.3 52.0 14.2 65.6
2000 212 39 114 18.4 53.8 12.7 73.3
2024 246 103 178 41.9 72.4 13.3 82.1

到最后一年,27区有72.4%的渔业至少崩溃过一次,而无趋势的随机序列为82.1%:在这个渔区,不断上升的累计比例来自定义本身,这正是Wilberg and Miller (2007)指出的问题。最后一年处于崩溃状态的比例(41.9%,零模型为13.3%)是更好的指标。

另外三项设置也常用:exclude_countries = character(0)在Mullon et al.的方法中保留所有国家;null_model = FALSE不生成随机序列,运行更快;n_sim = 1000使零模型的结果更稳定。

参数与返回值

参数 含义 默认值
area_data FAO产量数据:fishing_area_data()$area_data,或load_fao_data()的任意子集
method "mullon2005"或"worm2006" "mullon2005"
exclude_countries "mullon2005"方法中不纳入分析的国家 c("Un. Sov. Soc. Rep.", "Yugoslavia SFR", "Czechoslovakia", "South Africa", "Namibia", "China")
complete_years "mullon2005"方法中,序列在数据的最后这么多年里每年都须有记录 20
min_mean_catch "mullon2005"方法中,序列的最低年平均产量(吨) 500
min_total_catch "worm2006"方法中,渔业的最低总产量(吨) 10000
null_model 是否在无趋势的随机序列上重复分析(Wilberg and Miller 2007) TRUE
n_sim 零模型随机数据集的组数 100
plot、table、lang、pptx、label 通用参数(见本文开头)
元素 内容
series 每条序列一行:max_year和max_tonnes;"mullon2005"方法另有collapsed、collapse_year和type,"worm2006"方法另有start_year、collapsed_last_year和first_collapse_year
summary "mullon2005":崩溃次数及各类型的次数、pct_of_series、pct_of_collapses和零模型中的比例null_pct_of_series。"worm2006":最后一年处于崩溃状态的渔业和曾经崩溃的渔业,以及零模型的对应结果
by_year "mullon2005":按年份和类型统计的n_collapses。"worm2006":n_fisheries、n_collapsed、n_ever_collapsed、pct_current、pct_cumulative,以及零模型中的相应比例
by_group 按FAO渔区和物种类群统计的崩溃比例:n_series、n_collapsed和pct_collapsed
  • 单凭产量数据,无法区分资源崩溃与管理、市场或统计报告造成的产量下降。
  • 以最高值为参照的定义在随机序列中同样会产生“崩溃”。应把数据与零模型比较;零模型给出的是参照水平,而不是统计检验。
  • Worm et al. (2006)使用的是Sea Around Us数据中各大海洋生态系统的物种;这里的一个渔业是FAO渔区中的一个物种条目,所以两者的比例不能直接比较。
  • 使用默认的exclude_countries时,与Mullon et al. (2005)一样,中国的产量不纳入分析。

🎼 同步性与组合效应

不同物种的产量如果在不同的时间涨落,它们的总产量就比各自的产量更稳定。这就是组合效应(portfolio effect),名称来自分散投资降低风险的道理。Ong et al. (2021)分析了1092条海洋渔获序列,发现渔获越同步的海区,总渔获量越不稳定。catch_synchrony()衡量数据中各产量序列波动的同步程度,以及它们的不同步在多大程度上稳定了总产量。

方法

序列的选取与Ong et al. (2021)相同:年产量的中位数高于min_median(10吨),且超过min_nonzero(3/4)的年份有产量。by = "species"时只使用鉴定到种的条目(Ong et al.排除了“其他”类和未分类的nei条目)。与Ong et al.一样,每条序列先用对年份的线性回归去趋势,因为共同的趋势会使序列看起来同步(Lepš et al. 2019);detrend = "none"则保留趋势。

记σi\sigma_i为序列ii(去趋势后)的标准差,σT\sigma_T为总产量的标准差,mim_i为序列ii的平均产量,mTm_T为平均总产量:

指标 公式 列
同步性 φ=σT2/(∑iσi)2\varphi = \sigma_T^2 / \left(\sum_i \sigma_i\right)^2,从0(波动完全相互抵消)到1(完全同步)(Loreau and de Mazancourt 2008,式9) synchrony_phi
总产量的变异系数 CVT=σT/mT\text{CV}_T = \sigma_T / m_T cv_total
加权平均变异系数 ∑iσi/mT\sum_i \sigma_i / m_T:所有序列完全同步时总产量的变异系数 weighted_mean_cv
分解 CVT=φ×∑iσi/mT\text{CV}_T = \sqrt{\varphi} \times \sum_i \sigma_i / m_T(Thibaut and Connolly 2013,式2–4):同步性越低,总产量越稳定
序列的平均变异系数 CV¯=1n∑iσi/mi\overline{\text{CV}} = \frac{1}{n} \sum_i \sigma_i / m_i mean_cv_series
组合效应 100×(CV¯−CVT)/CVT100 \times (\overline{\text{CV}} - \text{CV}_T) / \text{CV}_T:单条序列比总产量多变多少,以百分比表示(Ong et al. 2021,参照Carlson and Satterthwaite 2011) portfolio_effect_pct
两两相关 去趋势后各序列之间的相关系数:平均值及正相关所占的比例 mean_pairwise_correlation、positive_correlations_pct

同样的指标也在长度为window年(20年)的滑动窗口中计算(每个窗口内分别去除线性趋势,这是本包的选择),以显示同步性随时间的变化。Ong et al. (2021)用小波相干(wavelet coherence)衡量同步性,可以区分不同的时间尺度;本函数采用上述较简单的、基于相关的指标。

示例

sync <- catch_synchrony(FAO27$area_data)
Atlantic__Northeast_synchrony_species.png
Atlantic__Northeast_synchrony_species_cv.png
Atlantic__Northeast_synchrony_species_correlation.png

第一幅图是每个20年窗口的同步性和组合效应,标在窗口的中间年份。第二幅图比较总产量的变异系数(红色,虚线)与产量最大的top_n条序列的变异系数。第三幅图是这些序列之间的相关系数:红色表示同涨同落,蓝色表示相互抵消。

show_table(sync$summary[, c("n_series", "synchrony_phi", "cv_total", "weighted_mean_cv", "mean_cv_series",
                            "portfolio_effect_pct", "mean_pairwise_correlation")], digits = 2)
n_series synchrony_phi cv_total weighted_mean_cv mean_cv_series portfolio_effect_pct mean_pairwise_correlation
100 0.12 0.16 0.46 0.64 305.95 0.02
with(sync$summary, c(cv_total = cv_total, decomposition = sqrt(synchrony_phi) * weighted_mean_cv))
#>      cv_total decomposition 
#>     0.1583766     0.1583766

第二行验证Thibaut and Connolly (2013)的分解:总产量的变异系数等于φ\sqrt{\varphi}乘以加权平均变异系数。各序列的variance_contribution_pct是其对总产量方差的贡献,即该序列与总产量的协方差除以总产量的方差(各序列的贡献合计为100%,能抵消总产量波动的序列为负值);sd_share_pct只是其标准差在∑iσi\sum_i \sigma_i中所占的比例,没有考虑各序列之间的共同变化:

show_table(sync$series[, c("series", "mean_tonnes", "sd_tonnes", "cv", "sd_share_pct", "variance_contribution_pct")], digits = 2)
series mean_tonnes sd_tonnes cv sd_share_pct variance_contribution_pct
大西洋鲱 1,783,720.1 641,085.45 0.36 17.14 -21.13
大西洋鳕 1,340,211.7 250,666.29 0.19 6.70 6.95
毛鳞鱼 963,394.1 913,315.70 0.95 24.42 58.50
小鳍鳕 681,303.2 424,417.72 0.62 11.35 3.77
大西洋鲭 594,879.2 193,891.44 0.33 5.18 6.08
黍鲱 379,887.1 184,815.48 0.49 4.94 10.46
青鳕 Saithe(=Pollock) 369,793.0 121,278.75 0.33 3.24 6.85
黑线鳕 342,581.3 120,815.19 0.35 3.23 3.16
挪威长臀鳕 203,371.8 204,525.52 1.01 5.47 11.78
沙丁鱼 160,844.9 35,782.65 0.22 0.96 0.66
show_table(data.frame(subset(sync$windows, first_year %% 10 == 0), row.names = NULL), digits = 2)
first_year last_year mid_year n_series synchrony_phi cv_total mean_cv_series portfolio_effect_pct
1950 1969 1959.5 100 0.11 0.08 0.49 514.30
1960 1979 1969.5 100 0.04 0.06 0.50 722.09
1970 1989 1979.5 100 0.09 0.08 0.47 491.84
1980 1999 1989.5 100 0.18 0.09 0.35 279.75
1990 2009 1999.5 100 0.15 0.09 0.33 250.20
2000 2019 2009.5 100 0.09 0.07 0.34 363.01

结果解读:27区100条物种序列的同步性为0.12,远低于1:它们的波动在很大程度上相互抵消。总产量的变异系数为0.16,是所有物种同步波动时(0.46)的0.35倍(即φ\sqrt{\varphi})。单条物种序列的变异平均是总产量的4.1倍,组合效应为306%。两条序列之间的平均相关系数为0.02。在滑动窗口中,同步性在1950–1969年为0.11,在1978–1997年达到最高的0.20,到2005–2024年降至0.07。

其他设置

不去趋势,以及按国家而非物种分析:

none <- catch_synchrony(FAO27$area_data, detrend = "none", label = "FAO27 no detrending")
FAO27_no_detrending_synchrony_species.png
countries <- catch_synchrony(FAO27$area_data, by = "country")
Atlantic__Northeast_synchrony_country.png
settings <- rbind(sync$summary, none$summary, countries$summary)
settings$by <- c("species", "species", "country")
show_table(settings[, c("by", "detrend", "n_series", "synchrony_phi", "cv_total", "mean_cv_series",
                        "portfolio_effect_pct", "mean_pairwise_correlation")], digits = 2)
by detrend n_series synchrony_phi cv_total mean_cv_series portfolio_effect_pct mean_pairwise_correlation
species linear 100 0.12 0.16 0.64 305.95 0.02
species none 100 0.09 0.16 0.78 378.89 0.02
country linear 19 0.41 0.16 0.32 97.29 0.13

不去趋势时,同步性为0.09,而不是0.12:几十年来多数物种的产量都在增长,这一共同趋势使序列看起来同步(Lepš et al. 2019)。19个国家的产量相互抵消得更多(φ\varphi = 0.41)。

参数与返回值

参数 含义 默认值
area_data FAO产量数据:fishing_area_data()$area_data,或load_fao_data()的任意子集
by 序列的定义:"species"或"country" "species"
detrend "linear"去除每条序列的线性趋势,"none"不去趋势 "linear"
window 滑动窗口的长度(年) 20
top_n 变异系数图和相关图中显示的产量最大的序列数 20
min_median 序列的年产量中位数须高于该值(吨) 10
min_nonzero 有产量的年份须超过该比例 0.75
plot、table、lang、pptx、label 通用参数(见本文开头)
元素 内容
summary n_series、first_year、last_year、detrend、synchrony_phi、cv_total、weighted_mean_cv、mean_cv_series、portfolio_effect_pct、mean_pairwise_correlation和positive_correlations_pct
series 各序列的mean_tonnes、sd_tonnes(去趋势后)、cv、sd_share_pct和variance_contribution_pct
windows 各滑动窗口的指标:first_year、last_year、mid_year、n_series、synchrony_phi、cv_total、mean_cv_series和portfolio_effect_pct(数据不足window + 2年时为NULL)
correlation 去趋势后各序列两两相关系数的矩阵
  • 趋势会使序列看起来同步(Lepš et al. 2019):解读同步性之前,先比较detrend = "linear"和"none"的结果。
  • 这些指标基于相关系数。Ong et al. (2021)使用小波相干,可以区分时间尺度,并允许存在时滞。
  • 渔获同步波动可能源于鱼类本身,也可能源于捕捞:Ong et al. (2021)发现,渔获的相干既可能来自生物量的相干,也可能来自捕捞死亡率的相干。
  • 序列的平均变异系数不加权,所以产量小而波动大的序列会抬高组合效应;φ\varphi和加权平均变异系数则按各序列的大小加权。

🚢 国家的远洋捕捞概况

1950年以来,海洋渔业的作业范围扩展到越来越大的海域(Swartz et al. 2010)。distant_water_profile()用FAO统计数据追踪一个国家的这种扩张:该国在其邻近渔区和不相邻渔区的产量,每年作业的渔区数,以及在每个渔区的首年、末年、峰值和近期产量。

方法

  • 远洋渔获采用FAO的定义:一个国家在其不相邻的FAO主要渔区的产量。在本国水域以外、但仍在邻近渔区内的捕捞不算远洋渔获(Grainger and Garcia 1996,第2.6节;Garibaldi and Limongelli 2003,第2.1节)。
  • 一个国家的陆地(包括海外领土)距FAO渔区边界20 km以内,该渔区即为该国的邻近渔区。这是本包的规则,与coastal_distant()相同(见🔍 数据质量、多样性与船队)。
  • 一个国家某年在某渔区的产量超过min_catch吨(默认为0,即有任何上报的产量),该渔区就算该年有作业。
  • 内陆渔区不纳入分析。

FAO按渔船的船旗国和FAO主要渔区记录产量,而不是按专属经济区(EEZ)。因此,概况显示的是一个国家的船队在哪些FAO渔区作业,而不是渔获来自本国水域、他国水域还是公海。Swartz et al. (2010)用Sea Around Us的渔获分布图描绘了这种扩张;本函数只用FAO统计数据,空间分辨率为FAO主要渔区。

示例

函数的输入是FAO数据中的国家名,使用该国在所有渔区的产量:

china <- distant_water_profile("China")
China_distant_water.png
China_distant_water_share.png
China_distant_water_areas.png
China_distant_water_n_areas.png
China_distant_water_timeline.png

这些图依次是邻近渔区和远洋渔区的产量(吨数和占比)、各远洋渔区的产量(产量最大的top_n个渔区,其余合并)、每年作业的渔区数,以及每个渔区从首次到最后一次有产量的年份。

show_table(data.frame(tail(china$yearly, 5), row.names = NULL), digits = 1)
Year adjacent_tonnes distant_tonnes distant_pct n_adjacent_areas n_distant_areas n_areas
2020 11,338,947 647,381.8 5.4 1 12 13
2021 11,180,662 762,963.3 6.4 1 12 13
2022 11,192,862 819,959.4 6.8 1 12 13
2023 11,232,509 862,450.3 7.1 1 12 13
2024 11,365,630 733,461.8 6.1 1 12 13
show_table(china$areas[, c("area", "adjacent", "first_year", "last_year", "peak_year", "peak_tonnes",
                           "total_tonnes", "share_of_distant_pct")], n = 20, digits = 1)
area adjacent first_year last_year peak_year peak_tonnes total_tonnes share_of_distant_pct
西北太平洋 TRUE 1950 2024 2015 13,668,205.8 513,123,780.1 NA
东南太平洋 FALSE 2000 2024 2022 554,788.4 7,017,268.6 50.4
西南大西洋 FALSE 1994 2024 2015 471,519.0 2,972,602.5 21.4
西部中太平洋 FALSE 1988 2024 2009 110,289.0 1,377,376.8 9.9
南极大西洋 FALSE 2010 2024 2024 116,368.2 754,284.4 5.4
中东大西洋 FALSE 1986 2024 2012 67,402.0 576,779.9 4.1
中东太平洋 FALSE 2000 2024 2015 42,492.0 517,196.8 3.7
西印度洋 FALSE 1999 2024 2024 86,845.8 486,670.6 3.5
西南太平洋 FALSE 2001 2024 2019 10,802.0 85,474.1 0.6
东印度洋 FALSE 1995 2024 2023 6,451.9 66,412.3 0.5
东南大西洋 FALSE 1991 2024 2000 7,059.0 39,749.4 0.3
西部中大西洋 FALSE 2008 2024 2023 1,872.0 7,402.1 0.1
东北大西洋 FALSE 2004 2024 2005 5,587.0 7,358.2 0.1
南极印度洋 FALSE 2017 2018 2017 513.0 770.9 0.0
地中海和黑海 FALSE 1994 1997 1995 137.0 376.0 0.0

share_of_distant_pct是各远洋渔区在该国整个时期全部远洋渔获中所占的比例。中国只与西北太平洋(61区)相邻。中国在2004年首次上报27区的产量,27区占其远洋渔获的0.1%。

FAO指出,2022年中国上报了230万吨远洋渔获,但只对在中国上岸的渔获(61区)给出了物种和渔区。FAO用区域渔业管理组织的数据补充了其他渔区,并把130万吨记为61区的“Marine fishes nei”(FAO 2024)。因此,中国近年的远洋渔获有一部分计入了与其相邻的61区。

其他设置

西班牙,设min_catch = 100:只有产量超过100吨的年份才算在该渔区有作业:

spain <- distant_water_profile("Spain", min_catch = 100)
Spain_distant_water_share.png
Spain_distant_water_timeline.png
show_table(spain$areas[, c("area", "adjacent", "first_year", "last_year", "peak_year", "peak_tonnes",
                           "total_tonnes", "share_of_distant_pct")], n = 20, digits = 1)
area adjacent first_year last_year peak_year peak_tonnes total_tonnes share_of_distant_pct
东北大西洋 TRUE 1950 2024 1969 614,352.0 31,240,735.4 NA
中东大西洋 TRUE 1950 2024 1978 489,815.0 15,248,549.1 NA
地中海和黑海 TRUE 1950 2024 1982 163,022.0 8,755,909.8 NA
西北大西洋 FALSE 1950 2024 1968 341,312.0 6,661,750.2 28.6
东南大西洋 FALSE 1963 2024 1970 246,000.0 5,457,179.9 23.4
西印度洋 FALSE 1972 2024 2006 210,247.0 5,403,857.6 23.2
西南大西洋 FALSE 1983 2024 2014 197,658.0 3,844,766.4 16.5
东南太平洋 FALSE 1970 2024 2000 28,933.0 605,979.2 2.6
中东太平洋 FALSE 1972 2024 2024 66,924.0 581,127.0 2.5
西部中太平洋 FALSE 1998 2023 2013 45,035.0 418,408.1 1.8
西部中大西洋 FALSE 1972 2024 2011 13,217.0 148,548.8 0.6
西南太平洋 FALSE 2004 2024 2022 8,284.4 95,387.0 0.4
东印度洋 FALSE 1996 2024 1998 13,379.0 50,818.3 0.2
南极大西洋 FALSE 1987 2024 2003 882.0 9,504.2 0.0
南极太平洋 FALSE 2004 2022 2013 531.0 4,910.8 0.0
南极印度洋 FALSE 2005 2018 2006 648.0 2,154.1 0.0
西北太平洋 FALSE 2005 2005 2005 537.0 537.0 0.0
东北太平洋 FALSE NA NA 2013 18.0 18.0 0.0

西班牙与三个FAO渔区相邻:东北大西洋、地中海和黑海,以及因加那利群岛而相邻的中东大西洋。因此,西班牙在27区的产量不算远洋渔获,其share_of_distant_pct为空。

几个国家的远洋渔获中有多少来自27区:整个时期的比例(share_of_distant_pct)和最近五年的比例(recent_share_pct),以及最后一年远洋渔获在其海洋渔获中所占的比例(distant_pct_latest):

others <- c("Japan", "Bulgaria", "Romania", "Korea, Republic of")
profiles <- c(list(China = china, Spain = spain),
              sapply(others, distant_water_profile, plot = FALSE, table = FALSE, simplify = FALSE))
area27 <- do.call(rbind, lapply(names(profiles), function(country) {
  areas <- profiles[[country]]$areas
  here <- areas$area_en == "Atlantic, Northeast"
  recent <- 100 * areas$last_5_years_tonnes / sum(areas$last_5_years_tonnes[!areas$adjacent])
  data.frame(country = fao_translate(country, "country", lang = NULL),
             distant_pct_latest = tail(profiles[[country]]$yearly$distant_pct, 1),
             area27_adjacent = areas$adjacent[here],
             area27_first_year = areas$first_year[here],
             share_of_distant_pct = areas$share_of_distant_pct[here],
             recent_share_pct = ifelse(areas$adjacent[here], NA, recent[here]))
}))
show_table(area27, digits = 1)
country distant_pct_latest area27_adjacent area27_first_year share_of_distant_pct recent_share_pct
中国 6.1 FALSE 2004 0.1 0.0
西班牙 54.2 TRUE 1950 NA NA
日本 7.6 FALSE 1964 0.3 1.5
保加利亚 0.0 FALSE 1972 10.4 NaN
罗马尼亚 0.0 FALSE 1970 3.1 NaN
大韩民国 34.9 FALSE 1983 0.0 0.1

参数与返回值

参数 含义 默认值
country_name FAO数据中的国家名(如"China"、"Spain")
top_n 单独显示的远洋渔区数,其余合并 8
min_catch 某年该国在某渔区的产量超过该吨数,才算该年在该渔区有作业 0
data_version 使用的FAO数据版本,见load_fao_data() "latest"
plot、table、lang、pptx、label 通用参数(见本文开头);label默认为国家名
元素 内容
yearly 每年的adjacent_tonnes、distant_tonnes、distant_pct、n_adjacent_areas、n_distant_areas和n_areas(作业的渔区数)
areas 每个有作业的FAO渔区一行:adjacent,产量超过min_catch的first_year和last_year,以及n_years、peak_year、peak_tonnes、last_5_years_tonnes、total_tonnes和share_of_distant_pct(邻近渔区为空)
distant 各远洋渔区的逐年产量(top_n个渔区,其余合并)

🔁 FAO数据版本之间的修订

FAO每年发布一版全球捕捞产量数据。新版本不仅增加最近一年的数据,还会在各国提交更正或更完整的数据时修订以前的年份(Garibaldi 2012)。Zeller and Pauly (2018)把只在近年数据中采用改进的统计方法、却不修订以前年份的做法称为“现时偏差”(presentist bias),它会使时间序列显示出实际并未发生的增长。compare_releases()逐条比较两个版本的记录,显示哪些年份和国家的数据被修订,以及修订追溯到多早。

方法

一条记录是一个国家、一个物种条目、一个FAO渔区在一年中的产量。两个版本中的每条记录归入以下一类:

类别 规则
revised 两个版本中都有,产量之差超过tolerance(0.5吨,即舍入误差)
added 只在新版本中出现,且年份在旧版本已覆盖的范围内
removed 只在旧版本中出现
reclassified 在一个物种条目下被删除,又以相同的国家、渔区、年份和产量出现在另一个物种条目下,例如FAO更名或拆分物种条目时;不算修订
new year 年份晚于旧版本的最后一年
unchanged 其余记录

然后,函数汇总两个版本中每年的产量和各国的修订量,并统计状态标记发生变化的记录(如从估算值变为官方数据)。两个版本按本包使用的名称比较,下载时已通过FAO编码统一名称。目前还没有已发表的研究以这种方式逐条比较相继的FishStat版本:这一比较是本包提供的工具,上面两篇文献提供了背景。

示例

比较需要电脑上同时有两个版本。最新版本随包内置;较早的版本用download_fao_data()从FAO下载(每个约5 MB)。check_fao_update()列出可以下载的版本。

check_fao_update()               # FAO网站上可以下载的版本
download_fao_data("2025.1.0")    # 下载较早的版本
releases <- compare_releases("2025.1.0", "2026.1.0", area_name = "Atlantic, Northeast")
Atlantic__Northeast_releases_2025_1_0_vs_2026_1_0.png
Atlantic__Northeast_releases_2025_1_0_vs_2026_1_0_by_year.png
Atlantic__Northeast_releases_2025_1_0_vs_2026_1_0_countries.png

第一幅图是两个版本中每年的总产量。第二幅图是每年总产量的修订量(新版本减旧版本),单位为千吨。第三幅图是修订量最大的top_n个国家的净修订量,按修订量绝对值之和排序:一个国家的上调和下调相互抵消时,净修订量虽小,排名仍可能靠前。

table(releases$records$change)
#> 
#>        added reclassified      removed      revised 
#>            9          136           35           53
show_table(data.frame(tail(releases$by_year, 10), row.names = NULL), digits = 1)
Year old_tonnes new_tonnes change_tonnes change_pct n_revised n_added n_removed n_reclassified n_status_changed
2014 8,914,935 8,914,898 -36.6 0.0 0 0 1 6 0
2015 9,410,087 9,410,278 191.3 0.0 1 0 1 6 0
2016 8,605,840 8,607,412 1,572.4 0.0 3 1 1 8 0
2017 9,625,087 9,628,636 3,549.4 0.0 6 0 2 8 0
2018 9,581,025 9,586,641 5,615.3 0.1 4 0 3 6 0
2019 8,570,117 8,575,264 5,147.1 0.1 4 1 2 8 0
2020 8,604,066 8,611,702 7,635.2 0.1 3 1 2 12 0
2021 8,349,327 8,358,726 9,398.2 0.1 7 3 2 4 0
2022 8,722,573 8,731,646 9,073.2 0.1 4 0 3 8 0
2023 8,663,332 8,749,829 86,497.2 1.0 16 2 4 8 29
show_table(releases$by_country[, c("country", "net_change_tonnes", "abs_change_tonnes", "n_records",
                                   "first_year", "last_year")], digits = 0)
country net_change_tonnes abs_change_tonnes n_records first_year last_year
冰岛 76,551 76,551 1 2023 2023
爱尔兰 54,000 54,000 8 2016 2023
德国 1,844 5,168 5 2021 2022
塞内加尔 -4,189 4,465 20 2011 2023
葡萄牙 0 3,410 10 2007 2011
法国 0 1,999 12 2018 2023
马恩岛 521 1,279 13 2023 2023
委内瑞拉玻利瓦尔共和国 -524 524 10 2011 2023
伯利兹 -448 450 2 2016 2019
萨尔瓦多 425 425 3 2015 2021

records只保留发生变化的记录。修订量最大的记录:

records <- releases$records[order(-abs(releases$records$difference)), ]
show_table(data.frame(records[, c("country_name", "species_name", "Year", "tonnes_old", "tonnes_new",
                                  "difference", "change", "status_old", "status_new")], row.names = NULL),
           digits = 0)
country_name species_name Year tonnes_old tonnes_new difference change status_old status_new
冰岛 大西洋鲱 2023 109,769 186,320 76,551 revised actual actual
爱尔兰 泡叶藻 2022 28,000 38,000 10,000 revised estimate estimate
爱尔兰 泡叶藻 2023 28,000 38,000 10,000 revised estimate estimate
爱尔兰 泡叶藻 2020 28,000 36,000 8,000 revised estimate estimate
爱尔兰 泡叶藻 2021 28,000 36,000 8,000 revised estimate estimate
爱尔兰 泡叶藻 2018 28,000 34,000 6,000 revised estimate estimate
爱尔兰 泡叶藻 2019 28,000 34,000 6,000 revised estimate estimate
爱尔兰 泡叶藻 2017 28,000 32,000 4,000 revised estimate estimate
德国 Beaked redfish 2021 NA 2,140 2,140 added NA actual
爱尔兰 泡叶藻 2016 28,000 30,000 2,000 revised estimate estimate

结果解读:两个版本之间,27区有53条记录被修订,9条新增,35条删除。它们大多集中在旧版本覆盖的最后十年(被修订的记录中有48条),修订量最大的是最后一年:2023年的总产量上调了8.6万吨(1%)。136条重新归类的记录是从一个物种条目移到另一个物种条目的产量,不影响总量。

其他设置

只比较一个国家,忽略100吨及以下的变化:

iceland <- compare_releases("2025.1.0", "2026.1.0", area_name = "Atlantic, Northeast",
                            country_name = "Iceland", tolerance = 100)
Atlantic__Northeast_Iceland_releases_2025_1_0_vs_2026_1_0_by_year.png
revised <- subset(iceland$by_year, n_revised + n_added + n_removed > 0)
show_table(data.frame(revised[, c("Year", "old_tonnes", "new_tonnes", "change_tonnes", "change_pct",
                                  "n_revised", "n_added", "n_removed", "n_status_changed")], row.names = NULL),
           digits = 1)
Year old_tonnes new_tonnes change_tonnes change_pct n_revised n_added n_removed n_status_changed
2023 1,371,088 1,447,639 76,551 5.6 1 0 0 0

冰岛只有2023年的产量变化超过100吨,使该年总量上调了5.6%。不给出area_name和country_name时比较整个数据集;不给出old和new时,比较电脑上最新的版本与它的前一个版本。

参数与返回值

参数 含义 默认值
old、new 要比较的版本,如"2025.1.0"和"2026.1.0";"bundled"表示随包内置的数据 NULL:new为电脑上最新的版本,old为它的前一个版本
area_name 要比较的FAO渔区 NULL(全部)
country_name 要比较的国家 NULL(全部)
tolerance 不超过该吨数的变化忽略不计 0.5
top_n 国家图中显示的修订量最大的国家数 10
data_dir 下载的版本所在的文件夹 fao_data_dir()
plot、table、lang、pptx、label 通用参数(见本文开头);label默认为所比较的渔区和国家
元素 内容
by_year 旧版本覆盖的每一年:old_tonnes、new_tonnes、change_tonnes、change_pct,以及各类记录的条数n_revised、n_added、n_removed、n_reclassified和n_status_changed
by_country 各国的修订(不含重新归类的记录):net_change_tonnes、abs_change_tonnes、n_records、first_year和last_year
records 所有被修订、新增、删除或重新归类的记录:tonnes_old、tonnes_new、status_old、status_new、difference、change和status_changed
releases 所比较的两个版本
  • 近年的数据修订最多,因为它们首次发布时往往是临时数据或估算值(见🔍 数据质量、多样性与船队中的data_quality())。
  • 只有同样的产量移到另一个物种条目时,记录才算重新归类。FAO把一个条目拆分为几个产量不同的条目时,这一变化会显示为删除和新增的记录。
  • 修订显示的是FAO改动了什么,而不是哪个版本正确。

📖 参考文献

Carlson, S.M. and Satterthwaite, W.H. (2011). Weakened portfolio effect in a collapsed salmon population complex. Canadian Journal of Fisheries and Aquatic Sciences 68: 1579–1589. doi:10.1139/f2011-084

Cottrell, R.S., Nash, K.L., Halpern, B.S., Remenyi, T.A., Corney, S.P., Fleming, A., Fulton, E.A., Hornborg, S., Johne, A., Watson, R.A. and Blanchard, J.L. (2019). Food production shocks across land and sea. Nature Sustainability 2: 130–137. doi:10.1038/s41893-018-0210-1

FAO (2024). The State of World Fisheries and Aquaculture 2024. Blue Transformation in action. Rome: FAO. doi:10.4060/cd0683en

Garibaldi, L. (2012). The FAO global capture production database: a six-decade effort to catch the trend. Marine Policy 36: 760–768. doi:10.1016/j.marpol.2011.10.024

Garibaldi, L. and Limongelli, L. (2003). Trends in oceanic captures and clustering of large marine ecosystems: two studies based on the FAO capture database. FAO Fisheries Technical Paper 435. Rome: FAO. https://www.fao.org/4/y4449e/y4449e00.htm

Gephart, J.A., Deutsch, L., Pace, M.L., Troell, M. and Seekell, D.A. (2017). Shocks to fish production: identification, trends, and consequences. Global Environmental Change 42: 24–32. doi:10.1016/j.gloenvcha.2016.11.003

Grainger, R.J.R. and Garcia, S.M. (1996). Chronicles of marine fishery landings (1950-1994): trend analysis and fisheries potential. FAO Fisheries Technical Paper 359. Rome: FAO. https://www.fao.org/4/w3244e/w3244e00.htm

Lepš, J., Götzenberger, L., Valencia, E. and de Bello, F. (2019). Accounting for long-term directional trends on year-to-year synchrony in species fluctuations. Ecography 42: 1728–1741. doi:10.1111/ecog.04528

Loreau, M. and de Mazancourt, C. (2008). Species synchrony and its drivers: neutral and nonneutral community dynamics in fluctuating environments. The American Naturalist 172: E48–E66. doi:10.1086/589746

Mullon, C., Fréon, P. and Cury, P. (2005). The dynamics of collapse in world fisheries. Fish and Fisheries 6: 111–120. doi:10.1111/j.1467-2979.2005.00181.x

Ong, J.J.L., Walter, J.A., Jensen, O.P. and Pinsky, M.L. (2021). Global hotspots of coherent marine fishery catches. Ecological Applications 31: e02321. doi:10.1002/eap.2321

Swartz, W., Sala, E., Tracey, S., Watson, R. and Pauly, D. (2010). The spatial expansion and ecological footprint of fisheries (1950 to present). PLoS ONE 5: e15143. doi:10.1371/journal.pone.0015143

Thibaut, L.M. and Connolly, S.R. (2013). Understanding diversity–stability relationships: towards a unified model of portfolio effects. Ecology Letters 16: 140–150. doi:10.1111/ele.12019

Wilberg, M.J. and Miller, T.J. (2007). Comment on “Impacts of biodiversity loss on ocean ecosystem services”. Science 316: 1285. doi:10.1126/science.1137946

Worm, B., Barbier, E.B., Beaumont, N., Duffy, J.E., Folke, C., Halpern, B.S., Jackson, J.B.C., Lotze, H.K., Micheli, F., Palumbi, S.R., Sala, E., Selkoe, K.A., Stachowicz, J.J. and Watson, R. (2006). Impacts of biodiversity loss on ocean ecosystem services. Science 314: 787–790. doi:10.1126/science.1132294

Zeller, D. and Pauly, D. (2018). The ‘presentist bias’ in time-series data: implications for fisheries science and policy. Marine Policy 90: 14–19. doi:10.1016/j.marpol.2018.01.015