基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)

这篇具有很好参考价值的文章主要介绍了基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 前言

2. 均匀分布 Uniform Distribution

2.1 统计特征

2.2 概率密度函数

2.3 随机采样实验

2.4 其它常用函数


1. 前言

        本系列借助scipy.stats模块对机器学习中常用的概率统计基础知识进行基于实验的学习。

        这第一篇先从最简单的均匀分布(uniform distribution)。

        以下的代码示例假定在Jupyter notebook中运行,并且缺省地先进行了以下必要的包的导入。

import random
import numpy as np
%matplotlib inline
from matplotlib import pyplot as plt

2. 均匀分布 Uniform Distribution

        均匀分布可能是最简单的分布之一了。

        连续均匀分布的概率密度函数(pdf: probability density function)如下所示:

基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)

         对于遵循离散均匀分布的随机变量X来说有K个取值,每种取值的概率相等,均为1/K,即:

2.1 统计特征

        机器学习中最常用的随机变量的统计特征为均值(mean, 一阶原点矩),方差(variance, 二阶中心矩, 方差的平方根称为标准差:standard deviation),偏度(skewness, 三阶中心矩,也称倾斜度),峰度(kurtosis, 四阶中心矩)。

        对于标准的连续均匀分布(对应于以上定义式中a = 0, b = 1),这4个常用统计特征定义分别为:

        用以下代码来看看标准的连续均匀分布的统计特征与以上理论值是否吻合:

from scipy.stats import uniform
mean, var, skew, kurt = uniform.stats(moments='mvsk')
print(mean, var, skew, kurt)

         输出结果:0.5 0.08333333333333333 0.0 -1.2

        前三个是吻合的,然而第4个(Kurtosis)是"-1.2"。。。有点方,发生了什么?让我品一品^-^

        非标准的连续均匀分布是什么情况呢?

rv_uniform = uniform(10,40)
mean, var, skew, kurt = rv_uniform.stats(moments='mvsk')
print(mean, var, skew, kurt)

       输出结果:30.0 133.33333333333331 0.0 -1.2

        均值和方差随(a,b)变化而变化,Skewness总是等于0,这个符合预期。Kurtosis仍然是"-1.2",问题同上。。。有没有人能告诉我为什么,在线等^-^

        [2021-10-13] 

        scipy.stats中的Kurtosis是采用以下定义(至于为什么这样的定义另文解释):

        对于标准的区间[0,1]的均匀分布来说,将和代入可得:

        进一步,也可以证明确实不依赖于区间[a,b]的位置和宽度。 

2.2 概率密度函数

        以下代码中调用函数pdf()给出了三种参数条件下的连续均匀分布的概率密度曲线图。 pdf()的第一个参数指定采样点,第二个参数和三个参数用于指定区间,但是要注意其指定方式,第二个参数对应于a,而“第二个参数与第三个参数之和”对应于b。换句话说,第二个参数指定区间起点,第三个参数指定区间宽度。

x = np.linspace(-12,12,100)
plt.plot(x, uniform.pdf(x),'r-', lw=3, alpha=1.0, label='standard uniform pdf')
plt.plot(x, uniform.pdf(x,-5,10),'r-', lw=3, alpha=0.6, label='uniform[-0.5,1.5] pdf')
plt.plot(x, uniform.pdf(x,-10,20),'r-', lw=3, alpha=0.6, label='uniform[-10,10] pdf')
plt.legend()

基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)

         可以看出,在区间(a,b)范围内的概率密度值与区间(a,b)的宽度成反比,符合预期。

        当然,也可以自己写一个函数来计算这个pdf以验证理解是否正确,如下所示: 

def my_uniform_pdf(x, a, b):

    y = [1 / (b - a) if a <= val and val <= b else 0 for val in x]

    return x, y

x = np.arange(-100, 100) # define range of x
for ls in [(-50, 50), (10, 20)]:
    a, b = ls[0], ls[1]
    x, y = my_uniform_pdf(x, a, b)
    plt.plot(x, y, label=r'$a=%.2f,\ b=%.2f$' % (a, b))

plt.legend()
plt.show()

基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)

        符合预期。不过前面已经说了,均匀分布是最简单的概率分布之一,所以这个也没有什么值得骄傲的^-^。后面有些比较复杂的概率分布,要自己写代码计算概率密度函数就要费点劲了。

2.3 随机采样实验

        接下来做个随机采样实验,生成指定的概率分布的随机样本,然后对样本进行统计分析,看看它的统计特征与理论值是否吻合(当然肯定是吻合的^-^,如果有发现不吻合--比如说上面的Kurtosis--那就意味着我们的理解有误或者库函数使用方式有误。这种试错的方式正是学习正途)。

        首先,进行随机数采样。以下生成在(10,30)的均匀分布的10000个样点,调用rvs()函数生成。

# random numbers from uniform distribution
n     = 10000
start = 10
width = 20
samples_uniform = uniform.rvs(size=n, loc = start, scale=width)

         然后,画出以上随机样本数据的直方图,并且与理论上的概率密度函数放在一起进行对比。

fig, ax = plt.subplots(1, 1)
x = np.linspace(start-5,start+width+5,100)
ax.hist(samples_uniform, bins=100,density=True, histtype='stepfilled', alpha=0.2, label=r'$a=%.2f,\ b=%.2f$' % (start, start+width))
ax.plot(x, uniform.pdf(x,start,width),'r-', lw=3, alpha=0.6, label='uniform[%.2f,%.2f] pdf' % (start, start+width))
ax.legend(loc='best', frameon=False)
plt.show()

基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)

        如上所示,随机样本数据的直方图 (归一化后可以认为是概率密度函数的近似)与理论值基本吻合。当然有一定的差异的,这是由随机变量的本事属性所致,当样本数据量足够大的时候这种差异就会变得足够小。

2.4 其它常用函数

        logpdf()

        cdf(), logcdf()

        sf(), logsf(), isf()

        ppf()

        moment()

        entropy()

        fit()

        expect(), mean(), var(), std(), interval()

        暂时不再一一介绍,等用到了或者有时间了再来补充。这些函数对于所有各种分布,所以也可能再后续其它概率分布的介绍中进行穿插介绍。

        文章来源地址https://www.toymoban.com/news/detail-413270.html

        本系列计划目录:

        (1) 均匀分布

        (2) 伯努利分布:  https://blog.csdn.net/chenxy_bwave/article/details/120847774

        (3) 正态分布: https://blog.csdn.net/chenxy_bwave/article/details/121661014

        (4) 二项分布

        (5) Student-T分布

        (6) Chi-Square分布

        (7) Rayleigh/Rice分布

        (8) Beta分布

        (9) Gamma分布

        (10) 玻尔兹曼分布

        (11) 指数分布

        (12) dirichlet分布

        ......

Reference:

        [1] scipy.stats.norm — SciPy v1.7.1 Manual

        

到了这里,关于基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【scipy 基础】--统计分布

    scipy.stats 子模块包含大量的概率分布、汇总和频率统计、相关函数和统计测试、掩蔽统计、核密度估计、准蒙特卡罗功能等等。 这个子模块可以帮助我们描述和分析数据,进行假设检验和拟合统计模型等。 具体来说, scipy.stats 子模块包括以下主要功能: 类别 说明 连续统计

    2024年02月05日
    浏览(40)
  • 《概率论与数理统计》学习笔记6-样本及样本函数的分布

    目录 总体 简单随机样本 直方图 样本分布函数 样本函数及其概率分布 𝜒2分布 𝑡分布 𝐹分布         总体:                 研究对象的全体         个体:                 总体中的每一个元素         总体容量:                 总体

    2024年02月08日
    浏览(41)
  • 概率统计笔记:二维随机变量及其联合概率分布

    定义3 设 ( X , Y ) (X,Y) ( X , Y ) 为二维随机变量,对任意的 ( x , y ) ∈ R 2 (x,y)∈R^2 ( x , y ) ∈ R 2 ,称 F ( x , y ) = P ( X ≤ x , Y ≤ y ) F(x,y)=P(X≤x,Y≤y) F ( x , y ) = P ( X ≤ x , Y ≤ y ) 为随机变量 ( X , Y ) (X,Y) ( X , Y ) 的

    2023年04月08日
    浏览(42)
  • 概率统计·样本及抽样分布【随机样本、抽样分布】

    总体:试验的全部可能的观察值称为总体 个体:总体中每个可能的观察值称为个体 总体期望=样本平均期望 总体方差/n=样本平均方差 X 1 ,X 2 ……X n 相互独立(x 1 ,x 2 ……x n 是观察值),称为总体X的一个简单随机变量(样本) 联合=(全部)边缘相乘 函数表示化(不含未

    2024年02月10日
    浏览(57)
  • 统计系列(二)常见的概率分布

    伯努利分布 背景:抛一次硬币,正面朝上的概率 定义:一次试验中,只有两种结果,成功(X=1)概率为p,失败(X=0)概率为1-p。定义为伯努利试验。 数学描述 P ( X = x ) = p x ( 1 − p ) 1 − x , x ∈ { 0 , 1 } P(X=x)=p^{x}(1-p)^{1-x}, x in{0,1} P ( X = x ) = p x ( 1 − p ) 1 − x , x ∈ { 0 , 1

    2023年04月14日
    浏览(33)
  • 【概率论与数理统计】二维随机变量:分布函数(联合分布函数、边缘分布函数)、联合概率密度、边缘概率密度、联合分布律、边缘分布律

    直观理解: 联合概率密度 草帽/山峰 边缘概率密度 切一刀的山峰切面 联合分布函数 切两刀山峰体 边缘分布函数 切一刀山峰体 联合分布律 和 边缘分布律 针对离散型随机变量 二维随机变量  联合分布函数(切两刀山峰体) 边缘分布函数 (切一刀山峰体)    【连续型随

    2024年02月05日
    浏览(36)
  • 【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟

    1.通过抛硬币实验来验证频率具有稳定性。 2.学会使用Python作图。 1.复习大数定律。 2.画图显示运行结果。 利用Python编写程序,以产生一系列0和1的随机数,模拟抛硬币实验。验证抛一枚质地均匀的硬币,正面向上事件频率的稳定值为0.5。 (1)生成0和1的随机数序列,

    2024年02月08日
    浏览(50)
  • 【应用统计学】几种常见的概率分布

    两点分布 即伯努利分布,指的是对于随机变量X有, 参数为p(0p1),如果它分别以概率p和1-p取1和0为值。一次伯努利实验和抛硬币都属于两点分布。 如果随机变量X的分布率为 称这个离散型分布为参数为n,p的 二项分布 ,记作X~B(n,p)。 【例4-10】 人口普查的研究结果表明,某市有

    2024年02月06日
    浏览(44)
  • 概率论:数理统计基本概念——三大分布

    首先是X分布:    n=1的时候,f(y)就是正态分布平方的密度函数,这个可以用y=g(x)的密度函数计算方法来计算。 自由度是什么?: 很显然,几个X加起来,也就是自由度加起来:     接下来是t型分布:   这个T型分布建立在X型分布和标准正态分布上。   最后是F分布:    这

    2024年02月11日
    浏览(48)
  • 《统计学》第八版贾俊平第五章概率与概率分布

    一、考点归纳 二、练习题1写出下列随机试验的样本空间: (1)记录某班一次统计学测验的平均分数; (2)某人在公路上骑自行车,观察该骑车人在遇到第一个红灯停下来以前遇到绿灯的次数; (3)生产产品直到有10件正品为止,记录生产产品的总件数。 解:(1)平均分

    2023年04月27日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包