20 | 概率基础(上):一篇文章帮你理解随机变量、概率分布和期望值

相信你对变量这个概念并不陌生,数学方程式和编程代码里经常会用到变量。那什么是变量呢?我们在概率中常说的随机变量( random variable)和普通的变量(variable)又有什么不同呢?

这些问题其实很简单,一说你就明白了。

在没有发生运算之前,普通变量的值并不会发生变化,也就是说,它可以取不同的值,但是一旦取值确定之后,它总会是一个固定的值,除非有新的运算操作。

而随机变量的值并不固定,比如说,某个随机变量可能有 10% 的概率等于 10,有 20% 的概率等于 5,有 30% 的概率等于 28 等等。

我们上节说了,随机变量根据其取值是否连续,可分为离散型随机变量和连续型随机变量。举几个例子,抛硬币出现正反面的次数以及每周下雨的天数,都是离散的值,所以对应的随机变量为离散型。而汽车每小时行驶的速度和银行排队的时间,都是连续的值,对应的随机变量为连续型。

从计算的角度来说就是,我们可以直接求和得出的,就是“离散的”,需要用积分计算的,就是“连续的”。

而随机变量的取值对应了随机现象的一种结果。正是结果的不确定性,才导致了随机变量取值的不确定性,于是我们就引入了概率。我们可以说,每种值是以一定的概率出现的。

概率分布

随机变量的每种取值的出现都遵循一定的可能性,把这个可能性用具体的数值表示出来就是概率。如果将随机变量所有可能出现的值,及其对应的概率都罗列出来,我们就能获得这个变量的概率分布。

我们拿最简单的抛硬币事件来看。从理论上说来,出现正面和反面的概率都是 50%(我们假设不存在硬币站立的情况)。

我们可以通过一小段 Python 代码,做个模拟实验,验证一下这个分布。

import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def flip_coin(times):
  data_array = np.empty(times)
  weights_array = np.empty(times)
  weights_array.fill(1 / times)

  for i in range(0, times):                       #抛times次的硬币
    data_array[i] = random.randint(0, 1)        #假设0表示正面,1表示反面

  data_frame = pd.DataFrame(data_array)
  data_frame.plot(kind = 'hist', legend = False)  #获取正反面统计次数的直方图
  data_frame.plot(kind = 'hist', legend = False, weights = weights_array).set_ylabel("Probability")  #获取正反面统计概率的直方图
  plt.show()

flip_coin(10)

该代码随机生成若干次的 0 或 1(0 表示硬币正面朝上,1 表示硬币反面朝上)。下表是生成 10 次的结果,其中正面 4 次,反面 6 次。

对应的正反面次数和概率直方图如下,而概率的直方图就表示了其概率分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值