TASK03|概率论

在这里插入图片描述
(1)英文写作中的频率表

随机现象与概率

概率论主要研究能大量重复的随机现象‘

(1)随机试验:可重复的随机现象又称为随机试验
(2)样本点:一切可能发生的基本结果
(3)样本空间:随机现象所有基本结果(样本点)的全体称为这个随机现象的样本空间
(4)随机事件:随机现象的某些基本结果组成的集合称为随机事件
(5)事件间的关系:

  • 包含
  • 相等
  • 互不相容
  • 必然与不可能事件
    (6)事件的运算:
  • 对立

  • (7)概率的公理化定义:
  • 非负性公理
  • 正则性公理
  • 可加性公理
    (8)事件的独立性

模拟频率近似概率

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
#提供了和 MATLAB 类似的绘图 API
#调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。
plt.style.use("ggplot")
# 画布风格 使用plt.style.available可以找适合图形的风格
import warnings
warnings.filterwarnings("ignore")
#忽略代码中的红色警告
plt.rcParams['font.sans-serif']=['SimHei','Songti SC','STFangsong']
#定义图形默认属性 设置字体
plt.rcParams['axes.unicode_minus']=False
#用来正常显示负号
import seaborn as sns
import random
def Simulate_coin(test_num):
random_seed(100)#定义随机数种子
coin_list=[1 if random.random()>=0.5]else 0 for i range(test_num)]#模拟试验结果
#大于等于0.5的算1 否则算0
coin_frequence = np.cumsum(coin_list)/(np.arrange(len(coin_list))+1#计算正面为1的概率
plt.figure(figsize=(10,6))
#绘图,指定画布的大小
plt.plot(np.arrange(len(coin_list))+1,coin_frequence,c='blue',alpha=0.7)
#横坐标测验的次数,纵坐标频度
plt.xlabel("test_index")
plt.ylabel("frequence")
plt.title(str(test_num)+" times")
plt.show()
Simulate_coin(test_num = 600)
Simulate_coin(test_num = 1000)
Simulate_coin(test_num = 6000)
Simulate_coin(test_num = 10000)


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

(1)条件概率
P ( A ∣ B ) = P ( A B ) P ( B ) P(A \mid B)=\frac{P(A B)}{P(B)} P(AB)=P(B)P(AB)
(2)乘法公式

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

exp:

P ( A ˉ 1 A ˉ 2 A 3 ) = P ( A ˉ 1 ) P\left(\bar{A}_{1} \bar{A}_{2} A_{3}\right)=P\left(\bar{A}_{1}\right) P(Aˉ1Aˉ2A3)=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}_{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ˉ2Aˉ1)P(A3Aˉ1Aˉ2)=1009099899810=0.0826.

(3)全概率公式
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)

在这里插入图片描述
(4)贝叶斯公式

用简单的 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 ( 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

三门问题

参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有1只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出其中1只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率?
在主持人不打开门时, 选手抽中车的概率为 1 / 3 1 / 3 1/3
P ( A ) = P ( B ) = P ( C ) = 1 / 3 \begin{aligned} &P(A)=P(B)=P(C)=1 / 3\\ \end{aligned} P(A)=P(B)=P(C)=1/3
假设:
A: 选手选择第二扇门,第一扇门是车,
B: 选手选择第二扇门,第二扇门是车,
C: 选手选择第二扇门,第三扇门是车,
D: 主持人打开第一扇门
根据语义我们可以列出概率公式
P ( D ∣ A ) = 0 P ( D ∣ B ) = 1 / 2 P ( D ∣ C ) = 1 \begin{aligned} P(D|A)=0 P(D|B)=1/2 P(D|C)=1 \end{aligned} P(DA)=0P(DB)=1/2P(DC)=1
根据贝叶斯公式: P ( D ) = P ( A ) P ( D ∣ A ) + P ( B ) P ( D ∣ B ) + P ( C ) P ( D ∣ C ) = 1 / 2 P ( C ∣ D ) = P ( C ) P ( D ∣ C ) / P ( D ) = 2 / 3 P ( B ∣ D ) = P ( B ) P ( D ∣ B ) / P ( D ) = 1 / 3 \begin{aligned} &\text{根据贝叶斯公式:}\\ &P(D)=P(A) P(D \mid A)+P(B) P(D \mid B)+P(C) P(D \mid C)=1 / 2 \\ &P(C \mid D)=P(C) P(D \mid C) / P(D)=2 / 3 \\ &P(B \mid D)=P(B) P(D \mid B) / P(D)=1 / 3 \end{aligned} 根据贝叶斯公式:P(D)=P(A)P(DA)+P(B)P(DB)+P(C)P(DC)=1/2P(CD)=P(C)P(DC)/P(D)=2/3P(BD)=P(B)P(DB)/P(D)=1/3

import random
class MontyHall:
  def __init__(self,n): #构造函数
	self.n=n#试验的次数
	self.change=0#记录换才能拿到车的次数
	sellf.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.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()  

一维随机变量

随机变量分为离散的和连续的
计算一个由随机变量表示的随机事件的概率的思路有两种:直接计算法(利用分布函数计算)间接计算法(利用密度函数计算)

F ( x ) = P ( X ⩽ x ) F(x)=P(X \leqslant x) F(x)=P(Xx)

0 ⩽ F ( x ) ⩽ 1 0 \leqslant F(x) \leqslant 1 0F(x)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+ "是必然事件。

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)

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)

利用密度函数计算某个区域内的概率

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

离散型 :
分布列

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)

连续型:
exp:
柯西分布的密度函数,对分布函数求导
在这里插入图片描述

## 已知柯西分布的密度函数求分布函数
from sympy import *
x = symbols('x')
p_x = 1/pi*(1/(1+x**2))
integrate(p_x,(x,-∞,x))
#积分 从负无穷到x

在这里插入图片描述

from sympy import *
x = symbols('x')
f_x = 1/pi*(atan(x)+pi/2)
diff(f_x,x,1)
#求导

均匀分布:

密度函数为
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

exp:


a = float(0)
b = float(1)
#numpy.linspace()函数用于在线性空间中以均匀步长生成数字序列
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()

在这里插入图片描述

指数分布

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

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('指数分布')
plt.show()

在这里插入图片描述

高斯分布

在这里插入图片描述

from sympy import *
from sympy.abc import mu,sigma
x = symbols('X')
p_x = 1/(sqer(2*pi)*sigma)*E**(-(x-mu)**2/(2*sigma**2))
integrate(p_x,(x,-,x))

在这里插入图片描述

import math
mu = float(0)
mul = 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()

改变mu

在这里插入图片描述
在这里插入图片描述
改变σ

在这里插入图片描述

指数分布计算

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表示求密度函数值
 # cdf表示求分布函数值
plt.xlabel("X")
plt.ylabel("p (x)")
plt.legend()
#plt.legend创建图例
plt.show()

在这里插入图片描述
在这里插入图片描述
(1)0-1分布
在这里插入图片描述
在这里插入图片描述

(2)二项分布

在这里插入图片描述
(3)泊松分布
在这里插入图片描述

泊松分布计算

# 对比不同的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()

plt.scatter散点图
axvline函数作用是绘制一条跨越整个子图的垂直线
ylim设置或查询 y 坐标轴范围

from scipy.stats import binom
#scipy.stats包中的binom类对象是表示二项分布的。
n = 10
p = 0.5
x = np.arange(1,n+1,1)
pList = binom.pmf(x,n,p)
#stats.binom.pmf(X,n,p) 用于求概率密度
plt.plot(x,pList,marker='o',alpha = 0.7,linestyle = 'None')

plt.vlines(x, 0, pList)
#绘制数据集
plt.xlabel('随机变量:抛硬币10次')
plt.ylabel('概率')
plt.title('二项分布:n=%d,p=%0.2f' % (n,p))
plt.show()

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

(1)数学期望
分布的位置特征数
离散随机变量:
在这里插入图片描述
连续随机变量:
如果积分有限:

在这里插入图片描述


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

在这里插入图片描述
(2)标准差与方差
反应随机变量的波动大小

方差
在这里插入图片描述
离散型:
在这里插入图片描述
连续型:
在这里插入图片描述

标准差
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

scipy计算常见分布的均值与方差

# 使用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()))

(3)分位数与中位数
累计概率等于p所对应的随机变量取值x为p分位数
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 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时的分位数点
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
在这里插入图片描述
中位数和均值可以综合说明数据的分布
均值会受到极端数据的影响

使用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))

多维随机变量及其联合分布、边际分布、条件分布

(1)n维随机变量
在这里插入图片描述
(1.1)n维随机变量的联合分布函数
在这里插入图片描述
(1.2)n维随机变量的联合密度函数
在这里插入图片描述
在这里插入图片描述

(1.3)多维离散随机变量联合分布列

在这里插入图片描述

# 绘制二维正态分布的联合概率密度曲面图
from scipy.stats import multivariate_normal
from mpl_toolkits.mplot3d import axes3d
# mpl_toolkits.mplot3d画三维图的工具包
x, y = np.mgrid[-5:5:.01, -5:5:.01]  # 返回多维结构
#mgrid用法:返回多维结构
pos = np.dstack((x, y))
#自 x和 y都是二维的,np.dstack通过插入大小为 1 的第三个维度来扩展它们
rv = multivariate_normal([0.5, -0.2], [[2.0, 0.3], [0.3, 0.5]])
# multivariate_normal从多元正态分布中随机抽取样本 的函数
z = rv.pdf(pos)
# pdf求密度函数值
plt.figure('Surface', facecolor='lightgray',figsize=(12,8))
ax = plt.axes(projection='3d')
ax.set_xlabel('X', fontsize=14)
ax.set_ylabel('Y', fontsize=14)
ax.set_zlabel('P (X,Y)', fontsize=14)
ax.plot_surface(x, y, z, rstride=50, cstride=50, cmap='jet')
plt.show()
# 绘制二维正态分布的联合概率密度等高线图
from scipy.stats import multivariate_normal
x, y = np.mgrid[-1:1:.01, -1:1:.01]
pos = np.dstack((x, y))
rv = multivariate_normal([0.5, -0.2], [[2.0, 0.3], [0.3, 0.5]])
z = rv.pdf(pos)
fig = plt.figure(figsize=(8,6))
ax2 = fig.add_subplot(111)
ax2.set_xlabel('X', fontsize=14)
ax2.set_ylabel('Y', fontsize=14)
ax2.contourf(x, y, z, rstride=50, cstride=50, cmap='jet')
plt.show()

(2.1)边际分布函数:
lim ⁡ y → ∞ F ( x , y ) = P ( X ⩽ x , Y < ∞ ) = P ( X ⩽ x ) , \lim _{y \rightarrow \infty} F(x, y)=P(X \leqslant x, Y<\infty)=P(X \leqslant x), ylimF(x,y)=P(Xx,Y<)=P(Xx),

(2.2)边际密度函数

F X ( x ) = F ( x , ∞ ) = ∫ − ∞ x ( ∫ − ∞ ∞ p ( u , v ) d v ) d u = ∫ − ∞ x p X ( u ) d u F Y ( y ) = F ( ∞ , y ) = ∫ − ∞ y ( ∫ − ∞ ∞ p ( u , v ) d u ) d v = ∫ − ∞ y p Y ( v ) d v \begin{aligned} &F_{X}(x)=F(x, \infty)=\int_{-\infty}^{x}\left(\int_{-\infty}^{\infty} p(u, v) \mathrm{d} v\right) \mathrm{d} u=\int_{-\infty}^{x} p_{X}(u) \mathrm{d} u \\ &F_{Y}(y)=F(\infty, y)=\int_{-\infty}^{y}\left(\int_{-\infty}^{\infty} p(u, v) \mathrm{d} u\right) \mathrm{d} v=\int_{-\infty}^{y} p_{Y}(v) \mathrm{d} v \end{aligned} FX(x)=F(x,)=x(p(u,v)dv)du=xpX(u)duFY(y)=F(,y)=y(p(u,v)du)dv=ypY(v)dv
在这里插入图片描述

# 求边际密度函数 p_{X}(x)
from sympy import *
x = symbols('x')
y = symbols('y')
p_xy = Piecewise((1,And(x>0,x<1,y<x,y>-x)),(0,True))
integrate(p_xy, (y, -oo, oo))   ## 由于0<x<1时候,那么x>-x,即2x

# 求边际密度函数 p_{Y}(y)
integrate(p_xy, (x, -oo, oo))   ## 由于|y|<x,0<x<1时,因此y肯定在(-1,1)

(2.3)边际分布列
x的边际分布列
∑ j = 1 ∞ P ( X = x i , Y = y j ) = P ( X = x i ) , i = 1 , 2 , ⋯ \sum_{j=1}^{\infty} P\left(X=x_{i}, Y=y_{j}\right)=P\left(X=x_{i}\right), \quad i=1,2, \cdots j=1P(X=xi,Y=yj)=P(X=xi),i=1,2,

y 的边际分布列。
∑ i = 1 ∞ P ( X = x i , Y = y j ) = P ( Y = y j ) , j = 1 , 2 , ⋯ \sum_{i=1}^{\infty} P\left(X=x_{i}, Y=y_{j}\right)=P\left(Y=y_{j}\right), \quad j=1,2, \cdots i=1P(X=xi,Y=yj)=P(Y=yj),j=1,2,
(3)条件分布
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

# 求际密度函数 p_{Y}(y)
from sympy import *
from sympy.abc import lamda,m,p,k
x = symbols('x')
y = symbols('y')
f_p = lamda**m/factorial(m)*E**(-lamda)*factorial(m)/(factorial(k)*factorial(m-k))*p**k*(1-p)**(m-k)
summation(f_p, (m, k, +oo))

(3.1)连续场合的全概率公式与贝叶斯公式

在这里插入图片描述

多维随机变量的数字特征:期望向量、协方差与协方差矩阵、相关系数与相关系数矩阵、条件期望

(1)期望向量
n n n 维随机向量为 X = ( X 1 , X 2 , ⋯   , X n ) ′ \boldsymbol{X}=\left(X_{1}, X_{2}, \cdots, X_{n}\right)^{\prime} X=(X1,X2,,Xn)每个分量的数学期望都存在

数学期望向量(一般为列向量)

E ( X ) = ( E ( X 1 ) , E ( X 2 ) , ⋯   , E ( X n ) ) ′ E(\boldsymbol{X})=\left(E\left(X_{1}\right), E\left(X_{2}\right), \cdots, E\left(X_{n}\right)\right)^{\prime} E(X)=(E(X1),E(X2),,E(Xn))
(2)协方差与协方差矩阵:
(2.1)协方差:
Cov ⁡ ( X , Y ) = E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] \operatorname{Cov}(X, Y)=E[(X-E(X))(Y-E(Y))] Cov(X,Y)=E[(XE(X))(YE(Y))]
Cov ⁡ ( X , Y ) = E ( X Y ) − E ( X ) E ( Y ) \operatorname{Cov}(X, Y)=E(X Y)-E(X) E(Y) Cov(X,Y)=E(XY)E(X)E(Y)

Cov ⁡ ( X , Y ) > 0 \operatorname{Cov}(X, Y)>0 Cov(X,Y)>0 时, 称 X X X Y Y Y 正相关

Cov ⁡ ( X , Y ) < 0 \operatorname{Cov}(X, Y)<0 Cov(X,Y)<0 时, 称 X X X Y Y Y 负相关

Cov ⁡ ( X , Y ) = 0 \operatorname{Cov}(X, Y)=0 Cov(X,Y)=0 时,称 X X X Y Y Y 不相关

若随机变量 X X X Y Y Y 相互独立, 则 Cov ⁡ ( X , Y ) = 0 \operatorname{Cov}(X, Y)=0 Cov(X,Y)=0
Cov ⁡ ( X , Y ) = Cov ⁡ ( Y , X ) . \operatorname{Cov}(X, Y)=\operatorname{Cov}(Y, X) . Cov(X,Y)=Cov(Y,X).
Cov ⁡ ( X , a ) = 0 \operatorname{Cov}(X, a)=0 Cov(X,a)=0
Cov ⁡ ( a X , b Y ) = a b Cov ⁡ ( X , Y ) . \operatorname{Cov}(a X, b Y)=a b \operatorname{Cov}(X, Y) . Cov(aX,bY)=abCov(X,Y).
Cov ⁡ ( X + Y , Z ) = Cov ⁡ ( X , Z ) + Cov ⁡ ( Y , Z ) \operatorname{Cov}(X+Y, Z)=\operatorname{Cov}(X, Z)+\operatorname{Cov}(Y, Z) Cov(X+Y,Z)=Cov(X,Z)+Cov(Y,Z)

对任意二维随机变量 ( X , Y ) (X, Y) (X,Y), 有
Var ⁡ ( X ± Y ) = Var ⁡ ( X ) + Var ⁡ ( Y ) ± 2 Cov ⁡ ( X , Y ) \operatorname{Var}(X \pm Y)=\operatorname{Var}(X)+\operatorname{Var}(Y) \pm 2 \operatorname{Cov}(X, Y) Var(X±Y)=Var(X)+Var(Y)±2Cov(X,Y)

exp:
p ( x , y ) = { 3 x , 0 < y < x < 1 , 0 ,  其他.  p(x, y)= \begin{cases}3 x, & 0<y<x<1, \\ 0, & \text { 其他. }\end{cases} p(x,y)={3x,0,0<y<x<1, 其他
Cov ⁡ ( X , Y ) \operatorname{Cov}(X, Y) Cov(X,Y)

# 求协方差
from sympy import *
from sympy.abc import lamda,m,p,k
x = symbols('x')
y = symbols('y')
p_xy = Piecewise((3*x,And(y>0,y<x,x<1)),(0,True))
E_xy = integrate(x*y*p_xy, (x, -oo, oo),(y,-oo,oo))
E_x = integrate(x*p_xy, (x, -oo, oo),(y,-oo,oo))
E_y = integrate(y*p_xy, (x, -oo, oo),(y,-oo,oo))
E_xy - E_x*E_y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概率论与数理统计是数学中的两个重要分支,它们主要研究随机现象和数据分析。概率论研究随机事件发生的概率以及随机变量的性质和分布规律。而数理统计则是通过收集、整理和分析数据来推断总体的特征和进行决策。在概率论中,正态分布是一种常见的概率分布,它以均值μ为对称轴,具有集中趋势和离散程度的特征。正态分布的形状由标准差σ来描述,σ越大,数据分布越分散,σ越小,数据分布越集中。正态分布的"3σ"原则认为,在实际问题中,X落在(μ-3σ,μ+3σ)以外的概率很小,可以认为相应的事件是不会发生的。\[1\] 另外,数理统计中还有其他的分布,比如均匀分布和指数分布。均匀分布是指在一个区间内,各个取值的概率是相等的。指数分布是一种连续概率分布,具有右偏的特征,其概率密度函数随着变量的增大而逐渐递减。指数分布的期望值和方差分别为1/λ和1/λ²,其中λ为单位时间事件发生的次数。\[2\] 在数理统计中,对于多个样本均数的比较,常采用方差分析方法。方差分析可以将总变异分解为组间变异和组内变异,用于比较多个样本总体均数是否相等。如果拒绝了检验假设,说明多个样本总体均数不相等或不全等。如果需要进一步比较各组均数之间的差异,可以进行多个样本均数的两两比较。\[3\] 综上所述,概率论与数理统计是研究随机现象和数据分析的重要工具,通过概率分布和统计方法可以对随机事件和数据进行分析和推断。 #### 引用[.reference_title] - *1* *2* *3* [统计基础之概率论与数理统计(完结)](https://blog.csdn.net/weixin_44198415/article/details/89291541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值