Python | R | MATLAB高斯过程统计模型

📜随机统计模型-用例

📜海上风电场模型 | 📜天气和建筑设计模型 | 📜不确定性量化应用模型 | 📜马尔可夫链蒙特卡罗算法多模态采样贝叶斯模型 | 📜分类过程最大似然模型 | 📜C++和Python通信引文道路社评电商大规模行为图结构数据模型 | 📜Python燃气轮机汽车钢棒整流电路控制图统计模型过程潜力分析

✒️Python 随机过程

随机过程是一段时间内随机变量的集合。 它可以是离散型或连续型。 微积分和概率论技术用于研究该过程。随机过程有很多种类。 本文将给出几种随机过程作为示例。 让我们将随机过程定义为在公共概率空间上定义的随机变量的集合
( Ω , F , P ) (\Omega, F , P) (Ω,F,P)

其中 Ω \Omega Ω 是样本空间或所有可能的结果,数学 F F F 是西格玛代数,其中每个集合包含零个或多个可能的结果, P P P 是实现结果的概率。我们定义一个带有索引 t(代表时间)的函数,将集合 T 中的变量映射到状态空间 S 中的随机变量,或者:
X t : T → S X_t: T \rightarrow S Xt:T→S

我们将看到的第一个基本过程是随机游走。 它被定义为由没有规则决定其发展的步骤所创建的路径。 "随机游走"一词由数学家 Karl Pearson(1857 - 1936)于 1905 年创造。该过程可以表示为一维或多维。金融领域有许多应用程序可以对股票和价格变动进行建模、赌徒的净资产、市场上人员的流动(例如 作为一些基于代理的建模)、分子和粒子的运动或基因组中基因的变化。随机游走有多种类型,如果步长遵循正态分布,则称其为高斯型。随机游走的其他变体是自交互游走、相关游走、最大熵随机游走等。

Python 复制代码
import numpy as np
import matplotlib.pyplot as plt
import random as rm
from scipy.stats import norm
import itertools
import matplotlib.patches as mpatches
Python 复制代码
np.random.seed(99)

all_walks = []

for i in range(10) :

    random_walk = [0]
    for x in range(100) :
        step = random_walk[-1]
        dice = np.random.randint(1,7)

        if dice <= 2:
            step = step - 1
        elif dice <= 5:
            step = step + 1
        else:
            step = step + np.random.randint(1,5)
        random_walk.append(step)

    all_walks.append(random_walk)

plt.plot(random_walk)
plt.show()

我们生成模拟 100 次随机游走。 使用 99 的 np.random.seed 可以让读者重现相同的结果。 因为我们使用的是整数的高斯随机生成器,所以游走本质上是高斯的。 为了让事情变得更有趣,我们创建了一个基本算法,在该算法中,我们通过掷骰子并根据结果移动特定的步数。 我们从 for 循环的上一次迭代中获取步骤数。 如果骰子小于或等于 2,则步数减少 1;如果骰子数在 3 到 5 之间,则步数增加 1;如果骰子数为 6,则步数增加为 1 到 1 之间的随机数。 4. 最后打印随机游走的值(可选地,将其注释掉)并绘制。我们似乎主要呈增长趋势。

Python 复制代码
np.random.seed(99)
all_walks = []
for i in range(20) :
    random_walk = [0]
    for x in range(100) :
        step = random_walk[-1]
        dice = np.random.randint(1,7)
        if dice <= 2:
            step = step - 1
        elif dice <= 5:
            step = step + 1
        else:
            step = step + np.random.randint(1,5)
        if np.random.rand() <= 0.001 :
            step = 0
        random_walk.append(step)
    all_walks.append(random_walk)

np_aw = np.array(all_walks)

plt.plot(np_aw)
plt.show()

plt.clf()
np_aw_t = np.transpose(np_aw)

plt.plot(np_aw_t)
plt.show()

我们从 20 次步行开始。图表比下面的 500 次步行要清晰得多。大多数路径都遵循增长趋势。

pYTHON 复制代码
np.random.seed(99)
all_walks = []
for i in range(500) :
    random_walk = [0]
    for x in range(100) :
        step = random_walk[-1]
        dice = np.random.randint(1,7)
        if dice <= 2:
            step = step - 1
        elif dice <= 5:
            step = step + 1
        else:
            step = step + np.random.randint(1,5)
        if np.random.rand() <= 0.001 :
            step = 0
        random_walk.append(step)
    all_walks.append(random_walk)

np_aw = np.array(all_walks)

plt.plot(np_aw)
plt.show()

plt.clf()
np_aw_t = np.transpose(np_aw)

plt.plot(np_aw_t)
plt.show()

现在我们将缩放模拟,将步行数量增加到 500。步行已绘制出来。 由于进行了如此多的模拟,因此图表非常密集且信息量不大,但大数定律现在将适用。 趋势再次主要是增加。

Python 复制代码
ends = np_aw_t[-1]

plt.hist(ends)
plt.show()

bool = ends >= 40
greater = sum(bool)
print("The odds of the ending point being above 40 is " + "{:0.2%}".format(greater / 500))

当所有的行走都以变量结束时,我们定义过程的终点。 它已被绘制并显示接近正态分布,尽管它似乎与左侧有些不对称。 最后我们计算出终点大于 90 的几率,即 20.40%。 (对于其他百分比也可以这样做)。

🔗参阅一:计算思维

🔗参阅二:亚图跨际

相关推荐
盼哥PyAI实验室5 分钟前
Python YAML配置管理:12306项目的灵活配置方案
开发语言·python
BOBO爱吃菠萝32 分钟前
Stable Diffusion 3.5 FP8镜像自动化部署脚本发布
stable diffusion·量化·fp8
Github掘金计划34 分钟前
开发者狂喜!GitHub 官方开源:支持 Copilot/Cursor,规范即代码,27k Star 封神!
java·python·kafka·github·copilot
shenzhenNBA35 分钟前
python用openpyxl操作excel-单元格样式操作
python·excel·openpyxl·单元格样式
岁月宁静1 小时前
多模态 Agent 技术全景解析 — 从模型能力、Agent 架构到工程化与商业落地
python·agent
试着1 小时前
【VSCode+AI+测试】连接ai大模型
ide·人工智能·vscode·python·学习·编辑器·ai-test
零小陈上(shouhou6668889)1 小时前
YOLOv8+PyQt5海洋船只检测(可以重新训练,yolov8模型,从图像、视频和摄像头三种路径识别检测)
开发语言·python·yolo
znhy_231 小时前
day36打卡
python
gf13211111 小时前
python_字幕文本、音频、视频一键组合
python·音视频·swift
我的xiaodoujiao1 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 32--开源电商商城系统项目实战--如何区分登录状态
python·学习·测试工具·pytest