概率论08 随机变量的函数
时间:2022-04-22
本文章向大家介绍概率论08 随机变量的函数,主要内容包括随机变量的函数、获得新概率分布的基本方法、多变量函数的通用公式、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
随机变量的函数
在前面的文章中,我先将概率值分配给各个事件,得到事件的概率分布。
通过事件与随机变量的映射,让事件“数值化”,事件的概率值转移到随机变量上,获得随机变量的概率分布。
我们使用随机变量的函数,来定制新的随机变量。随机变量的函数是从旧有的随机变量到一个新随机变量的映射。通过函数的映射功能,原有随机变量对应新的随机变量。通过原有随机变量的概率分布,我们可以获知新随机变量的概率分布。事件,随机变量,随机变量函数的关系如下:
一个简单的例子是掷硬币。出现正面的话,我赢1个筹码,负面的话,我输1个筹码。那么,投掷一次,赢的筹码数是一个随机变量X,X可能取值为1和-1。因此X的分布为:
换一个角度来思考,我们将正负面“换算”成输赢的钱。如果一个筹码需要10元钱买,那么投掷一次硬币,赢的钱是一个随机变量Y,且 Y = 10X 。Y的分布为:
Y实际上是随机变量X的一个函数。X的1对应Y的10,X的-1对应Y的-10。即[Y = 10X ]
小总结,在上面的实验中,硬币为正面为一个事件。赢得的筹码数为一个随机变量X。赢得的钱是X的函数Y,它也是一个随机变量。
随机变量的函数还可以是多变量函数,Y = g(X_1, X_2, ..., X_n)。Y的值y对应的是多维空间的点(x_1, x_2,..., x_n)。比如掷硬币,第一次赢的筹码为X_1,第二次赢的筹码为X_1。我们可以构成一个新的随机变量Y = X_1 + X_2,即两次赢得的筹码的总和。
获得新概率分布的基本方法
绘制密度函数
import numpy as np
import matplotlib.pyplot as plt
pi = np.pi
x = np.linspace(-10, 10, 200)
y = np.linspace(0.1, 10, 100)
fx = 1/np.sqrt(2*pi)*np.exp(-x**2/2)
fy = 1/np.sqrt(2*pi)*(y**(-1/2))*np.exp(-y/2)
plt.plot(x, fx, color = "red", label="X distribution")
plt.plot(y, fy, label="Y distribution")
plt.title("Y = X*X")
plt.xlabel("RV")
plt.ylabel("pdf")
plt.legend()
plt.show()
代码如下:
# By Vamei
import numpy as np
import scipy.integrate
import matplotlib.pyplot as plt
pi = np.pi
'''
core of the integral
'''
def int_core(y):
f = lambda x: 1.0/(2*pi)*np.exp(-0.5*(x**2 + (y-x)**2))
return f
'''
calculate f(y)
'''
def density(y):
rlt = scipy.integrate.quad(int_core(y), -np.inf, np.inf)
return rlt[0]
# get distribution
y = np.linspace(-10, 10, 100)
fy = map(density, y)
plt.plot(y, fy)
plt.title("PDF of X1+X2")
plt.ylabel("f(y)")
plt.xlabel("y")
plt.show()
多变量函数的通用公式
总结
通过随机变量的函数,我们可以利用已知随机变量,创建新的随机变量,并获得其分布。
- PHP实用功能——modern PHP读书笔记(一)
- ModernPHP读书笔记(二) ——PHP开发标准
- iBatis.Net(6):Data Map(深入)
- iBatis.Net(5):Data Map(了解)
- ModernPHP读书笔记(三)——PHP的良好实践
- PHP开发过程的那些坑(一) ——对象拷贝
- PHP开发过程的那些坑(二) ——PHP empty函数
- Thinking in SQL系列之数据挖掘Apriori关联分析再现啤酒尿布神话
- PHP开发过程的那些坑(三) ——PHParray_shift函数
- CSS3弹性盒布局
- iBatis.Net(4):DataMapper API
- PHP开发过程的那些坑(四) ——PDO bindParam函数
- iBatis.Net(3):创建SqlMapper实例
- PHP开发过程的那些坑(五) ——PHP的empty()
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法