如何在R中实现非±1步长的二维随机游走模拟与绘图?
二维正态步长随机游走的R实现方案
核心思路
- 二维随机游走需分别生成**X轴(左右)和Y轴(上下)**的独立步长,用标准正态分布(
rnorm())生成独立同分布的Zt和Wt - 对两个方向的步长分别做累加和,得到每个时刻t的位置
- 用连线图绘制完整的样本路径
完整实现代码
set.seed(13579) # 固定随机种子,保证结果可复现 # 生成100个标准正态分布的步长(对应t=1到t=100的移动) z_steps <- rnorm(100) # X方向步长Zt w_steps <- rnorm(100) # Y方向步长Wt # 计算每个时刻的位置:t=0时起点为(0,0),后续累加步长 x_pos <- c(0, cumsum(z_steps)) # t=0到t=100的X坐标 y_pos <- c(0, cumsum(w_steps)) # t=0到t=100的Y坐标 # 绘制样本路径 plot(x_pos, y_pos, type = "l", main = "二维正态步长随机游走样本路径", xlab = "X坐标", ylab = "Y坐标", col = "steelblue", lwd = 1.5) points(x_pos[1], y_pos[1], pch = 19, col = "red") # 标记起点 points(x_pos[101], y_pos[101], pch = 19, col = "green") # 标记终点
与原有一维代码的差异说明
- 步长生成:原代码用
sample()生成±1的离散步长,这里用rnorm()生成连续的标准正态步长,符合需求 - 维度扩展:新增Y方向的步长与位置计算,实现二维移动
- 绘图逻辑:从一维折线图改为二维路径连线图,添加起点/终点标记更直观
内容的提问来源于stack exchange,提问作者Giulia Petrilli
相关产品推荐
相关产品推荐

