随机逐步:探索随机游走模型

在我大学的第一门基于编码的统计课程中,我的老师提出了一个问题:我们如何建模水盘中单个花粉粒子的布朗运动?经过几次错误的尝试,我和同学们最终找到了正确答案:随机漫步。后来我了解到,这个简单的模型被用来模拟各种事物,从动物运动到股票价格波动。

在这篇文章中,我们将探讨随机漫步的数学基础,研究不同类型,并讨论它们的应用。使随机漫步有趣的部分之一是它在许多不同的学科中被使用。除了我举的例子,物理学中它帮助描述粒子运动;金融领域中,它模拟股价波动;生物学中,它解释动物运动模式。随机漫步捕捉了现实世界的随机性,这对于模拟随机过程至关重要。

对于那些希望在支撑随机漫步理论的统计学基础上建立起坚实基础的人,我们建议从《R统计学入门》课程或《Python统计学入门》课程开始。

什么是随机漫步?

在概率论中,随机漫步是描述由一系列随机步骤组成路径的模型。换句话说,随机漫步是描述由一系列独立决定且具有一定概率的步骤构成的路径的数学模型。这种随机性使得随机漫步本质上是不可预测的。

想象一个人每时每刻都向随机方向迈出一步。随着时间推移,他们的路径形成了一条不可预测的蜿蜒轨迹。尽管概念简单,但具有令人惊讶的深度和多样性,可以模拟涉及随机性的各种现实场景。

一个随机漫步的概念性解释。图片由 napkin.ai 提供。

随机漫步的概念可以追溯到早期的概率研究。最早的一个例子,通常称为醉汉漫步,说明了一个随机行走的人会踉跄不前,而不是朝着目的地可预测地移动。这种随机性,结合每一步独立于之前步骤的假设,奠定了现代随机漫步模型的基础。

理解随机漫步的数学

要理解随机漫步,让我们从一个简单的情形开始:一维(1D)随机漫步。想象一个粒子在数轴上。它可以在每一步沿着数轴移动 +1 或 -1。每一步的移动由向右或向左的等概率决定。随着时间的推移,粒子的位置形成了一个分布,展示了它在不同位置的可能性。

这个原理可以扩展到二维或三维。在二维(2D)随机游走中,粒子在平面上移动,可以向四个基本方向(上、下、左、右)中的任意一个等概率步进。同样,在三维(3D)随机游走中,粒子在空间中移动,可以向六个可能的方向(上、下、左、右、前、后)中的任意一个等概率步进。这些高维随机游走能够捕捉更复杂和真实的情景。

随机游走的一个显著特征是其随机性质,即每一步仅依赖于当前位置,而不依赖于之前的步数。这使它们成为马尔可夫过程的一种—一个数学概念,未来状态仅取决于当前状态,而不取决于之前发生的事件序列。这种“无记忆”的移动,结合描述潜在位置的概率分布,为理解随机游走提供了坚实的数学基础。

我们可以使用统计特性来分析随机漫步,以了解其随时间的行为。这涉及检查诸如与起点的预期距离、可能位置的概率分布以及返回原点的可能性等方面。这些分析有助于量化随机性和可预测性,提供对模式的洞察,并进行预测。

随机漫步的关键特性

随机漫步具有几个重要特性,帮助我们理解它们的行为和应用。以下是一些需要考虑的关键方面:

期望和方差

在一维随机漫步中,我们可以计算随时间从起点到期望距离(或平均位置)。如果每一步都有相等的概率向左或向右移动,则经过许多步之后的期望位置仍然为零,这意味着平均而言,行走者会保持在起点附近。

然而,位置的方差,即衡量可能位置的分散程度,会随着每一步增加而增加。具体而言,在对称随机游走中,方差随步数线性增长,使其成为一个衡量随时间距离原点的典型距离的有用指标。

自相关

尽管简单随机游走的步伐之间没有相关性(每一步都独立于上一步),但某些类型的随机游走引入了自相关,过去的步伐可能影响未来的步伐。例如,在有偏向性的随机游走中,步伐可能略微倾向于某个方向,导致位置更具可预测性。

随机游走中的自相关影响了我们对游走进展的建模和预测。这在过去行为影响未来步伐的应用中尤为重要,如某些金融模型。

中心极限定理

中心极限定理(CLT)告诉我们,大量独立随机变量的总和往往服从正态(或高斯)分布,而不受原始分布的影响。在随机游走的背景下,这意味着随着步数的增加,位置的分布趋向于正态分布。这是一个有用的特性,因为它使我们能够近似计算在离起点一定距离处找到行走者的概率。

大数定律

大数定律(LLN)解释了随着试验或步数的增加,结果的平均值会收敛于真实平均值。对于随机游走,这意味着虽然平均位置保持为零,但方差和可能位置的范围会随着每一步的增加而可预测地增长。这一原则有助于填补大样本中纯随机性和可预测统计模式之间的差距。

随机游走的类型

随机漫步根据规定每一步的规则而变化很大。这些类型会影响漫步的行为。有些设计用于简单或结构化的环境,而其他一些则适用于更复杂的真实世界现象。让我们探索一些最常见的随机漫步类型。

一维、二维和三维随机漫步

随机漫步的维度在其行为中起着基础作用。在一维随机漫步中,每一步都是沿着一条线向前或向后移动。这使得漫步相对容易建模和预测。

然而,当我们转向2D(平面)和3D(空间)漫步时,可能的路径显著增加,引入新的行为。例如,在2D随机漫步中,回到起点的概率仍然很高,而在3D随机漫步中,这种概率会降低。

这种改变在物理学和化学等领域非常重要,因为粒子的扩散可能会因维度约束而有所不同。

晶格随机漫步

晶格随机漫步中,运动被限制在网格或晶格上的离散点上。这种类型的漫步在物理学和网络理论中常被使用,其中节点被排列在一个网格上,运动只能发生在相邻节点之间。

一个常见的例子是二维晶格,每一步允许移动到笛卡尔坐标网格上相邻的点。这种约束通过限制移动路径来简化建模,当模拟复杂网络或分子结构时非常有用。

高斯随机漫步

在高斯随机游走中,每一步的大小由高斯(或正态)分布确定。步长不是固定的距离,而是根据钟形曲线分布变化,大多数步长较小,偶尔会有较大的跳跃。这种类型的游走经常用于金融建模,以考虑资产价格变化的可变性。

异质和偏置随机游走

异质和偏置随机游走允许根据某些概率变化步长方向和大小。这种灵活性使它们更适应真实世界的场景。

在异质随机游走中,移动任意方向的概率可能会根据位置或外部条件变化。例如,寻找食物的动物可能偏爱已知资源丰富的区域,从而形成偏置随机游走。这些游走对于研究依赖于背景因素的行为非常有用。

带漂移的随机游走

在带漂移的随机漫步中,存在一致的向某个方向移动的趋势。例如,股票价格可能会在时间上呈现总体上升的趋势,尽管存在日常波动。这些漫步中的漂移代表着影响路径的外部力量或趋势。这种类型经常在金融领域中出现,模型会加入漂移项来表示增长或下降,从而更现实地预测资产价格和市场趋势。

这些随机漫步类型各具特色,提供了不同的建模随机但有结构行为的方式。维度约束、步长分布以及漂移或偏差的存在使随机漫步在数据建模和模拟中具有极高的灵活性,适用于各个领域。

随机漫步的现实应用

随机漫步不仅仅是理论构想;它们在许多领域的实际应用中发挥着重要作用。让我们探讨随机漫步如何在各个领域中的实际问题解决中发挥作用。

数据科学和机器学习中的应用

计算机科学

随机游走是几种计算机科学算法的基础,例如随机抽样、网络图遍历和图像分割。例如,谷歌的PageRank算法使用随机游走对网页进行排名,基于它们的相关性,模拟用户在互联网上随机浏览链接的方式。

特征提取

在机器学习中,随机游走可以通过突出数据点之间的关系来帮助提取特征。例如,在网络分析中,随机游走可以揭示集群或社区,有助于推荐系统和社交网络分析等任务。

异常检测

随机游走还可用于检测数据集中的异常。例如,如果数据点在随机游走模型中明显偏离典型路径,这些点可能表示数据中的异常事件或错误。异常检测在网络安全和欺诈检测等领域尤为重要。

模拟随机过程

随机游走模拟随机或随机确定的过程,使数据科学家能够模拟不可预测的现实世界现象。通过模拟随机游走,我们可以深入了解精确预测具有挑战性的系统,如天气模式或客户行为。

时间序列预测

在时间序列分析中,随机游走构成了某些预测模型的基础,包括金融中的随机游走假设。这些模型假设时间序列中的未来值仅取决于最近的值,与过去趋势无关。要了解更多关于时间序列预测的信息,请查看ARIMA时间序列预测:完整指南。此外,参加我们的R中的预测课程,由Hyndman教授讲解随机游走模型与天真和季节性天真预测方法之间的联系。

其他领域中的应用

金融

随机漫步最引人注目的用途之一是在金融建模中,特别是用于预测股票价格。有效市场假说表明,股价波动基本上是随机的,因为新信息会立即被吸收,使得未来价格无法预测。随机漫步可以用来模拟股价随时间变化的情况,展示价格如何在没有可预测路径的情况下波动。

数学

在纯数学中,随机漫步为解决复杂问题提供了解决方案。例如,它们在解决拉普拉斯方程、分析网络和探索组合学方面很有用。

物理和化学

在物理科学中,随机漫步对于建模扩散过程至关重要,比如分子在介质中传播的方式。布朗运动是一个经典例子,其中悬浮在流体中的粒子由于与周围分子的碰撞而不可预测地移动,可以使用随机漫步进行准确模拟。这实际上是我第一次了解随机漫步的方式。

生物学

随机漫步在生态学中对研究动物的运动模式非常有价值。寻找资源的动物可能表现出随机行走,有时会偏向已知资源丰富的区域。其他生物概念,比如种群或基因的传播,通常可以用随机漫步原理建模,从而更容易理解和预测生态系统中的变化。

随机漫步的特例和变种

除了经典的随机漫步外,还有几种高级变体将这一概念推广以适应特定的应用。

避障漫步

避障漫步是一种随机漫步,其路径不会重访已经经过的任何位置。这种变体在聚合物化学等领域特别有用,它可以模拟聚合物链如何形成而不交叉。由于每一步都会避开先前访问过的点,避障漫步比传统随机漫步更受限制。这意味着它们在计算上具有挑战性,但对于理解受限空间中非重叠路径非常有用。

分支

在分支随机行走中,路径可以分裂成多个分支,每个分支都遵循随机行走。这种类型的行走在建模细胞分裂或信息通过网络传播等分支过程中起着重要作用。每个“分支”代表着从一个共同源头发出的独立随机路径。

相关行走

相关行走将这个概念推进一步,其中每一步的方向部分受到前一步的影响。这种变体对于模拟系统惯性很有用,其中变化是逐渐发生而不是随机的。相关行走经常应用于金融领域,用于模拟价格趋势,或者在运动生态学中应用,以了解动物如何在环境中导航,同时保留对过去方向的一些记忆。

消环行走

消环行走是一种变体,其中形成的环路或交叉路径被移除。每次步骤重新访问一个位置时,介入的环路被抹除,留下简化的、不重复的路径。消环行走通常应用于网络分析和迷宫生成算法中,因为它们创建避免冗余的路径。

在Python中实现随机漫步

让我们尝试在Python中实现一个随机漫步。要开始,请确保已安装Python(我们将使用Python 3.10)并可用必要的库。您可以使用pip安装任何缺失的库。这是我们将要使用的:

import numpy as np # 用于数值操作和生成随机步长 import matplotlib.pyplot as plt # 用于绘图和可视化随机漫步

1D随机漫步

我们将从一个简单的一维随机漫步开始,每一步都是随机选择的+1或-1。

# 参数 n_steps = 100 # 步数 # 生成随机步长:+1或-1 steps = np.random.choice([-1, 1], size=n_steps) # 计算位置 positions = np.cumsum(steps) # 绘制随机漫步图 plt.figure(figsize=(10, 6)) plt.plot(positions, marker='o', linestyle='-', markersize=4) plt.title("1D Random Walk") plt.xlabel("Step") plt.ylabel("Position") plt.grid(True) plt.show()

这将生成一个简单的随机漫步,并可视化随时间的推移。当我运行这段代码时,这是输出:

现在记住,我们正在运行一个随机模型。这意味着每次运行它时,输出看起来会有点不同。

2D随机漫步

现在让我们将随机漫步扩展到二维。在每一步中,方向将随机选择。

# 参数 n_steps = 500 # 在x和y方向生成随机步长 x_steps = np.random.choice([-1, 1], size=n_steps) y_steps = np.random.choice([-1, 1], size=n_steps) # 计算位置 x_positions = np.cumsum(x_steps) y_positions = np.cumsum(y_steps) # 绘制2D随机漫步 plt.figure(figsize=(8, 8)) plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk') plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # 起点红点 plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # 终点黑点 plt.title("2D Random Walk") plt.xlabel("X Position") plt.ylabel("Y Position") plt.grid(True) plt.axis('equal') # 确保两个轴的比例相同 plt.legend() plt.show()

这段代码在二维空间中创建了一个视觉吸引人的路径。

这种二维随机漫步可以被修改以适用于粒子运动或空间建模等应用。

偏向随机漫步

最后,让我们看一个稍微复杂一点的例子:一个偏向随机漫步。为了引入偏向性,我们可以调整每个步进方向的概率。例如,我们可以使向上的步伐更有可能发生。

# 参数 n_steps = 100 bias = 0.7 # 向上步进的概率 # 生成偏向随机步进的x和y方向 x_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias]) y_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias]) # 计算位置 x_positions = np.cumsum(x_steps) y_positions = np.cumsum(y_steps) # 绘制偏向的二维随机漫步 plt.figure(figsize=(8, 8)) plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk') plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # 起点红色圆点 plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # 终点黑色圆点 plt.title("Biased 2D Random Walk") plt.xlabel("X Position") plt.ylabel("Y Position") plt.grid(True) plt.axis('equal') # 确保两个轴的比例尺相同 plt.legend() plt.show()

通过改变偏置,您可以观察到漫步倾向于偏向特定方向,模拟股票价格漂移或动物迁徙等真实场景。

如果我们将偏置参数更改为0.55,我们可以看到模型行为上的显著差异。虽然它仍然有向上的偏好,但偏置不那么强烈,导致更多的环路和绕道。

结论

随机漫步是数据科学家的宝贵建模工具,在物理学到金融等领域都有应用。它们模拟复杂的随机过程的能力使其在许多真实场景中不可或缺。

想了解更多吗?查看DataCamp的概率和统计课程套件。您会发现各种优秀课程,涵盖Python和R两种语言。如果您对更高级内容感兴趣,请查看DataCamp的Python统计模拟课程以及机器学习入门教程。或者,如果您准备测试您的知识,可以尝试一些概率谜题

Source:
https://www.datacamp.com/tutorial/random-walk