统计模拟(三)——正态分布模拟

本文为第一系列的原创文章之三, 目的在于总结“Simulation” -Sheldon M.Ross一书中出现的模拟随机变量的方法. Acceptance-Rejection 在介绍正态分布的模拟前先介绍一种方法, 叫做 Acceptance-Rejection Technique. 这种方法一般用于生成比例形式的随机变量(往往用比例形式更好模拟的情况下.) 对于离散型的随机变量, 假设我们想要模拟的变量为 \(q_i\) , 已知可以模拟的变量为 \(p_i\) ,大致的做法如下: 1.选取一个常数 \(c\) 需要满足: 对于所有的 \(i\), 有 \(c \geq \large\frac{q_i}{p_i}\) ; 2.模拟出变量 \(Y\), 满足的离散分布为 \(p_i\) ; 3.生成一个服从 \((0, 1)\) 均匀分布的变量 \(U\) ; 4.如果 \(U < \large\frac{q_y}{cp_y} \), 接受, 使 \(X=Y\) 并停止, 否则执行2. 可以证明 \[P(Y=i, 第k次循环被接受) = p_i \frac{q_i}{cp_i}(1-\frac{q_i}{cp_i})^{k-1}, \quad\quad … Continue reading “统计模拟(三)——正态分布模拟”

统计模拟(二)——泊松分布与二项分布模拟

本文为第一系列的原创文章之二, 目的在于总结 “Simulation” -Sheldon M.Ross 一书中出现的模拟随机变量的方法. 泊松分布与二项分布 在本站先前的文章 Gamma 函数与 Beta/Dirichlet 分布中提到过二项分布, 其本质是离散形式的 beta 分布, 二项分布的表达式为: \begin{align*} P(x=k) &= C_n^kp^i(1-p)^{(n-k)} \\\ &=\frac{n!}{k!(n-k)!}p^i(1-p)^{(n-k)} \end{align*} 当我们尝试产生一个服从二项分布的随机数时, 我们一般通过迭代关系求出 \(P(x=i)\) , 然后产生一个 \((0,1)\) 的均匀分布, 将均匀分布映射到通过迭代关系式划分出的二项分布的区间上. (不直接计算 \(P(x=i)\) , 因为会涉及到 \(3n\) 个阶乘运算, 也不采用 \(n\) 次独立重复试验的方法, 因为需要产生 \(n\) 个随机数.) 很显而易见的, 对于二项分布 \(B(n,p)\) 我们有: \begin{align*}\frac{P(x=i+1)}{P(x=i)}&=\frac{n-i}{i+1}\frac{p}{1-p} \\\ P(x=0)&=(1-p)^n \end{align*} 记 \(p_i = P(x=i)\) … Continue reading “统计模拟(二)——泊松分布与二项分布模拟”

5 Comments so far

统计模拟(一)——随机数模拟

本文为第一系列的原创文章之一, 目的在于总结“Simulation” -Sheldon M.Ross一书中出现的模拟随机变量的方法.     我们平时所接触的各种随机变量和这些随机变量的分布, 往往会有一个确定的表达式. 但是很多复合的随机变量, 其分布往往很难被确定. 即使是确定的表达式, 当我们需要生成这个随机变量时, 也很难直接从其表达式得到.   所以我们需要对这些随机变量的生成过程进行模拟, 根据模拟得到的变量数据, 可以进行进一步的模拟, 或者得到其均值与方差等我们需要研究的数据.   一般而言, 所有的随机变量都可以通过最简单的分布: 均匀分布得到. 接下来, 我们将从均匀分布出发, 得到各种随机变量的模拟方法.   随机数与均匀分布 要想得到均匀分布, 首先需要得到随机数. 伪随机数的生成有很多种, 比较常用的有取模法. 根据迭代公式, 第 n 个数 \( x_n \)的产生为:   \[x_n = ax_{n-1}\quad modulo\quad m\] 其中 \(modulo\) 表示取模运算. 得到的伪随机数 \(x_n\) 的取值在 \(0\) 到 \(m-1\) 之间, 将 … Continue reading “统计模拟(一)——随机数模拟”

LDA学习心得(二)——文本建模

四种文本建模 在上一篇文章中, 从 Gamma 函数介绍到了 Dirichlet/Multinomial 共轭, 这都是为这一篇的文本建模打下基本的数学基础. 在接下来的文章中, 会介绍四种不同的文本模型. 介绍前三种的目的, 是为了引出最后想要总结的模型: LDA, 有了前三种模型的铺垫, 加上上一篇文章的数学基础, LDA 的真面目也就呼之欲出了. Unigram Model 在这一模型中, 我们假定人写文章是这样的, 打开一本词典, 以一定概率翻到某个词, 然后写上去, 这称之为 Unigram Model, 我比较喜欢称呼为脸滚键盘模型, 也就是任何的两个词的出现都是完全独立毫无关系的. 这是最简单的词袋模型. 对应其数学模型就是: 对于一篇文档 \(d=\overrightarrow{w}=(w_1, w_2, \cdots, w_n) = \prod_{i=1}^n p(w_i) \) 假设有一个文档库 \(\mathcal{W}=(\overrightarrow{w_1}, \overrightarrow{w_2},…,\overrightarrow{w_m})\) , 可以得到, 这个文档库的分布为: \begin{align*}p(\mathcal{W})= p(\overrightarrow{w_1})p(\overrightarrow{w_2}) \cdots p(\overrightarrow{w_m})=\prod_{k=1}^V p_k^{n_k}\end{align*} 于是我们参数估计的对象为 \(\overrightarrow{p}\) , 对这个参数进行最大似然的计算可以得到: … Continue reading “LDA学习心得(二)——文本建模”

LDA学习心得(一)——Gamma函数与Beta/Dirichlet分布

本文主要是对文章 LDA-math-神奇的Gamma函数 与 认识Beta/Dirichlet分布 的学习总结, 用于归纳 Gamma 函数与Beta/Dirichlet 分布的性质 从二项分布到 Gamma 函数 在高中学习概率论的时候, 第一次接触到了二项分布的概念. 二项分布问题的开始源于一个经典的问题:连续抛若干次硬币, 有多少硬币正面朝上的几率分别是多少? 这个问题是最简单的二项分布的例子. 同样的,也是从这个问题中引入排列组合中”组合”这个运算符的概念: $$C_{n}^{k}=\frac{n!}{k!(n-k)!}=\frac{n(n-1)(n-2)…(n-k+1)}{k(k-1)(k-2)…\times 2\times 1}$$ 在此的基础上, 又学习了二项展开的基本公式: $$(a+b)^{n}=\sum_{k=0}^{n}C_{n}^{k}a^{k}b^{(n-k)}$$ 后来, 又在大学阶段学习了一元函数的 Taylor 展开形式与 Maclaurin 展开形式, 也学习到了 Maclaurin 级数中, 形如 $(1+x)^{\alpha}$ 的 Maclaurin 展开式为: \begin{split}(1+x)^{\alpha}=1+\alpha x+\frac{\alpha(\alpha-1)}{2!}x^{2}+\frac{\alpha(\alpha-1)(\alpha-2)}{3!}x^{3}+…\\\ +\frac{\alpha(\alpha-1)(\alpha-2)…(\alpha-n+1)}{n!}x^{n}…\end{split} 此处的 \(\alpha\) 与高中接触的 \(n\) 最大的不同即 \(\alpha\) 不一定整数, 而且即使 \(\alpha\) 不是整数也并不影响 Maclaurin 级数展开的形式与计算过程. 但是如果深究细节, 便会浮现出一个问题: … Continue reading “LDA学习心得(一)——Gamma函数与Beta/Dirichlet分布”

Comments Off on LDA学习心得(一)——Gamma函数与Beta/Dirichlet分布 so far