动手学概率论(1)


前言

本篇文章主要讲解了概率论的相关内容,结合具体实例以及代码实现,来理解相关概念的含义。


一、随机现象与概率

(1)随机现象:在一定条件下,并不总是出现相同结果的现象。举例:

  • 一位顾客在超市购买的商品件数;
  • 一位顾客在超市排队等候付款的时间;
  • 一颗麦穂上长着麦粒个数;
    换一句话来说,如果事件的结果是固定的,我们可能会用另一个关系来表示,那就是《高等数学》中的确定性的函数关系。如果事件的结果是不固定的,我们希望得到每一种可能的结果出现的可能性的大小,并以此做出决策。那如何得到每一种可能的结果出现的可能性的大小呢?最简单的方式就是:做试验!

(2)随机试验:很多随机现象是可以大量重复的,如抛一枚硬币可以无限次重复,不同麦穗上的麦粒数可以大量观察等,这种可重复的随机现象又称为随机试验,简称试验。以后常把检验一件产品看作做一次试验,观察一颗麦穗上的麦粒数也看作一次试验。但是也有很多随机现象是不能重复的,明年世界经济是增长还是衰退,一场足球赛的输贏都是不能重复的随机现象。现在介绍的概率论主要研究能大量重复的随机现象,但应十分注意的是,我们也要注意研究不能重复的随机现象。因为后者在我们经济生活中占有重要地位(经济现象很多情况下是不可重复的)。

(3)样本点:认识一个随机现象首要的是能罗列出它的一切可能发生的基本结果,这里**“基本结果”是指随机现象的最简单的结果**,如抛一枚硬币就有两个基本结果:正面,反面;抛一颗骰子就有六个基本结果:1 点, 2 点, 3 点, 4 点, 5 点, 6 点。

(4)样本空间:随机现象所有基本结果(样本点)的全体称为这个随机现象的样本空间。 常用 Ω = \Omega= Ω= { ω } \{\boldsymbol{\omega}\} {ω} 表示,其中元素 ω \omega ω 就是样本点。在统计学中,基本结果 ω \omega ω 将是抽样的基本单元,故基本结果又称为样本点,基本空间又称为样本空间,如抛一枚硬币的基本空间(样本空间)为
Ω 1 = { ω 0 , ω 1 } = {  正面, 反面  } \Omega_{1}=\left\{\omega_{0}, \omega_{1}\right\}=\{\text { 正面, 反面 }\} Ω1={ω0,ω1}={ 正面反面 }
其中, ω 0 \omega_{0} ω0 表示正面, ω 1 \omega_{1} ω1 表示反面, 又如掷一颗骰子的基本空间为
Ω 2 = { ω 1 , ω 2 , ω 3 , ω 4 , ω 5 , ω 6 } = { 1 , 2 , 3 , 4 , 5 , 6 } \Omega_{2}=\left\{\omega_{1}, \omega_{2}, \omega_{3}, \omega_{4}, \omega_{5}, \omega_{6}\right\}=\{1,2,3,4,5,6\} Ω2={ω1,ω2,ω3,ω4,ω5,ω6}={1,2,3,4,5,6}
下面用一些例子说明:

  • “一台电视机的寿命”的基本空间可用非负实数集表示,即
    Ω 4 = { x : x ⩾ 0 } \Omega_{4}=\{x: x \geqslant 0\} Ω4={x:x0}
  • “测量某物理量的误差”的基本空间常用整个实数集表示,即
    Ω 5 = { x : − ∞ < x < ∞ } \Omega_{5}=\{x:-\infty<x<\infty\} Ω5={x:<x<}

(5)随机事件:随机现象的某些基本结果组成的集合称为随机事件,简称事件,常用大写字母 A , B , C A, B, C A,B,C 等表示,如抛一颗骰子,“出现奇数点”是一个事件,它是由 1 点、 3 点、 5 点三个基本结果组成,若记这个事件为 A A A, 则有 A = { 1 , 3 , 5 } A=\{1,3,5\} A={1,3,5}

例:抛两枚硬币的基本空间 Ω \Omega Ω 由下列四个基本结果组成:
ω 1 = (  正, 正  ) ω 2 = (  正, 反  ) ω 3 = (  反, 正  ) ω 4 = (  反, 反  ) \begin{array}{ll} \omega_{1}=(\text { 正, 正 }) & \omega_{2}=(\text { 正, 反 }) \\ \omega_{3}=(\text { 反, 正 }) & \omega_{4}=(\text { 反, 反 }) \end{array} ω1=(  )ω3=(  )ω2=(  )ω4=(  )
下面几个事件可用集合形式表示,也可用语言形式表示。
A =  “至少出现一个正面”  = { ω 1 , ω 2 , ω 3 } . B =  “最多出现一个正面”  = { ω 2 , ω 3 , ω 4 } C =  “恰好出现一个正面” = { ω 2 , ω 3 } D =  “出现两面相同”  = { ω 1 , ω 4 } \begin{aligned} &A= \text { “至少出现一个正面” }=\left\{\omega_{1}, \omega_{2}, \omega_{3}\right\} . \\ &B= \text { “最多出现一个正面” }=\left\{\omega_{2}, \omega_{3}, \omega_{4}\right\} \\ &C= \text { “恰好出现一个正面”} =\left\{\omega_{2}, \omega_{3}\right\} \\ &D= \text { “出现两面相同” }=\left\{\omega_{1}, \omega_{4}\right\} \end{aligned} A= “至少出现一个正面” ={ω1,ω2,ω3}.B= “最多出现一个正面” ={ω2,ω3,ω4}C= “恰好出现一个正面={ω2,ω3}D= “出现两面相同” ={ω1,ω4}

(6)事件间的关系:

  • 事件的包含关系:设在同一个试验里有两个事件 A A A B B B,若事件 A A A 中任一基本结果必在 B B B 中,则称 A A A 被包含在 B B B 中,或 B B B 包含 A A A, 记为 A ⊂ B A \subset B AB B ⊃ A B \supset A BA ,这时事件 A A A 的发生必导致事件 B B B 的发生 。
  • 事件的相等关系:设在同一试验里有两个事件 A A A B B B 。若 A A A 中任一基本结果必在 B B B ( A ⊂ B ) (A \subset B) (AB),而 B B B 中任一基本结果也必在 A A A ( B ⊂ A ) (B \subset A) (BA), 则称事件 A A A B B B 相等,记为 A = B A=B A=B, 这时 A A A B B B 必含有相同的基本结果。
  • 事件的互不相容性:在同一个试验里,若两个事件 A A A B B B 没有相同的基本结果,则称事件 A A A B B B 互不相容,或称互斥。这时事件 A A A B B B 不可能同时发生。
  • 必然事件与不可能事件:任一个基本空间 Ω \Omega Ω 都有一个最大子集(基本空间本身 Ω \Omega Ω )和一个最小子集,用空集符号 ϕ \phi ϕ 表示。最大子集就是必然事件,最小子集就是不可能事件。

(7)事件的运算:

  • 对立事件:设 A A A 为一个试验里的事件,则由不在 A A A 中的一切基本结果组成的事件称为 A A A 的对立事件,记为 A ˉ \bar{A} Aˉ 。如在掷一颗骰子的试验中,事件 A = A= A= “出现偶数点”的对立事件 A ˉ = \bar{A}= Aˉ= “出现奇数点”。因为不出现偶数点必出现奇数点。
  • 并运算:事件 A \boldsymbol{A} A B \boldsymbol{B} B 的并,是由事件 A A A B B B 中所有基本结果(相同的只计入一次)组成的一个新事件,记为 A ∪ B A \cup B AB 。在掷一颗骰子的试验中,事件 A = A= A= “出现奇数点” = { 1 , 3 , 5 } =\{1,3,5\} ={1,3,5} 与事件 B = B= B= “出现点数不超过3“ $ ={1,2,3}$ 的并为 A ∪ B = { 1 , 2 , 3 , 5 } A \cup B=\{1,2,3,5\} AB={1,2,3,5} 。 可见,事件 A A A B B B 中重复元素只须记入并事件一次。
  • 交运算:事件 A A A B B B 的交,是由事件 A A A B B B 中公共的基本结果组成的一个新事件,记为 A ∩ B A \cap B AB A B A B AB 。如在掷一颗骰子的试验里, A = A= A= “出现奇数点” = { 1 =\{1 ={1, 3 , 5 } 3,5\} 3,5} 与事件 B = B= B= “出现点数不超过3 " = { 1 , 2 , 3 } =\{1,2,3\} ={1,2,3} 的交 A B = { 1 , 3 } A B=\{1,3\} AB={1,3} 。 可见,若交事件 A B A B AB 发生,则事件 A A A B B B 必同时发生,反之亦然。
  • 差运算:事件 A \boldsymbol{A} A B \boldsymbol{B} B 的差,是由在事件 A A A 中而不在事件 B B B 中的基本结果组成的一个新事件,记为 A − B A-B AB 。如在掷一颗骰子试验里,事件 A = A= A= “出现奇数点” = { 1 , 3 , 5 } =\{1,3,5\} ={1,3,5} 对事件 B = B= B= “出现点数不超过3 " = { 1 , 2 , 3 } =\{1,2,3\} ={1,2,3} 的差事件是 A − B = { 5 } A-B=\{5\} AB={5} 。而 B B B A A A 的差事件 B − A = { 2 } B-A=\{2\} BA={2} 。这是两个不同的差事件。可见,差事件 A − B A-B AB 是表示事件 A A A 发生而事件 B B B 不发生这样一个事件。

(8)事件的概率:随机事件的发生是带有偶然性的。但随机事件发生的可能性还是有大小之别的,是可以设法度量的。而在生活、生产和经济活动中人们很关心一个随机事件发生的可能性大小。那如何去度量一个事件发生的可能性呢?其中一种简单的方式就是使用频率代替概率,但是这种方法有一个致命的弊端,我们使用一个例子去说明!众多科学家都对硬币正反面的概率是0.5进行了验证:

 实验者   拼硬币次数   正面出现次数   频率   蒲   丰  4040 2048 0.5069  皮尔逊  12000 6019 0.5016  皮尔逊  24000 12012 0.5005 \begin{array}{lccc} \hline \text { 实验者 } & \text { 拼硬币次数 } & \text { 正面出现次数 } & \text { 频率 } \\ \hline \text { 蒲 } \quad \text { 丰 } & 4040 & 2048 & 0.5069 \\ \text { 皮尔逊 } & 12000 & 6019 & 0.5016 \\ \text { 皮尔逊 } & 24000 & 12012 & 0.5005 \\ \hline \end{array}  实验者      皮尔逊  皮尔逊  拼硬币次数 40401200024000 正面出现次数 2048601912012 频率 0.50690.50160.5005

那究竟硬币正反面的概率是多少呢,是0.5069,还是0.5016,亦或是0.5005呢?问题的本质就是一个试验发生的频率有无限种可能,它可能取决于试验的次数、试验的环境、试验者的心态等等,但是一个事件的概率往往只有一个,因此使用频率代替概率本身就不是一件容易的事情,那如何定义概率呢?

概率的公理化定义:在一个随机现象中,用来表示任一个随机事件 A A A 发生可能性大小的实数(即比率)称为该事件的概率,记为 P ( A ) P(A) P(A), 并规定

  • 非负性公理:对任一事件 A A A,必有 P ( A ) ⩾ 0 P(A) \geqslant 0 P(A)0
  • 正则性公理:必然事件的概率 P ( Ω ) = 1 P(\Omega)=1 P(Ω)=1
  • 可加性公理: 若 A 1 A_{1} A1 A 2 A_{2} A2 是两个互不相容事件(即 A 1 A 2 = ϕ ) \left.A_{1} A_{2}=\phi\right) A1A2=ϕ), 则有 P ( A 1 ∪ A 2 ) = P ( A 1 ) + P ( A 2 ) P\left(A_{1} \cup A_{2}\right)=P\left(A_{1}\right)+P\left(A_{2}\right) P(A1A2)=P(A1)+P(A2)

(9)事件的独立性:两个事件之间的独立性是指一个事件的发生不影响另一个事件的发生 A = A= A= “第一颗骰子出现 1 点”, B = B= B= “第二颗骰子出现偶数点”,
经验事实告诉我们,第一颗骰子出现的点数不会影响第二颗骰子出现的点数,假如规定第二颗骰子出现偶数点可得奖,那么不管第一颗骰子出现什么点都不会影响你得奖的机会,这时就可以说:事件 A A A B B B 独立。那么使用概率的语言是如何定义事件的独立性呢?
事件的独立性的定义:对任意两个事件 A A A B B B, 若有 P ( A B ) = P ( A ) P ( B ) P(A B)=P(A) P(B) P(AB)=P(A)P(B), 则称事件 A \boldsymbol{A} A B \boldsymbol{B} B 相互独立,简称 A A A B B B独立。

模拟频率近似概率:

# 引入相关工具库
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use("ggplot")
import warnings 
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif']=['SimHei','Songti SC','STFangsong']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
import seaborn as sns 
# 模拟抛硬币正面的概率是否会越来越接近0.5
import random
def Simulate_coin(test_num):
    random.seed(100)
    coin_list = [1 if (random.random()>=0.5) else 0  for i in range(test_num)]   # 模拟试验结果
    coin_frequence = np.cumsum(coin_list) / (np.arange(len(coin_list))+1)  # 计算正面为1的频率
    plt.figure(figsize=(10,6))
    plt.plot(np.arange(len(coin_list))+1, coin_frequence, c='blue', alpha=0.7)
    plt.axhline(0.5,linestyle='--',c='red',alpha=0.5)
    plt.xlabel("test_index")
    plt.ylabel("frequence")
    plt.title(str(test_num)+" times")
    plt.show()

Simulate_coin(test_num = 500)
Simulate_coin(test_num = 1000)
Simulate_coin(test_num = 5000)
Simulate_coin(test_num = 10000)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、条件概率、乘法公式、全概率公式与贝叶斯公式

(1)条件概率:

条件概率要涉及两个事件 A A A B B B在事件 B B B 已发生的条件下,事件 A A A 再发生的概率称为条件概率,记为 P ( A ∣ B ) P(A \mid B) P(AB), 它与前面讲的事件 A A A 的 (无条件)概率 P ( A ) P(A) P(A) 是两个不同的概念。无条件概率与条件概率的区别在哪呢?假如事件 B B B的发生不会影响事件 A A A发生的概率,那么就说明这两者是相互独立的,即: P ( A ∣ B ) = P ( A ) P(A \mid B) = P(A) P(AB)=P(A),两者将没有区别;但是如果事件 B B B的发生会影响到事件 A A A的发生,那么 P ( A ∣ B ) ≠ P ( A ) P(A \mid B) \not= P(A) P(AB)=P(A)

举个例子:

现在有两个小孩的家庭,其样本空间为 Ω = { 男男 , 男女 , 女男 , 女女 } \Omega=\{\text{男男}, \text{男女}, \text{女男}, \text{女女}\} Ω={男男,男女,女男,女女}

  • 事件 A = A= A= “家中至少有一个女孩” 发生的概率为 P ( A ) = 3 4 P(A)=\frac{3}{4} P(A)=43
  • 若已知事件 B = B= B= “家中至少有一个男孩”发生,再求事件 A A A 发生的概率为 P ( A ∣ B ) = 2 3 P(A \mid B)=\frac{2}{3} P(AB)=32

其实,为什么会出现这种情况呢?因为当我们得知事件 B = B= B= “家中至少有一个男孩”已经发生的时候,我们对整个样本空间的认识就不是原来的 Ω = { 男男 , 男女 , 女男 , 女女 } \Omega=\{\text{男男}, \text{男女}, \text{女男}, \text{女女}\} Ω={男男,男女,女男,女女}了,而是 Ω ′ = { 男男 , 男女 , 女男 } \Omega^{'}=\{\text{男男}, \text{男女}, \text{女男}\} Ω={男男,男女,女男}

可以看出,(无条件)概率 P ( A ) P(A) P(A)指的是从样本空间 Ω \Omega Ω中选出符合事件A定义的基本点的个数比例,即 P ( A ) = N A N Ω P(A) = \frac{N_A}{N_{\Omega}} P(A)=NΩNA;反观在事件 B B B 已发生的条件下,事件 A A A 再发生的概率 P ( A ∣ B ) P(A \mid B) P(AB),由于事件 B B B已经发生了,因此这个事件的样本空间由 Ω \Omega Ω缩减为 B B B,因此 P ( A ∣ B ) = N A B N B = N A B N Ω N B N Ω = P ( A B ) P ( B ) P(A \mid B) = \frac{N_{AB}}{N_B}=\frac{\frac{N_{AB}}{N_{\Omega}}}{\frac{N_B}{N_{\Omega}}} = \frac{P(AB)}{P(B)} P(AB)=NBNAB=NΩNBNΩNAB=P(B)P(AB),因此我们给出条件概率的准确定义

A A A B B B 是基本空间 Ω \Omega Ω 中的两个事件,且 P ( B ) > 0 P(B)>0 P(B)>0,在事件 B B B 已发生的条件下, 事件 A A A 的条件概率 P ( A ∣ B ) P(A \mid B) P(AB) 定义为 P ( A B ) / P ( B ) P(A B) / P(B) P(AB)/P(B), 即
P ( A ∣ B ) = P ( A B ) P ( B ) P(A \mid B)=\frac{P(A B)}{P(B)} P(AB)=P(B)P(AB)
其中 P ( A ∣ B ) P(A \mid B) P(AB) 也称为给定事件 B B B 下事件 A A A 的条件概率。

在这里插入图片描述
下面用一个例子说明条件概率的计算方法:某市的一项调查表明:该市有 30 % 30 \% 30% 的学生视力有缺陷。 7 % 7 \% 7% 的学生听力有缺陷, 3 % 3 \% 3% 的学生视力与听力都有缺陷,记
E =  “学生视力有缺陷” , P ( E ) = 0.30 H =  “学生听力有缺陷”  , P ( H ) = 0.07 E H =  “学生视力与听力都有缺陷” , P ( E H ) = 0.03 \begin{aligned} &E=\text { “学生视力有缺陷”}, P(E)=0.30\\ &H=\text { “学生听力有缺陷” }, \quad P(H)=0.07 \\ &E H=\text { “学生视力与听力都有缺陷”}, \quad P(E H)=0.03 \end{aligned} E= “学生视力有缺陷,P(E)=0.30H= “学生听力有缺陷” ,P(H)=0.07EH= “学生视力与听力都有缺陷,P(EH)=0.03
如果已知一学生听力有缺陷,那么他视力也有缺陷的概率是多少? 类似地可算得
P ( E ∣ H ) = P ( E H ) P ( H ) = 0.03 0.07 = 3 7 P(E \mid H)=\frac{P(E H)}{P(H)}=\frac{0.03}{0.07}=\frac{3}{7} P(EH)=P(H)P(EH)=0.070.03=73

(2)乘法公式

乘法公式是条件概率的第一个重要应用,它从条件概率的角度描述了两个事件A、B同时发生的概率是怎么计算的。具体公式如下:

  • P ( B ) > 0 P(B)>0 P(B)>0, 则 P ( A B ) = P ( B ) P ( A ∣ B ) P(A B)=P(B) P(A \mid B) P(AB)=P(B)P(AB)
  • P ( A 1 A 2 ⋯ A n − 1 ) > 0 P\left(A_{1} A_{2} \cdots A_{n-1}\right)>0 P(A1A2An1)>0, 则 P ( A 1 A 2 ⋯ A n ) = P ( A 1 ) P ( A 2 ∣ A 1 ) P ( A 3 ∣ A 1 A 2 ) ⋯ P ( A n ∣ A 1 A 2 ⋯ A n − 1 ) P\left(A_{1} A_{2} \cdots A_{n}\right)=P\left(A_{1}\right) P\left(A_{2} \mid A_{1}\right) P\left(A_{3} \mid A_{1} A_{2}\right) \cdots P\left(A_{n} \mid A_{1} A_{2} \cdots A_{n-1}\right) P(A1A2An)=P(A1)P(A2A1)P(A3A1A2)P(AnA1A2An1)

其实乘法公式十分好理解,如果想要计算 A A A B B B同时发生的概率,那么可以先让事件B发生,计算事件B发生的概率 P ( B ) P(B) P(B),再计算 B B B发生的条件下 A A A发生的概率 P ( A ∣ B ) P(A|B) P(AB)

例子:一批零件共有 100 个, 其中有 10 个不合格品. 从中一个一个取出,求第三次才取得不合格品的概率是多少?

解:以 A i A_{i} Ai 记事件 “第 i i i 次取出的是不合格品”, i = 1 , 2 , 3 i=1,2,3 i=1,2,3. 则所求概率为 P ( A ˉ 1 A ˉ 2 A 3 ) P\left(\bar{A}_{1} \bar{A}_{2} A_{3}\right) P(Aˉ1Aˉ2A3), 由乘法公式得
P ( A ˉ 1 A ˉ 2 A 3 ) = P ( A ˉ 1 ) P ( A ˉ 2 ∣ A ˉ 1 ) P ( A 3 ∣ A ˉ 1 A ˉ 2 ) = 90 100 ⋅ 89 99 ⋅ 10 98 = 0.0826. P\left(\bar{A}_{1} \bar{A}_{2} A_{3}\right)=P\left(\bar{A}_{1}\right) P\left(\bar{A}_{2} \mid \bar{A}_{1}\right) P\left(A_{3} \mid \bar{A}_{1} \bar{A}_{2}\right)=\frac{90}{100} \cdot \frac{89}{99} \cdot \frac{10}{98}=0.0826 . P(Aˉ1Aˉ2A3)=P(Aˉ1)P(Aˉ2Aˉ1)P(A3Aˉ1Aˉ2)=1009099899810=0.0826.

(3)全概率公式

全概率公式是计算复杂概率的一个重要方法,使一个复杂概率的计算能化繁为简。

B 1 , B 2 , ⋯   , B n B_{1}, B_{2}, \cdots, B_{n} B1,B2,,Bn 是基本空间 Ω \Omega Ω 的一个分割,则对 Ω \Omega Ω 中任一事件 A A A,有(具体的解释如下图)
P ( A ) = ∑ i = 1 n P ( A ∣ B i ) P ( B i ) P(A)=\sum_{i=1}^{n} P\left(A \mid B_{i}\right) P\left(B_{i}\right) P(A)=i=1nP(ABi)P(Bi)

在这里插入图片描述
在这里插入图片描述

例子:一批产品来自三个工厂,要求这批产品的合格率。为此对这三个工厂的产品进行调查,发现甲厂产品合格率为 95 % 95 \% 95%, 乙厂产品合格率为 80 % 80 \% 80%,丙厂产品合格率为 65 % 65 \% 65% 。这批产品中有 60 % 60 \% 60% 来自甲厂, 30 % 30 \% 30% 来自乙厂, 余下 10 % 10 \% 10% 来自丙厂。

若记事件 A = A= A= “产品合格”, B 1 = B_{1}= B1= “产品来自甲厂” B 2 = B_{2}= B2= “产品来自乙厂“, B 3 = B_{3}= B3= “产品来自丙厂"。由上述调查可知
P ( A ∣ B 1 ) = 0.95 , P ( A ∣ B 2 ) = 0.80 , P ( A ∣ B 3 ) = 0.65 P ( B 1 ) = 0.60 , P ( B 2 ) = 0.30 , P ( B 3 ) = 0.10 \begin{gathered} P\left(A \mid B_{1}\right)=0.95, \quad P\left(A \mid B_{2}\right)=0.80, \quad P\left(A \mid B_{3}\right)=0.65 \\ P\left(B_{1}\right)=0.60, \quad P\left(B_{2}\right)=0.30, \quad P\left(B_{3}\right)=0.10 \end{gathered} P(AB1)=0.95,P(AB2)=0.80,P(AB3)=0.65P(B1)=0.60,P(B2)=0.30,P(B3)=0.10
最后由全概率公式知
P ( A ) = P ( A ∣ B 1 ) P ( B 1 ) + P ( A ∣ B 2 ) P ( B 2 ) + P ( A ∣ B 3 ) P ( B 3 ) = 0.95 × 0.60 + 0.80 × 0.30 + 0.65 × 0.10 = 0.875 \begin{aligned} P(A) &=P\left(A \mid B_{1}\right) P\left(B_{1}\right)+P\left(A \mid B_{2}\right) P\left(B_{2}\right)+P\left(A \mid B_{3}\right) P\left(B_{3}\right) \\ &=0.95 \times 0.60+0.80 \times 0.30+0.65 \times 0.10 \\ &=0.875 \end{aligned} P(A)=P(AB1)P(B1)+P(AB2)P(B2)+P(AB3)P(B3)=0.95×0.60+0.80×0.30+0.65×0.10=0.875
这批产品的合格率为 0.875 0.875 0.875

(4)贝叶斯公式:结合条件概率公式、乘法公式和全概率公式,我们能得到强大的贝叶斯公式。现在,我们假定由于某些原因 P ( B k ∣ A ) P\left(B_{k} \mid A\right) P(BkA)直接计算是十分难求的,但是 P ( A ∣ B k ) P\left(A \mid B_{k}\right) P(ABk)求起来相对简单,但是我们需要求解 P ( B k ∣ A ) P\left(B_{k} \mid A\right) P(BkA)的值,怎么办呢?能不能用简单的 P ( A ∣ B k ) P\left(A \mid B_{k}\right) P(ABk)求解复杂的 P ( B k ∣ A ) P\left(B_{k} \mid A\right) P(BkA)呢?

首先,我们写出所要求的复杂的 P ( B k ∣ A ) P\left(B_{k} \mid A\right) P(BkA)的定义公式,即:
P ( B k ∣ A ) = P ( A B k ) P ( A ) P\left(B_{k} \mid A\right) = \frac{P(AB_k)}{P(A)} P(BkA)=P(A)P(ABk)
其次,我们对分子分母分别使用乘法公式和全概率公式展开,即:
P ( B k ∣ A ) = P ( A ∣ B k ) P ( B k ) ∑ i = 1 n P ( A ∣ B i ) P ( B i ) , k = 1 , 2 , ⋯   , n P\left(B_{k} \mid A\right)=\frac{P\left(A \mid B_{k}\right) P\left(B_{k}\right)}{\sum_{i=1}^{n} P\left(A \mid B_{i}\right) P\left(B_{i}\right)}, \quad k=1,2, \cdots, n P(BkA)=i=1nP(ABi)P(Bi)P(ABk)P(Bk),k=1,2,,n
至此,伟大的贝叶斯公式就被推导出来了。

【例子】三门问题(Monty Hall problem ), 是一个源自博弈论的数学游戏问题, 大致出自美国的电视游戏节目 Let’s Make a Deal。问题的名字来自该节目的主持人蒙提・霍尔 (Monty Hall)。这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车, 而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇, 露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门能否增加参赛者赢得汽车的机会率?

解:

  • 在主持人不打开门时, 选手抽中车的概率为 1 / 3 1 / 3 1/3
  • 假设: A = \mathrm{A}= A= 选手选择第一扇门,第一扇门中是车; B = B= B= 选手选择第一扇门, 第二扇门中是车; C = C= C= 选手选择第一扇门, 第三扇门中是车; D = \mathrm{D}= D= 主持人打开第三扇门。即:
    P ( D ∣ A ) = 1 / 2 P ( D ∣ B ) = 1 P ( D ∣ C ) = 0 P ( A ) = P ( B ) = P ( C ) = 1 / 3 根据贝叶斯公式: P ( D ) = P ( A ) P ( D ∣ A ) + P ( B ) P ( D ∣ B ) + P ( C ) P ( D ∣ C ) = 1 / 2 P ( A ∣ D ) = P ( A ) P ( D ∣ A ) / P ( D ) = 1 / 3 P ( B ∣ D ) = P ( B ) P ( D ∣ B ) / P ( D ) = 2 / 3 \begin{aligned} &P(D \mid A)=1 / 2 \\ &P(D \mid B)=1 \\ &P(D \mid C)=0 \\ &P(A)=P(B)=P(C)=1 / 3\\ &\text{根据贝叶斯公式:}\\ &P(D)=P(A) P(D \mid A)+P(B) P(D \mid B)+P(C) P(D \mid C)=1 / 2 \\ &P(A \mid D)=P(A) P(D \mid A) / P(D)=1 / 3 \\ &P(B \mid D)=P(B) P(D \mid B) / P(D)=2 / 3 \end{aligned} P(DA)=1/2P(DB)=1P(DC)=0P(A)=P(B)=P(C)=1/3根据贝叶斯公式:P(D)=P(A)P(DA)+P(B)P(DB)+P(C)P(DC)=1/2P(AD)=P(A)P(DA)/P(D)=1/3P(BD)=P(B)P(DB)/P(D)=2/3

下面,我们使用python代码模拟三门问题:

import random 
class MontyHall:
    def __init__(self,n):
        """
        n : int,试验的次数
        """
        self.n = n
        self.change = 0  # 记录换才能拿到车的次数
        self.No_change = 0  # 记录不换才能拿到车的次数
    def start(self):
        for i in range(self.n):
            door_list = [1,2,3]   ## 三扇门
            challenger_door = random.choice(door_list)   ## 随机选择了其中一扇
            car_door = random.choice(door_list)     ## 随机选定车的门
            door_list.remove(challenger_door)   ## 没有被挑战者选中的剩下的门
            if challenger_door == car_door:
                host_door = random.choice(door_list)
                door_list.remove(host_door)        # 不换才能拿车
                self.No_change += 1
            else:
                self.change += 1      # 换了才能拿车
        print("换且能拿到车的概率:%.2f " % (self.change/self.n * 100) + "%")
        print("不换也能拿到车的概率:%.2f"% (self.No_change/self.n * 100) + "%")

if __name__ == "__main__":
    mh = MontyHall(1000000)
    mh.start()  
换且能拿到车的概率:66.62 %
不换也能拿到车的概率:33.38%

三、一维随机变量及其分布函数和密度函数

在刚才的讨论中,我们讨论了概率论中的一些基本概念,也着重介绍了条件概率及其衍生出的乘法公式以及全概率公式和贝叶斯公式。但是人们对随机现象的兴趣常常集中在其结果的某个数量方面。譬如,质量检验员在检查 20 个产品中关心的是不合格品的个数。若记 20 个产品中不合格品的个数为 X X X, 则这个 X X X 可能取 0 , 1 , 2 , ⋯   , 20 0,1,2, \cdots, 20 0,1,2,,20 中任一个数,可见此 X X X 是变量。 至于这个 X X X 取哪一个数要看检査结果,事先不能确定,故此 X X X 的取值又带有随机性,这样的变量又称为随机变量。这个随机变量 X X X 是质量检验员的注意点。有了随机变量后,有关事件的表示也方便了。如“ X = 2 X=2 X=2 ”表示“ 20 个产品中 有 2 个不合格品”这一事件, 又如“ X ⩽ 2 X \leqslant 2 X2 ”表示“ 20 个产品中有不多于 2 个不合格品”这一事件。随机变量 X X X 是基本结果 ω \omega ω 的函数,即可把 X X X 记为 X ( ω ) X(\omega) X(ω)。假如一个随机变量仅取数轴上的有限个或可列个孤立点, 则称此随机变量为离散随机变量。值充满数轴上的一个区间 ( a , b ) (a, b) (a,b) , 则称此随机变量为连续随机变量,其中 a a a 可以是 − ∞ -\infty , b b b 可以是 + ∞ +\infty

例如:

  • 抛一枚硬币,正面出现次数 X X X 是仅可能取 0 与 1 两个值的随机变量。 X = 0 X=0 X=0 "表示“出现反面”, X = 1 X=1 X=1 表示“出现正面”。类似地,检査一个产品,不合格的个数 Y Y Y 也是一个仅能取 0 与 1 两个值的随机变量。 Y = 0 Y=0 Y=0表示“合格品”, Y = 1 Y=1 Y=1表示“不合格品”。
  • 检査 n n n 个产品, 不合格品数 X X X 是可能取 0 , 1 , ⋯   , n 0,1, \cdots, n 0,1,,n n + 1 n+1 n+1 个值的随机变量, “ X = x X=x X=x "表示“ n n n 个产品中有 x x x 个不合格品”。类似地, n n n 台车床中需要维修的车床数 Y Y Y 也是可能取 0 , 1 , ⋯   , n 0,1, \cdots, n 0,1,,n n + 1 n+1 n+1 个值的随机变量, “ Y = y Y=y Y=y ”表 “ n n n 台车床中有 y y y 台需要维修”。
  • 测量误差 X X X 是可在 ( − ∞ , ∞ ) (-\infty, \infty) (,) 上取值的随机变量。 “ ∣ X ∣ ⩽ 1 |X| \leqslant 1 X1“ 表示“测量误差 X X X [ − 1 , + 1 ] [-1,+1] [1,+1] 内”。
  • 电视机的寿命 Y Y Y (单位: 小时) 是 ( 0 , ∞ ) (0, \infty) (0,) 上取值的随机变量, " Y > 10000 Y>10000 Y>10000 "表示“电视机寿命超过一万小时”。类似地,小客车每公里的耗油量 Y Y Y (单位:升)也可看作在 ( 0 , ∞ ) (0, \infty) (0,) 上取值的随机变量。 “ Y ⩽ 0.5 Y \leqslant 0.5 Y0.5 ”表示“小客车每公里的耗油量不超过半升。”

现在,我们已经可以使用随机变量去表示随机事件,但是我们仍需考虑这个问题:随机变量 X X X 取这些值的概率是多少?换句话说就是:随机事件对应的随机变量取这些值的概率是多少?计算一个由随机变量表示的随机事件的概率的思路有两种:直接计算法(利用分布函数计算)间接计算法(利用密度函数计算)

接下来我们来一起学习下可以很方便计算随机变量的概率的函数:分布函数。(直接计算法)

X X X 为一个随机变量,对任意实数 x x x,事件“ X ⩽ x X \leqslant x Xx ”的概率 是 x x x 的函数,记为
F ( x ) = P ( X ⩽ x ) F(x)=P(X \leqslant x) F(x)=P(Xx)
这个函数称为 X X X 的累积概率分布函数,简称分布函数。为什么要这么设置分布函数呢?原因可以从概率的本质入手,因为分布函数本身就是为了计算随机变量的概率。

  • 0 ⩽ F ( x ) ⩽ 1 0 \leqslant F(x) \leqslant 1 0F(x)1 。 要记住,分布函数值是特定形式事件“ X ⩽ x X \leqslant x Xx ”的概率,而概率总在 0 与 1 之间。
  • F ( − ∞ ) = lim ⁡ x → − ∞ F ( x ) = 0 F(-\infty)=\lim _{x \rightarrow-\infty} F(x)=0 F()=limxF(x)=0 ,这是因为事件“ X ⩽ − ∞ X \leqslant-\infty X "是不可能事件。
  • F ( + ∞ ) = lim ⁡ x → + ∞ F ( x ) = 1 F(+\infty)=\lim _{x \rightarrow+\infty} F(x)=1 F(+)=limx+F(x)=1, 这是因为事件“ X ⩽ + ∞ X \leqslant+\infty X+ "是必然事件。
  • F ( x ) F(x) F(x) 是非降函数, 即对任意 x 1 < x 2 x_{1}<x_{2} x1<x2, 有 F ( x 1 ) ⩽ F ( x 2 ) F\left(x_{1}\right) \leqslant F\left(x_{2}\right) F(x1)F(x2) 。 这是因为事件 “ X ⩽ x 2 X \leqslant x_{2} Xx2 ”包含事件" X ⩽ x 1 X \leqslant x_{1} Xx1"。

因此:
P ( a < X ⩽ b ) = F ( b ) − F ( a ) P ( X = a ) = F ( a ) − F ( a − 0 ) P ( X ⩾ b ) = 1 − F ( b − 0 ) P ( X > b ) = 1 − F ( b ) P ( X < b ) = F ( b − 0 ) P ( a < X < b ) = F ( b − 0 ) − F ( a ) P ( a ⩽ X ⩽ b ) = F ( b ) − F ( a − 0 ) P ( a ⩽ X < b ) = F ( b − 0 ) − F ( a − 0 ) \begin{aligned} &P(a<X \leqslant b)=F(b)-F(a) \\ &P(X=a)=F(a)-F(a-0) \\ &P(X \geqslant b)=1-F(b-0) \\ &P(X>b)=1-F(b)\\ &P(X<b)=F(b-0) \\ &P(a<X<b)=F(b-0)-F(a) \\ &P(a \leqslant X \leqslant b)=F(b)-F(a-0) \\ &P(a \leqslant X<b)=F(b-0)-F(a-0) \end{aligned} P(a<Xb)=F(b)F(a)P(X=a)=F(a)F(a0)P(Xb)=1F(b0)P(X>b)=1F(b)P(X<b)=F(b0)P(a<X<b)=F(b0)F(a)P(aXb)=F(b)F(a0)P(aX<b)=F(b0)F(a0)

特别当 F ( x ) F(x) F(x) a a a b b b 处连续时, 有
F ( a − 0 ) = F ( a ) , F ( b − 0 ) = F ( b ) F(a-0)=F(a), \quad F(b-0)=F(b) F(a0)=F(a),F(b0)=F(b)

例子:反正切函数 F ( x ) = 1 π ( arctan ⁡ x + π 2 ) , − ∞ < x < ∞ F(x)=\frac{1}{\pi}\left(\arctan x+\frac{\pi}{2}\right),-\infty<x<\infty F(x)=π1(arctanx+2π),<x<是柯西分布的分布函数,函数如图所示:

在这里插入图片描述

X X X 服从柯西分布, 则
P ( − 1 ⩽ X ⩽ 1 ) = F ( 1 ) − F ( − 1 ) = 1 π [ arctan ⁡ ( 1 ) − arctan ⁡ ( − 1 ) ] = 1 π [ π 4 − ( − π 4 ) ] = 1 2 P(-1 \leqslant X \leqslant 1)=F(1)-F(-1)=\frac{1}{\pi}[\arctan (1)-\arctan (-1)]=\frac{1}{\pi}\left[\frac{\pi}{4}-\left(-\frac{\pi}{4}\right)\right]=\frac{1}{2} P(1X1)=F(1)F(1)=π1[arctan(1)arctan(1)]=π1[4π(4π)]=21

分布函数是计算随机变量表示的随机事件的概率的直接方法,因为分布函数本身就是直接使用概率定义的。现在,我们来看看计算随机变量表示的随机事件的概率的间接方法——密度函数。先来学习连续型随机变量的密度函数,现在不直接假设随机变量的概率函数是什么,我们使用:某个区间内的概率 = 区间长度 * 长度内的概率密度,就好像一个小面积的质量等于面积内的密度 * 面积。因此,概率的计算变成以下的表示:对任意两个实数 a a a b b b,其中 a < b a<b a<b, 且 a a a 可为 − ∞ , b -\infty, b ,b 可为 + ∞ , X +\infty, X +,X 在区间 [ a , b ] [a, b] [a,b] 上取值的概率为曲线 p ( x ) p(x) p(x) 在该区间上曲边梯形的面积,即
P ( a ⩽ X ⩽ b ) = ∫ a b p ( x ) d x P(a \leqslant X \leqslant b)=\int_{a}^{b} p(x) d x P(aXb)=abp(x)dx
则称密度函数 p ( x ) p(x) p(x) 为连续随机变量 X X X 的概率分布,或简称 p ( x ) p(x) p(x) X X X 的密度函数,记为 X ∼ p ( x ) X \sim p(x) Xp(x), 读作“ X X X 服从密度 p ( x ) p(x) p(x) ”。

由于概率密度函数 P ( x ) P(x) P(x)表示的概率的密度,它应该遵守概率的基本特征(概率最大为1):
∫ − ∞ ∞ p ( x ) d x = 1 ,    p ( x ) ⩾ 0 \int_{-\infty}^{\infty} p(x) d x=1 ,\;p(x) \geqslant 0 p(x)dx=1,p(x)0

那与连续随机变量相对应的离散随机变量,它的“密度函数”怎么表示呢?对于离散随机变量来说,我们往往使用分布列去对应连续随机变量密度函数的概念。因为连续随机变量的密度函数使用的是积分来表达的,而离散情况下往往只需要简单的求和就可以了,实际上积分就是符号 ∫ \int 就是拉长的求和符号 ∑ \sum 他们本质上都是求和。因此,
X X X 是一个离散随机变量,如果 X X X 的所有可能取值是 x 1 , x 2 , ⋯ x_{1}, x_{2}, \cdots x1,x2,, x n , ⋯ x_{n}, \cdots xn,, 则称 X X X x i x_{i} xi 的概率
p i = p ( x i ) = P ( X = x i ) , i = 1 , 2 , ⋯   , n , ⋯ p_{i}=p\left(x_{i}\right)=P\left(X=x_{i}\right), i=1,2, \cdots, n, \cdots pi=p(xi)=P(X=xi),i=1,2,,n,
X X X 的概率分布列或简称为分布列, 记为 X ∼ { p i } X \sim\left\{p_{i}\right\} X{pi}

分布列如下图:
X x 1 x 2 ⋯ x n ⋯ P p ( x 1 ) p ( x 2 ) ⋯ p ( x n ) ⋯ \begin{array}{c|ccccc} X & x_{1} & x_{2} & \cdots & x_{n} & \cdots \\ \hline P & p\left(x_{1}\right) & p\left(x_{2}\right) & \cdots & p\left(x_{n}\right) & \cdots \end{array} XPx1p(x1)x2p(x2)xnp(xn)

例子:柯西分布的分布函数为: F ( x ) = 1 π ( arctan ⁡ x + π 2 ) , − ∞ < x < ∞ F(x)=\frac{1}{\pi}\left(\arctan x+\frac{\pi}{2}\right),-\infty<x<\infty F(x)=π1(arctanx+2π),<x<,求柯西分布的密度函数?
解:
F ′ ( x ) = p ( x ) = 1 π 1 1 + x 2 , − ∞ < x < ∞ F^{'}(x) = p(x)=\frac{1}{\pi} \frac{1}{1+x^{2}}, \quad-\infty<x<\infty F(x)=p(x)=π11+x21,<x<

例子:投掷一颗骰子,设 X X X为投掷的点数,求随机变量 X X X分布列和分布函数。

解:

分布列:
X 1 2 3 4 5 6 P 1 6 1 6 1 6 1 6 1 6 1 6 \begin{array}{c|cccccc} X & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline P & \frac{1}{6} & \frac{1}{6} & \frac{1}{6} & \frac{1}{6} & \frac{1}{6} & \frac{1}{6} \end{array} XP161261361461561661

分布函数:
F ( x ) = P ( X ⩽ x ) = { 0 , x < 1 i 6 , i ≤ x < i + 1 , i = 1 , 2 , 3 , 4 , 5 1 , x ≥ 6 F(x)=P(X \leqslant x) = \begin{cases}0, & x<1 \\ \frac{i}{6}, & i \le x < i+1, i=1,2,3,4,5 \\ 1, & x \ge 6\end{cases} F(x)=P(Xx)=0,6i,1,x<1ix<i+1,i=1,2,3,4,5x6

【例子】如何使用python已知密度函数求分布函数/已知分布函数求密度函数:

## 已知柯西分布的密度函数求分布函数
from sympy import *
x = symbols('x')
p_x = 1/pi*(1/(1+x**2))
integrate(p_x, (x, -oo, x))
atan(x)/pi + 1/2
## 已知柯西分布的分布函数求密度函数
from sympy import *
x = symbols('x')
f_x = 1/pi*(atan(x)+pi/2)
diff(f_x,x,1)
1/(pi*(x**2 + 1))

下面介绍常见的连续型随机变量及其密度函数

(1)均匀分布

一般地,在有限区间 [ a , b ] [a, b] [a,b] 上为常数,在此区间外为零的密度函数 p ( x ) p(x) p(x) 都称为均匀分布,并记为 U ( a , b ) U(a, b) U(a,b), 其密度函数为
p ( x ) = { 1 b − a , a ⩽ x ⩽ b 0 ,  其它  p(x)= \begin{cases}\frac{1}{b-a}, & a \leqslant x \leqslant b \\ 0, & \text { 其它 }\end{cases} p(x)={ba1,0,axb 其它 
均匀分布的分布函数为:
F ( x ) = { 0 , x < a x − a b − a , a ⩽ x < b 1 , x ⩾ b F(x)= \begin{cases}0, & x<a \\ \frac{x-a}{b-a}, & a \leqslant x<b \\ 1, & x \geqslant b\end{cases} F(x)=0,baxa,1,x<aax<bxb
均匀分布是最简单的,也是最常见的分布,例如:小明去约会,他下午14:00-18:00都等可能出现,那么出现的时间点就满足均匀分布。

# 【01】上的均匀分布
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use("ggplot")
import warnings 
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif']=['SimHei','Songti SC','STFangsong']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

a = float(0)
b = float(1)

x = np.linspace(a, b)
y = np.full(shape = len(x),fill_value=1/(b - a))  # np.full 构造一个数组,用指定值填充其元素

plt.plot(x,y,"b",linewidth=2)
plt.ylim(0,1.2)
plt.xlim(-1,2)
plt.xlabel('X')
plt.ylabel('p (x)')
plt.title('uniform distribution')
plt.show()

在这里插入图片描述
(2)指数分布

若随机变量 X X X 的密度函数为
p ( x ) = { λ e − λ x , x ⩾ 0 0 , x < 0 p(x)=\left\{\begin{aligned} \lambda e^{-\lambda x}, & x \geqslant 0 \\ 0, & x<0 \end{aligned}\right. p(x)={λeλx,0,x0x<0
则称 X X X 服从指数分布, 记作 X ∼ Exp ⁡ ( λ ) X \sim \operatorname{Exp}(\lambda) XExp(λ), 其中参数 λ > 0 \lambda>0 λ>0。其中 λ \lambda λ 是根据实际背景而定的正参数。假如某连续随机变量 X ∼ Exp ⁡ ( λ ) X \sim \operatorname{Exp}(\lambda) XExp(λ), 则表示 X X X 仅可能取非负实数。

指数分布的分布函数为:
F ( x ) = { 1 − e − λ x , x ⩾ 0 0 , x < 0 F(x)= \begin{cases}1-\mathrm{e}^{-\lambda x}, & x \geqslant 0 \\ 0, & x<0\end{cases} F(x)={1eλx,0,x0x<0
实际中不少产品首次发生故障(需要维修)的时间服从指数分布。譬如,某种热水器首次发生故障的时间 T T T (单位:小时)服从指数分布 Exp ⁡ ( 0.002 ) \operatorname{Exp}(0.002) Exp(0.002), 即 T T T 的密度函数为
p ( t ) = { 0.002 e − 0.002 t , t ⩾ 0 0 , t < 0 p(t)=\left\{\begin{array}{cl} 0.002 e^{-0.002 t}, & t \geqslant 0 \\ 0, & t<0 \end{array}\right. p(t)={0.002e0.002t,0,t0t<0

# 指数分布
lam = float(1.5)

x = np.linspace(0,15,100)
y = lam * np.e**(-lam * x)

plt.plot(x,y,"b",linewidth=2) 
plt.xlim(-5,10)
plt.xlabel('X')
plt.ylabel('p (x)')
plt.title('exponential distribution')
plt.show()

在这里插入图片描述
(3)正态分布(高斯分布)

正态分布是《概率论与数理统计》中最重要的一个分布,高斯 (Gauss, 1777-1855)在研究误差理论时首先用正态分布来刻画误差的分布,所以正态分布又称为高斯分布。

若随机变量 X X X 的密度函数为
p ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 , − ∞ < x < ∞ , p(x)=\frac{1}{\sqrt{2 \pi} \sigma} \mathrm{e}^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}}, \quad-\infty<x<\infty, p(x)=2π σ1e2σ2(xμ)2,<x<,
则称 X X X 服从正态分布, 称 X X X 为正态变量, 记作 X ∼ N ( μ , σ 2 ) X \sim N\left(\mu, \sigma^{2}\right) XN(μ,σ2)。 其中参数 − ∞ < μ < ∞ , σ > 0 -\infty<\mu<\infty, \sigma>0 <μ<,σ>0

## 已知正态分布的密度函数求分布函数
from sympy import *
from sympy.abc import mu,sigma
x = symbols('x')
p_x = 1/(sqrt(2*pi)*sigma)*E**(-(x-mu)**2/(2*sigma**2))
integrate(p_x, (x, -oo, x))
sqrt(2)*exp(-mu**2/(2*sigma**2))*Integral(exp(-x**2/(2*sigma**2))*exp(mu*x/sigma**2), (x, -oo, x))/(2*sqrt(pi)*sigma)
#正态分布
import math
mu = float(0)
mu1 = float(2)
sigma1 = float(1)
sigma2 = float(1.25)*float(1.25)
sigma3 = float(0.25)
x = np.linspace(-5, 5, 1000)
y1 = np.exp(-(x - mu)**2 / (2 * sigma1**2)) / (math.sqrt(2 * math.pi) * sigma1)
y2 = np.exp(-(x - mu)**2 / (2 * sigma2**2)) / (math.sqrt(2 * math.pi) * sigma2)
y3 = np.exp(-(x - mu)**2 / (2 * sigma3**2)) / (math.sqrt(2 * math.pi) * sigma3)
y4 = np.exp(-(x - mu1)**2 / (2 * sigma1**2)) / (math.sqrt(2 * math.pi) * sigma1)
plt.plot(x,y1,"b",linewidth=2,label=r'$\mu=0,\sigma=1$') 
plt.plot(x,y2,"orange",linewidth=2,label=r'$\mu=0,\sigma=1.25$') 
plt.plot(x,y3,"yellow",linewidth=2,label=r'$\mu=0,\sigma=0.5$') 
plt.plot(x,y4,"b",linewidth=2,label=r'$\mu=2,\sigma=1$',ls='--') 
plt.axvline(x=mu,ls='--')
plt.text(x=0.05,y=0.5,s=r'$\mu=0$')
plt.axvline(x=mu1,ls='--')
plt.text(x=2.05,y=0.5,s=r'$\mu=2$')
plt.xlim(-5,5)
plt.xlabel('X')
plt.ylabel('p (x)')
plt.title('normal distribution')
plt.legend()
plt.show()

在这里插入图片描述

  • 如果固定 σ \sigma σ, 改变 μ \mu μ 的值,则图形沿 x x x 轴平移。也就是说正态密度函数的位置由参数 μ \mu μ 所确定, 因此亦称 μ \mu μ 为位置参数。
  • 如果固定 μ \mu μ, 改变 σ \sigma σ 的值,则分布的位置不变,但 σ \sigma σ 愈小,曲线呈高而瘦,分布较为集中; σ \sigma σ 愈大,曲线呈矮而胖, 分布较为分散。也就是说正态密度函数的尺度由参数 σ \sigma σ 所确定, 因此称 σ \sigma σ 为尺度参数。
# 使用scipy计算pdf画图(非自定义函数)
from scipy.stats import expon # 指数分布
x = np.linspace(0.01,10,1000)  
plt.plot(x, expon.pdf(x),'r-', lw=5, alpha=0.6, label='expon pdf')    # pdf表示求密度函数值
plt.xlabel("X")
plt.ylabel("p (x)")
plt.legend()
plt.show()

在这里插入图片描述

# 使用scipy计算cdf画图(非自定义函数)
from scipy.stats import expon
x = np.linspace(0.01,10,1000)  
plt.plot(x, expon.cdf(x),'r-', lw=5, alpha=0.6, label='expon cdf')  # cdf表示求分布函数值
plt.xlabel("X")
plt.ylabel("F (x)")
plt.legend()
plt.show()

在这里插入图片描述
下面介绍常见的离散型随机变量及其分布列

(1)0-1分布(伯努利分布)

满足相互独立、只取两个值的随机变量通常称为伯努利(Bernoulli)随机变量。进行一次事件试验,该事件发生的概率为 p p p,不发生的概率为 1 − p 1-p 1p。这是一个最简单的分布,任何一个只有两种结果的随机现象都服从0-1分布。
P { X = k } = p k ( 1 − p ) 1 − k P\{X=k\}=p^{k}(1-p)^{1-k} P{X=k}=pk(1p)1k
其中 k = 0 , 1 k=0,1 k=0,1

我们也可以写成分布列的表格形式:
X 0 1 P p 1 − p \begin{array}{c|cccccc} X & 0 & 1 \\ \hline P & p & 1-p \end{array} XP0p11p
(2)二项分布

B n , k B_{n, k} Bn,k 表示事件“ n n n 重伯努里试验中成功出现 k k k 次”。如今我们用随机变量来表示这个事件。设 X X X n n n 重伯努里试验中成功的次数,则有 B n , k = B_{n, k}= Bn,k= X = k X=k X=k” 。其中 X X X 可能取的值为 0 , 1 , ⋯   , n 0,1, \cdots, n 0,1,,n, 它取这些值的概率为
P ( X = x ) = ( n x ) p x ( 1 − p ) n − x , x = 0 , 1 , ⋯   , n P(X=x)=\left(\begin{array}{l} n \\ x \end{array}\right) p^{x}(1-p)^{n-x}, \quad x=0,1, \cdots, n P(X=x)=(nx)px(1p)nx,x=0,1,,n

例子:某特效药的临床有效率为 0.95 0.95 0.95, 今有 10 人服用, 问至少有 8 人治愈的概率是多少?

解:设 X X X 为 10 人中被治愈的人数, 则 X ∼ b ( 10 , 0.95 ) X \sim b(10,0.95) Xb(10,0.95), 而所求概率为
P ( X ⩾ 8 ) = P ( X = 8 ) + P ( X = 9 ) + P ( X = 10 ) = ( 10 8 ) 0.9 5 8 0.0 5 2 + ( 10 9 ) 0.9 5 9 0.05 + ( 10 10 ) 0.9 5 10 = 0.0746 + 0.3151 + 0.5987 = 0.9884. \begin{aligned} P(X \geqslant 8) &=P(X=8)+P(X=9)+P(X=10) \\ &=\left(\begin{array}{c} 10 \\ 8 \end{array}\right) 0.95^{8} 0.05^{2}+\left(\begin{array}{c} 10 \\ 9 \end{array}\right) 0.95^{9} 0.05+\left(\begin{array}{c} 10 \\ 10 \end{array}\right) 0.95^{10} \\ &=0.0746+0.3151+0.5987=0.9884 . \end{aligned} P(X8)=P(X=8)+P(X=9)+P(X=10)=(108)0.9580.052+(109)0.9590.05+(1010)0.9510=0.0746+0.3151+0.5987=0.9884.
10 人中至少有 8 人被治愈的概率为 0.9884 0.9884 0.9884

(3)泊松分布

泊松分布是 1837 年由法国数学家泊松 (Poisson, 1781-1840)首次提出的,泊松分布的分布列为:
P ( X = x ) = λ x x ! e − λ P(X=x)=\frac{\lambda^{x}}{x !} e^{-\lambda} P(X=x)=x!λxeλ
其中: λ > 0 \lambda>0 λ>0 是常数,是区间事件发生率的均值。泊松分布是一种常用的离散分布, 它常与单位时间 (或单位面积、单位产品等)上 的计数过程相联系, 譬如,

  • 在一天内,来到某商场的顾客数。( λ \lambda λ就是单位时间内商场的顾客数)
  • 在单位时间内,一电路受到外界电磁波的冲击次数。
  • 1 平方米内, 玻璃上的气泡数。
  • 一铸件上的砂眼数。
  • 在一定时期内, 某种放射性物质放射出来的 α \alpha α-粒子数, 等等。

以上的例子都服从泊松分布。 因此泊松分布的应用面是十分广泛的。

# 对比不同的lambda对泊松分布的影响
import math
# 构造泊松分布列的计算函数
def poisson(lmd,x):
    return pow(lmd,x)/math.factorial(x)*math.exp(-lmd)
x = [i+1 for i in range(10)]
lmd1 = 0.8
lmd2 = 2.0
lmd3 = 4.0
lmd4 = 6.0
p_lmd1 = [poisson(lmd1,i) for i in x]
p_lmd2 = [poisson(lmd2,i) for i in x]
p_lmd3 = [poisson(lmd3,i) for i in x]
p_lmd4 = [poisson(lmd4,i) for i in x]

plt.scatter(np.array(x), p_lmd1, c='b',alpha=0.7)
plt.axvline(x=lmd1,ls='--')
plt.text(x=lmd1+0.1,y=0.1,s=r"$\lambda=0.8$")
plt.ylim(-0.1,1)
plt.xlabel("X")
plt.ylabel("p (x)")
plt.title(r"$\lambda = 0.8$")
plt.show()

plt.scatter(np.array(x), p_lmd2, c='b',alpha=0.7)
plt.axvline(x=lmd2,ls='--')
plt.text(x=lmd2+0.1,y=0.1,s=r"$\lambda=2.0$")
plt.ylim(-0.1,1)
plt.xlabel("X")
plt.ylabel("p (x)")
plt.title(r"$\lambda = 2.0$")
plt.show()

plt.scatter(np.array(x), p_lmd3, c='b',alpha=0.7)
plt.axvline(x=lmd3,ls='--')
plt.text(x=lmd3+0.1,y=0.1,s=r"$\lambda=4.0$")
plt.ylim(-0.1,1)
plt.xlabel("X")
plt.ylabel("p (x)")
plt.title(r"$\lambda = 4.0$")
plt.show()

plt.scatter(np.array(x), p_lmd4, c='b',alpha=0.7)
plt.axvline(x=lmd4,ls='--')
plt.text(x=lmd4+0.1,y=0.1,s=r"$\lambda=6.0$")
plt.ylim(-0.1,1)
plt.xlabel("X")
plt.ylabel("p (x)")
plt.title(r"$\lambda = 6.0$")
plt.show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图可以看出:

  • 位于 λ \lambda λ (均值)附近概率较大.
  • 随着 λ \lambda λ 的增加, 分布逐渐趋于对称.
# 使用scipy的pmf和cdf画图
from scipy.stats import binom
n=10
p = 0.5
x=np.arange(1,n+1,1)
pList=binom.pmf(x,n,p)
plt.plot(x,pList,marker='o',alpha=0.7,linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
'''
plt.vlines(x, 0, pList)
plt.xlabel('随机变量:抛硬币10次')
plt.ylabel('概率')
plt.title('二项分布:n=%d,p=%0.2f' % (n,p))
plt.show()

在这里插入图片描述

四、一维随机变量的数字特征:期望、方差、分位数与中位数

其实,在刚刚讨论的随机变量以及随机变量的密度函数、分布列等等概念,已经可以把随机事件描述的非常完整了,因为随机变量及其密度函数/分布列能把这个随机变量的所有信息都囊括起来。为什么需要随机变量的数字特征呢?因为在某些场合,我们不需要知道这个随机变量的方方面面,可能仅仅只需要知道某个侧面的信息。例如:我们知道明天的股票价格是一个随机变量,因为我们不知道明天股票的价格是多少。但是我们需要把明天的股票价格的每一个价格的概率都计算出来形成一个分布吗?显然不需要,我们更关心的是明天的股价在一般水平上比今天的股价是涨还是跌,如果涨了我们选择买入,跌了选择卖出。因此,我们需要对随机变量的不同侧面进行描述,最好是能用一个数字去表述清楚而不是像分布一样是一个函数表达式,而这个数字就是我们所说的一维随机变量的数字特征。

(1)数学期望(均值)

“期望”在日常生活中常指有根据的希望,或发生可能性较大的希望。譬如,一位人寿保险经纪人告诉我们:“ 40 岁的妇女可期望再活 38 年。” 这不是说 40岁的美国妇女都活到 78 岁,然后第二天立刻去世,而是指 40 岁的妇女中,有些可再活 20 年,有些再活 50 年,平均可再活 38 年,即再活 38 年左右(如再活 38 ± 10 38 \pm 10 38±10 年)的可能性大一些; 又如,“某种轮胎可期望行驶 6 万公里”,也是指此种轮胎平均可行驶 6 万公里,就个别轮胎来说,有的行驶可超过 6 万公里,有的行驶可能不到 6 万公里就报废,而行驶 6 万公里左右的可能性大一些。因此,下面谈及的“数学期望”是指用概率分布算得的一种加权平均。

离散型随机变量的数学期望:

离散随机变量 X X X 的分布列为
P = ( X = x i ) = p ( x i ) , i = 1 , 2 , ⋯   , n P=\left(X=x_{i}\right)=p\left(x_{i}\right), \quad i=1,2, \cdots, n P=(X=xi)=p(xi),i=1,2,,n
则:
E ( X ) = ∑ i = 1 n x i p ( x i ) E(X)=\sum_{i=1}^{n} x_{i} p\left(x_{i}\right) E(X)=i=1nxip(xi)

连续型随机变量的数学期望:

连续随机变量 X X X 有密度函数 p ( x ) p(x) p(x), 如果积分
∫ − ∞ ∞ ∣ x ∣ p ( x ) d x \int_{-\infty}^{\infty}|x| p(x) d x xp(x)dx
有限,则称
E ( X ) = ∫ − ∞ ∞ x p ( x ) d x E(X)=\int_{-\infty}^{\infty} x p(x) d x E(X)=xp(x)dx
X X X 的数学期望,简称期望,期望值或均值。如果积分无限,则说 X X X 的数学期望不存在。

数学期望的理论意义是深刻的, 它是消除随机性的主要手段!

例子:以 X X X 记一张彩票的奖金额,则 X X X 的分布列如下:
X 500000 50000 5000 500 50 10 0 P 0.000001 0.000009 0.00009 0.0009 0.009 0.09 0.9 \begin{array}{c|cccccccc} \hline X & 500000 & 50000 & 5000 & 500 & 50 & 10 & 0 \\ \hline P & 0.000001 & 0.000009 & 0.00009 & 0.0009 & 0.009 & 0.09 & 0.9 & \\ \hline \end{array} XP5000000.000001500000.00000950000.000095000.0009500.009100.0900.9
求一张彩票的平均所得奖金?

解:
E ( X ) = 0.5 + 0.45 + 0.45 + 0.45 + 0.45 + 0.9 + 0 = 3.2 E(X)=0.5+0.45+0.45+0.45+0.45+0.9+0=3.2 E(X)=0.5+0.45+0.45+0.45+0.45+0.9+0=3.2

假设每张福利彩票售价5元,每售出100万张就开一次奖,那么每一次开奖就会把筹得的500万中的320万( 3.2 × 1000000 = 3200000 3.2 \times 1000000 = 3200000 3.2×1000000=3200000)以奖金的形式返还给彩民,剩下的180万则用于福利事业和管理费用,这也是福利彩票的原理。

例子:设 X X X 服从区间 ( a , b ) (a, b) (a,b) 上的均匀分布,求 E ( X ) E(X) E(X)

解: X X X 的密度函数为:
p ( x ) = { 1 b − a , a < x < b , 0 ,  其他.  p(x)=\left\{\begin{array}{cl} \frac{1}{b-a}, & a<x<b, \\ 0, & \text { 其他. } \end{array}\right. p(x)={ba1,0,a<x<b, 其他
所以
E ( X ) = ∫ a b x ⋅ 1 b − a   d x = 1 b − a ⋅ x 2 2 ∣ a b = a + b 2 . E(X)=\int_{a}^{b} x \cdot \frac{1}{b-a} \mathrm{~d} x=\left.\frac{1}{b-a} \cdot \frac{x^{2}}{2}\right|_{a} ^{b}=\frac{a+b}{2} . E(X)=abxba1 dx=ba12x2ab=2a+b.
这个结果是可以理解的,因为 X X X 在区间 ( a , b ) (a, b) (a,b) 上的取值是均匀的,所以它的平均取值当然应该是 ( a , b ) (a, b) (a,b) 的 “中点”, 即 ( a + b ) / 2 (a+b) / 2 (a+b)/2

数学期望的性质

  • c c c 是常数, 则 E ( c ) = c E(c)=c E(c)=c
  • 对任意常数 a a a, 有 E ( a X ) = a E ( X ) E(a X)=a E(X) E(aX)=aE(X)
  • ( X , Y ) (X, Y) (X,Y) 是二维随机变量, 则有 E ( X + Y ) = E ( X ) + E ( Y ) E(X+Y)=E(X)+E(Y) E(X+Y)=E(X)+E(Y)
  • 若随机变量 X X X Y Y Y 相互独立, 则有 E ( X Y ) = E ( X ) E ( Y ) E(X Y)=E(X) E(Y) E(XY)=E(X)E(Y)

下面给出常见的分布的数学期望:

  • 0-1分布: E ( X ) = p E(X)=p E(X)=p
  • 二项分布: E ( X ) = n p E(X) = np E(X)=np
  • 泊松分布: E ( X ) = λ E(X) = \lambda E(X)=λ
  • 均匀分布: E ( X ) = a + b 2 E(X) = \frac{a+b}{2} E(X)=2a+b
  • 指数分布: E ( X ) = 1 λ E(X) = \frac{1}{\lambda} E(X)=λ1
  • 正态分布: E ( X ) = μ E(X) = \mu E(X)=μ

(2)方差与标准差

随机变量 X X X 的数学期望 E ( X ) E(X) E(X) 是分布的一种位置特征数, 它刻画了 X X X 的取值总在 E ( X ) E(X) E(X) 周围波动。但这个位置特征数无法反映出随机变量取值的“波动大小”,譬如 X X X Y Y Y 的分布列分别为:
X − 1 0 1 P 1 / 3 1 / 3 1 / 3 \begin{array}{c|ccc} X & -1 & 0 & 1 \\ \hline P & 1 / 3 & 1 / 3 & 1 / 3 \end{array} XP11/301/311/3

Y − 10 0 10 P 1 / 3 1 / 3 1 / 3 \begin{array}{c|ccc} Y & -10 & 0 & 10 \\ \hline P & 1 / 3 & 1 / 3 & 1 / 3 \end{array} YP101/301/3101/3
尽管它们的数学期望都是 0 , 但显然 Y Y Y 取值的波动要比 X X X 取值的波动大。 如何用数值来反映随机变量取值的“波动”大小,方差与标准差是一个不错的衡量指标。

方差在金融中扮演着重要的作用,就拿刚刚的明天的股票价格这个随机变量来说,如果明天的股价波动较大,往往代表着明天的股价不稳定程度高,风险大,即使明天的股价期望比今天要高,也不会选择买入股票,因为很有可能股价会比今天低而导致损失。因此,方差是衡量随机变量波动程度的数学量,具体的:数学期望 E ( X ) E(X) E(X) 是分布的位置特征数,它总位于分布的中心,随机变量 X X X 的取值总在其周围波动。方差是度量此种波动大小的最重要的特征数。

若随机变量 X 2 X^{2} X2 的数学期望 E ( X 2 ) E\left(X^{2}\right) E(X2) 存在, 则称偏差平方 ( X − E ( X ) ) 2 (X-E(X))^{2} (XE(X))2 的数学期望 E ( X − E ( X ) ) 2 E(X-E(X))^{2} E(XE(X))2 为随机变量 X X X (或相应分布) 的方差, 记为:
Var ⁡ ( X ) = E ( X − E ( X ) ) 2 \operatorname{Var}(X)=E(X-E(X))^{2} Var(X)=E(XE(X))2

离散型随机变量的方差:
∑ i ( x i − E ( X ) ) 2 p ( x i ) \sum_{i}\left(x_{i}-E(X)\right)^{2} p\left(x_{i}\right) i(xiE(X))2p(xi)
连续型随机变量的方差:
∫ − ∞ ∞ ( x − E ( X ) ) 2 p ( x ) d x \int_{-\infty}^{\infty}(x-E(X))^{2} p(x) \mathrm{d} x (xE(X))2p(x)dx
方差的正平方根 [ Var ⁡ ( X ) ] 1 / 2 [\operatorname{Var}(X)]^{1 / 2} [Var(X)]1/2 称为随机变量 X ( X( X( 或相应分布 ) ) ) 的标准差,记为 σ X \sigma_{X} σX σ ( X ) \sigma(X) σ(X)

例子:某人有一笔资金, 可投人两个项目: 房地产和商业, 其收益都与市场状态有关。 若把末来市场划分为好、中、差三个等级, 其发生的概率分别为 0.2 、 0.7 、 0.1 0.2 、 0.7 、 0.1 0.20.70.1。 通过调查,该投资者认为投资于房地产的收益 X X X (万元) 和投资于商业的收益 Y ( Y( Y( 万元) 的分布分别为:
X 11 3 − 3 P 0.2 0.7 0.1 \begin{array}{c|ccc} X & 11 & 3 & -3 \\ \hline P & 0.2 & 0.7 & 0.1 \end{array} XP110.230.730.1

Y 6 4 − 1 P 0.2 0.7 0.1 \begin{array}{c|ccc} Y & 6 & 4 & -1 \\ \hline P & 0.2 & 0.7 & 0.1 \end{array} YP60.240.710.1
解:先来看看平均收益(数学期望):
E ( X ) = 11 × 0.2 + 3 × 0.7 + ( − 3 ) × 0.1 = 4.0  (万元  ) E ( Y ) = 6 × 0.2 + 4 × 0.7 + ( − 1 ) × 0.1 = 3.9 (  万元  ) \begin{aligned} &E(X)=11 \times 0.2+3 \times 0.7+(-3) \times 0.1=4.0 \text { (万元 }) \\ &E(Y)=6 \times 0.2+4 \times 0.7+(-1) \times 0.1=3.9(\text { 万元 }) \end{aligned} E(X)=11×0.2+3×0.7+(3)×0.1=4.0 (万元 )E(Y)=6×0.2+4×0.7+(1)×0.1=3.9( 万元 )
显然,投资房地产的收益比投资商业的收益大,大约平均大0.1万元。下面来计算各自投资的风险(方差/标准差):

方差:
Var ⁡ ( X ) = ( 11 − 4 ) 2 × 0.2 + ( 3 − 4 ) 2 × 0.7 + ( − 3 − 4 ) 2 × 0.1 = 15.4 Var ⁡ ( Y ) = ( 6 − 3.9 ) 2 × 0.2 + ( 4 − 3.9 ) 2 × 0.7 + ( − 1 − 3.9 ) 2 × 0.1 = 3.29 \begin{gathered} \operatorname{Var}(X)=(11-4)^{2} \times 0.2+(3-4)^{2} \times 0.7+(-3-4)^{2} \times 0.1=15.4 \\ \operatorname{Var}(Y)=(6-3.9)^{2} \times 0.2+(4-3.9)^{2} \times 0.7+(-1-3.9)^{2} \times 0.1=3.29 \end{gathered} Var(X)=(114)2×0.2+(34)2×0.7+(34)2×0.1=15.4Var(Y)=(63.9)2×0.2+(43.9)2×0.7+(13.9)2×0.1=3.29
标准差:
σ ( X ) = 15.4 = 3.92 , σ ( Y ) = 3.29 = 1.81 \sigma(X)=\sqrt{15.4}=3.92, \sigma(Y)=\sqrt{3.29}=1.81 σ(X)=15.4 =3.92,σ(Y)=3.29 =1.81
由于标准差越大,说明投资的收益波动越大,那么风险也就越大。虽然投资房地产的平均收益比投资商业的平均收益大0.1万元,但是前者风险却是后者的两倍大,如果综合衡量收益与风险,还是投资商业为妙。

方差的性质

  • 最重要的性质: Var ⁡ ( X ) = E ( X 2 ) − [ E ( X ) ] 2 \operatorname{Var}(X)=E\left(X^{2}\right)-[E(X)]^{2} Var(X)=E(X2)[E(X)]2
  • 常数的方差为 0 , 即 Var ⁡ ( c ) = 0 \operatorname{Var}(c)=0 Var(c)=0, 其中 c c c 是常数。
  • a , b a, b a,b 是常数,则 Var ⁡ ( a X + b ) = a 2 Var ⁡ ( X ) \operatorname{Var}(a X+b)=a^{2} \operatorname{Var}(X) Var(aX+b)=a2Var(X)
  • 若随机变量 X X X Y Y Y 相互独立, 则有 Var ⁡ ( X ± Y ) = Var ⁡ ( X ) + Var ⁡ ( Y ) \operatorname{Var}(X \pm Y)=\operatorname{Var}(X)+\operatorname{Var}(Y) Var(X±Y)=Var(X)+Var(Y)

常见分布的方差

  • 0-1分布: V a r ( X ) = p ( 1 − p ) Var(X) = p(1-p) Var(X)=p(1p)
  • 二项分布: V a r ( X ) = n p ( 1 − p ) Var(X) = np(1-p) Var(X)=np(1p)
  • 泊松分布: V a r ( X ) = λ Var(X) = \lambda Var(X)=λ
  • 均匀分布: V a r ( X ) = ( b − a ) 2 12 Var(X) = \frac{(b-a)^{2}}{12} Var(X)=12(ba)2
  • 正态分布: V a r ( X ) = σ 2 Var(X) = \sigma^2 Var(X)=σ2
  • 指数分布: V a r ( X ) = 1 λ 2 Var(X) = \frac{1}{\lambda^{2}} Var(X)=λ21
# 使用scipy计算常见分布的均值与方差:(如果忘记公式的话直接查,不需要查书了)
from scipy.stats import bernoulli   # 0-1分布
from scipy.stats import binom   # 二项分布
from scipy.stats import poisson  # 泊松分布
from scipy.stats import rv_discrete # 自定义离散随机变量
from scipy.stats import uniform # 均匀分布
from scipy.stats import expon # 指数分布
from scipy.stats import norm # 正态分布
from scipy.stats import rv_continuous  # 自定义连续随机变量

print("0-1分布的数字特征:均值:{};方差:{};标准差:{}".format(bernoulli(p=0.5).mean(), 
                                  bernoulli(p=0.5).var(), 
                                  bernoulli(p=0.5).std()))
print("二项分布b(100,0.5)的数字特征:均值:{};方差:{};标准差:{}".format(binom(n=100,p=0.5).mean(), 
                                  binom(n=100,p=0.5).var(), 
                                  binom(n=100,p=0.5).std()))
## 模拟抛骰子的特定分布
xk = np.arange(6)+1
pk = np.array([1.0/6]*6)
print("泊松分布P(0.6)的数字特征:均值:{};方差:{};标准差:{}".format(poisson(0.6).mean(), 
                                  poisson(0.6).var(), 
                                  poisson(0.6).std()))
print("特定离散随机变量的数字特征:均值:{};方差:{};标准差:{}".format(rv_discrete(name='dice', values=(xk, pk)).mean(), 
                                  rv_discrete(name='dice', values=(xk, pk)).var(), 
                                  rv_discrete(name='dice', values=(xk, pk)).std()))
print("均匀分布U(1,1+5)的数字特征:均值:{};方差:{};标准差:{}".format(uniform(loc=1,scale=5).mean(), 
                                  uniform(loc=1,scale=5).var(), 
                                  uniform(loc=1,scale=5).std()))
print("正态分布N(0,0.0001)的数字特征:均值:{};方差:{};标准差:{}".format(norm(loc=0,scale=0.01).mean(), 
                                  norm(loc=0,scale=0.01).var(), 
                                  norm(loc=0,scale=0.01).std()))

lmd = 5.0  # 指数分布的lambda = 5.0
print("指数分布Exp(5)的数字特征:均值:{};方差:{};标准差:{}".format(expon(scale=1.0/lmd).mean(), 
                                  expon(scale=1.0/lmd).var(), 
                                  expon(scale=1.0/lmd).std()))

## 自定义标准正态分布
class gaussian_gen(rv_continuous):
    def _pdf(self, x): # tongguo 
        return np.exp(-x**2 / 2.) / np.sqrt(2.0 * np.pi)
gaussian = gaussian_gen(name='gaussian')
print("标准正态分布的数字特征:均值:{};方差:{};标准差:{}".format(gaussian().mean(), 
                                  gaussian().var(), 
                                  gaussian().std()))

## 自定义指数分布
import math
class Exp_gen(rv_continuous):
    def _pdf(self, x,lmd):
        y=0
        if x>0:
            y = lmd * math.e**(-lmd*x)
        return y
Exp = Exp_gen(name='Exp(5.0)')
print("Exp(5.0)分布的数字特征:均值:{};方差:{};标准差:{}".format(Exp(5.0).mean(), 
                                  Exp(5.0).var(), 
                                  Exp(5.0).std()))

## 通过分布函数自定义分布
class Distance_circle(rv_continuous):                 #自定义分布xdist
    """
    向半径为r的圆内投掷一点,点到圆心距离的随机变量X的分布函数为:
    if x<0: F(x) = 0;
    if 0<=x<=r: F(x) = x^2 / r^2
    if x>r: F(x)=1
    """
    def _cdf(self, x, r):                   #累积分布函数定义随机变量
        f=np.zeros(x.size)                  #函数值初始化为0
        index=np.where((x>=0)&(x<=r))           #0<=x<=r
        f[index]=((x[index])/r[index])**2       #0<=x<=r
        index=np.where(x>r)                     #x>r
        f[index]=1                              #x>r
        return f
dist = Distance_circle(name="distance_circle")
print("dist分布的数字特征:均值:{};方差:{};标准差:{}".format(dist(5.0).mean(), 
                                  dist(5.0).var(), 
                                  dist(5.0).std()))
0-1分布的数字特征:均值:0.5;方差:0.25;标准差:0.5
二项分布b(100,0.5)的数字特征:均值:50.0;方差:25.0;标准差:5.0
泊松分布P(0.6)的数字特征:均值:0.6;方差:0.6;标准差:0.7745966692414834
特定离散随机变量的数字特征:均值:3.5;方差:2.916666666666666;标准差:1.707825127659933
均匀分布U(1,1+5)的数字特征:均值:3.5;方差:2.083333333333333;标准差:1.4433756729740643
正态分布N(0,0.0001)的数字特征:均值:0.0;方差:0.0001;标准差:0.01
指数分布Exp(5)的数字特征:均值:0.2;方差:0.04000000000000001;标准差:0.2
标准正态分布的数字特征:均值:-5.955875168377274e-16;方差:0.9999999993069072;标准差:0.9999999996534535
Exp(5.0)分布的数字特征:均值:0.2082620293848526;方差:0.03678416218397953;标准差:0.19179197632846773
dist分布的数字特征:均值:3.333333333333333;方差:1.388888888888891;标准差:1.1785113019775801

(3)分位数与中位数

一般来说,分位数和中位数的讨论往往是基于连续型随机变量来说的,因为离散型随机变量的某个概率对应的分位数和中位数有可能不唯一或者不存在。那么什么是分位数呢?分位数和数学期望一样,都是描述随机变量的位置的数字特征,我们把累计概率等于p所对应的随机变量取值x为p分位数,具体是:

设连续随机变量 X X X 的分布函数为 F ( x ) F(x) F(x),密度函数为 p ( x ) p(x) p(x)。 对任意 p ∈ ( 0 , 1 ) p \in(0,1) p(0,1), 称满足条件
F ( x p ) = ∫ − ∞ x p p ( x ) d x = p F\left(x_{p}\right)=\int_{-\infty}^{x_{p}} p(x) \mathrm{d} x=p F(xp)=xpp(x)dx=p
x p x_{p} xp 为此分布的 p p p 分位数, 又称下侧 p p p 分位数。

在这里插入图片描述
分位数与上侧分位数是可以相互转换的, 其转换公式如下:
x p ′ = x 1 − p , x p = x 1 − p ′ x_{p}^{\prime}=x_{1-p}, \quad x_{p}=x_{1-p}^{\prime} xp=x1p,xp=x1p

中位数就是p=0.5时的分位数点,具体为:

设连续随机变量 X X X 的分布函数为 F ( x ) F(x) F(x), 密度函数为 p ( x ) p(x) p(x)。 称 p = 0.5 p=0.5 p=0.5 时的 p p p 分位数 x 0.5 x_{0.5} x0.5 为此分布的中位数,即 x 0.5 x_{0.5} x0.5 满足
F ( x 0.5 ) = ∫ − ∞ x 0.5 p ( x ) d x = 0.5 F\left(x_{0.5}\right)=\int_{-\infty}^{x_{0.5}} p(x) \mathrm{d} x=0.5 F(x0.5)=x0.5p(x)dx=0.5

在这里插入图片描述

数学期望与中位数都是属于位置特征数,但是有时候中位数可能比期望更能说明问题。假如某个城市的平均薪资为5000,中位数薪资为4000,那么能说明有一半的人收入少于4000而有一半大于等于4000。但是平均薪资却有5000,说明了有相当一部分的高收入人群拉高了收入均数,该城市的薪资差异较大。一般来说,均值与中位数相差不大往往能代表系统的结构是正常的,如果偏离较大,则说明系统内结构出现了偏离。中位数往往比均值更加稳健,因为不容易受到极端数据的影响,但是中位数计算比较麻烦,接受起来也比较麻烦;均值会受到极端数据的影响,但是计算简单,也容易接受。

【例子】使用python计算标准正态分布的0.25,0.5(中位数),0.75,0.95分位数点。

from scipy.stats import norm
print("标准正态分布的0.25分位数:",norm(loc=0,scale=1).ppf(0.25))   # 使用ppf计算分位数点
print("标准正态分布的0.5分位数:",norm(loc=0,scale=1).ppf(0.5))
print("标准正态分布的0.75分位数:",norm(loc=0,scale=1).ppf(0.75))
print("标准正态分布的0.95分位数:",norm(loc=0,scale=1).ppf(0.95))
标准正态分布的0.25分位数: -0.6744897501960817
标准正态分布的0.5分位数: 0.0
标准正态分布的0.75分位数: 0.6744897501960817
标准正态分布的0.95分位数: 1.6448536269514722
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Never give up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值