duxin123的个人博客分享 http://blog.sciencenet.cn/u/duxin123

博文

从抽球到群落:基于蒙特卡洛零模型的构建解析(1)无资源限制

已有 314 次阅读 2026-2-1 20:41 |系统分类:科研笔记

在一次概率论的例题中,我遇到了一个看似极其简单的抽样过程:一个袋子中包含两种颜色的小球,每一步随机抽取一个球并放回,同时向袋中加入一定数量的同色小球。该过程通常被用来说明带有强化效应的随机抽样,但在思考这一过程时,我逐渐意识到,它在形式上与生态系统中个体数量随时间变化的过程具有某种相似性。

若将不同颜色的小球视为不同物种,袋中小球的总数对应系统中的个体数量,而“抽到哪种颜色便增加同种小球”的规则,则可被理解为一次成功的繁殖或扩增事件。在这一视角下,抽样本身代表个体命运中不可避免的随机性,而数量的增加则对应于种群的增长过程。这个类比当然是极简的:它先从最少的假设出发,把注意力放在“随机抽样 + 增长规则”本身能带来怎样的基线行为。

正是基于这种联想,我将在空闲时间里尝试沿着这一过程继续深入推导:从无资源限制的增长出发,逐步引入更一般的动力学结构(例如资源约束、种间作用乃至更复杂的机制设定),并用蒙特卡洛视角把每一步都转化为可对照的“零模型”。这篇博文便是这一系列记录的第一篇——先把起点思考清楚,再在后续文章中一点点扩展、修正与检验。

———————————————————————————————————————————————————————————

1. 从最简单的指数型增长模型开始(无资源限制)

在把抽球过程继续“生态化”之前,先从一个经典到不能再经典的起点出发:指数型增长。它对应的生态假设非常直白:在短时间尺度内,系统不受资源限制、环境近似恒定,且个体的“单位个体增长率”(per-capita growth rate)在时间上保持常数。换句话说,每一个个体平均贡献的净增长是固定的。

1.1 连续时间形式:Malthus(马尔萨斯)模型

N(t) 表示时刻 t 的个体数(或生物量等),指数增长的核心方程是:

63c55943-735f-4041-9000-bf429eac6ac1.png

其中 r 是内禀增长率(intrinsic rate of increase,常被称为 Malthusian parameter)。当 r>0 时种群增长,r<0 时衰退。即,增长速率与当前数量成正比

该微分方程在初始条件 N(0)=N0下的解析解为:

84f01942-4b28-4d38-a330-9eccd1bda100.png

这就是通常所说的“指数增长曲线”。指数模型在思想源头上常追溯到 Thomas Robert Malthus 1798 年的《人口原理》对人口“几何级数增长”的讨论(尽管当时并非以现代微分方程形式写出)。

An Essay on the Principle of Population by T. R. Malthus | Project Gutenberg

1.2 离散时间形式:几何增长(finite rate)

如果以“年度、季节、世代”等离散时间步来写,更常用的形式是:

3738c0e0-85a6-4717-8801-31f50f27e0a4.png

其中 λ有限增长率(finite rate of increase)。反复迭代得到:

a4378eb3-41f0-4bf7-8a81-64b9b444ab8b.png

连续与离散两种写法可以相互对应:当时间步为 1(例如 1 年)时,有

1d0d0f24-c82f-4ec2-a628-44ca13b7a455.png

所以它们本质上是同一类“无资源限制的密度无关增长”。

3 指数增长视角下的零模型构想

在这一无资源限制的指数增长框架下,个体数量的变化完全由当前数量和单位个体增长率决定,模型本身并不涉及不同物种之间的相互作用。然而,当我们试图将这一确定性的增长过程转译为一个可模拟、可重复的随机过程时,一个自然的问题随之出现:在多个物种同时增长的情形下,增长事件应当如何在不同物种之间分配?

抽球实验正是在这一层面提供了一个极简的随机化构想。若将“每一步增长一个个体”视为系统在给定时间尺度内发生的一次增长事件,那么不同物种获得这一增长事件的概率,便可以用其在当前群落中的相对多度来刻画。在这种设定下,系统的总个体数依然单调增加,不存在显式的资源上限或密度制约;但与此同时,不同物种的增长过程已不再相互独立,而是通过对同一增长事件的随机分配而产生关联。

因此,这一抽样—增长过程并不等价于多个物种各自进行的独立指数增长,,而更接近于在固定增长事件计数下,对增长机会进行随机分配的过程,是一种 “总增长无上限、但增长机会在物种之间随机分配”的零模型。在这一零模型中,随机性并非用于替代增长规律本身,而是用来刻画:在缺乏资源限制与显式种间作用的前提下,仅由初始状态与随机分配机制所能产生的群落构成范围。进一步地,在初始个体组成已知的情况下,系统从初始状态演化到给定调查时刻所经历的增长步数,可以近似由“最终调查到的群落中个体总数减去初始群落中个体总数”来确定。通过在这一固定迭代轮数下重复模拟抽样—增长过程,便可得到群落构成的概率分布,从而判断观测到的个体数分配是否仍可被视为该零模型的一种合理实现。

我认为,这一基于抽样—增长过程的零模型,或许可用于理解次生演替早期阶段中群落结构形成的若干基本特征。在许多经历干扰后的生态系统中(如采伐、火烧或弃耕地),群落恢复初期往往表现为个体数量的快速增加,而资源限制、稳定竞争结构与明确的生态位分化尚未完全建立。在这一背景下,增长机会如何在不同类群之间分配,可能比资源本身的稀缺性更早地影响群落构成。例如,在次生林地的土壤昆虫群落中,一些功能上相近的类群(如不同弹尾目或甲虫类群)在演替初期往往同时扩散并迅速建群,其相对多度在一定时间尺度内可能主要受初始状态与随机补充事件的影响;类似地,在弃耕地或受扰动土壤的微生物群落中,总生物量常在短期内快速上升,而不同功能类群之间的比例差异,可能在相当程度上反映了早期扩张过程中的随机性与历史偶然性。若在已知初始群落构成的前提下,后续观测到的个体数分配仍可被视为该零模型下的一种合理实现,则意味着在这一演替阶段,引入更复杂的资源限制或竞争机制之前,随机分配型增长可能已足以解释群落结构的基本轮廓。

———————————————————————————————————————————————————————————

#下面我们根据上述思路写一个R语言函数。并举例应用。

#chatgpt生成代码

# 初始丰度(建议命名,输出更清晰)

N0 <- c(A = 2, B = 1, C = 1, D = 2, E = 1)  # 总数=7

# 循环次数:总共发生多少轮增长事件

n_steps <- 15          # 如果顺利,总数从 7 增到 22

# 蒙特卡洛重复次数

n_mc <- 99

simulate_community_mc <- function(N0, n_steps, n_mc) {

  N0 <- as.integer(N0)

  stopifnot(sum(N0) > 0, n_steps > 0, n_mc > 0)

  S <- length(N0)

  sp_names <- names(N0)

  if (is.null(sp_names)) sp_names <- paste0("sp", seq_len(S))

  out <- matrix(NA_integer_, nrow = n_mc, ncol = S,

                dimnames = list(NULL, sp_names))

  for (m in seq_len(n_mc)) {

    N <- N0

    for (t in seq_len(n_steps)) {

      # 按当前相对丰度抽一个物种(权重=丰度)

      i <- sample.int(S, size = 1, prob = N)

      N[i] <- N[i] + 1

    }

    out[m, ] <- N

  }

  out

}

#输出结果

result <- simulate_community_mc(N0, n_steps, n_mc)

head(result)

  

c02f27f0-02bb-4005-a423-cd1ee3235978.png

———————————————————————————————————————————————————————————

初始群落中的个体数为 7 个。在 15 轮循环后,总个体数为 22 个。基于蒙特卡洛方法,我们生成了 99 个模拟群落;在此基础上,可以计算零模型假设下各物种终态多度(或相对多度)的经验分布,并据此给出 95% 的模拟分位区间。

在这里我没有为不同物种设置不同的内禀增长率。一方面,这是为了保持零模型的极简性;另一方面,在实际群落研究中(例如两次观测或时空代替法),在净增长占主导、个体死亡或移出可忽略或可合并为净增长事件的情形下,总个体数(或密度)的变化可用于直接倒推出零模型迭代次数,即 nsteps=Nfinal−Ninitial

在本文所采用的零模型中,默认不同物种具有相同的内禀增长率。这样设定的目的,并非否认物种间潜在的生物学差异,而是为了保证 “每一轮增加 1 个体”这一计数在不同物种之间具有统一尺度,从而使迭代轮数可以被理解为演替过程中增长事件的共同时间基准。在这一前提下,观测到的群落个体数变化(如两次调查或时空代替法下的个体数差异)即可直接用于倒推出零模型的迭代步数,并与模拟结果进行对照。

若进一步考虑不同物种在增长机会上存在系统性差异,则需要在抽样过程中引入物种特异的权重,使增长事件在物种之间的分配不再仅由当前多度决定。这将使模型从“共享时间尺度的增长事件模型”过渡到“带选择偏好的事件模型”,相应地,迭代轮数与演替时间之间的对应关系也需要重新解释。出于保持零模型极简性与可对照性的考虑,本文暂不引入该设定,而将在下一篇博客中对其进行单独讨论与扩展。



https://wap.sciencenet.cn/blog-3511023-1520729.html


收藏 IP: 1.24.25.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2026-2-2 06:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部