<aside> <img src="/icons/condense_yellow.svg" alt="/icons/condense_yellow.svg" width="40px" /> Python | R | MATLAB | C++ | 风电 | 天气 | 建筑 | 设计 | 不确定性 | 量化 | 马尔可夫链蒙特卡罗 | 算法 | 多模态 | 贝叶斯 | 模型 | 分类过程 | 最大似然 | 图结构

</aside>

📜随机统计模型-用例

📜海上风电场模型 | 📜天气和建筑设计模型 | 📜不确定性量化应用模型 | 📜马尔可夫链蒙特卡罗算法多模态采样贝叶斯模型 | 📜分类过程最大似然模型

📜C++和Python通信引文道路社评电商大规模行为图结构数据模型

📜Python燃气轮机汽车钢棒整流电路控制图统计模型过程潜力分析

📜Python火焰锋动力学和浅水表面波浪偏微分方程

%%{init:{'theme':'base'}}%%
pie title 语言分比
 "Python":90
 "R":30
 "MATLAB":30
 "C++":20
%%{init:{'theme':'base'}}%%
pie title 内容分比
 "数学":90
 "统计模型":80
 "贝叶斯模型":30
 "马尔可夫链蒙特卡罗算法":20
 "图结构":40
"过程潜力分析":20
"分类过程":10

✒️Python 随机过程

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

$$ (\Omega, F , P) $$

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

$$ X_t: T \rightarrow S $$

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

 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
 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. 最后打印随机游走的值(可选地,将其注释掉)并绘制。我们似乎主要呈增长趋势。

 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 次步行要清晰得多。大多数路径都遵循增长趋势。

 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()