返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用Python探索变量的概率分布
  • 713
分享到

如何使用Python探索变量的概率分布

2023-06-02 05:06:36 713人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“如何使用python探索变量的概率分布”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简短的背景介绍首先,正态分布又名高斯分布

本篇内容介绍了“如何使用python探索变量的概率分布”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

简短的背景介绍

  1. 首先,正态分布又名高斯分布

  2. 它以数学天才 Carl Friedrich Gauss 命名

正态分布又名高斯分布

3 . 越简单的模型越是常用,因为它们能够被很好的解释和理解。正态分布非常简单,这就是它是如此的常用的原因。

因此,理解正态分布非常有必要。

什么是概率分布?

首先介绍一下相关概念。

考虑一个预测模型,该模型可以是我们的数据科学研究中的一个组件。

  • 如果我们想精确预测一个变量的值,那么我们首先要做的就是理解该变量的潜在特性。

  • 首先我们要知道该变量的可能取值,还要知道这些值是连续的还是离散的。简单来讲,如果我们要预测一个的取值,那么第一步就是明白它的取值是1 到 6(离散)。

  • 第二步就是确定每个可能取值(事件)发生的概率。如果某个取值永远都不会出现,那么该值的概率就是 0 。

事件的概率越大,该事件越容易出现。
  • 在实际操作中,我们可以大量重复进行某个实验,并记录该实验对应的输出变量的结果。

  • 我们可以将这些取值分为不同的集合类,在每一类中,我们记录属于该类结果的次数。例如,我们可以投10000次,每次都有6种可能的取值,我们可以将类别数设为6,然后我们就可以开始对每一类出现的次数进行计数了。

  • 我们可以画出上述结果的曲线,该曲线就是概率分布曲线。目标变量每个取值的可能性就由其概率分布决定。

  • 一旦我们知道了变量的概率分布,我们就可以开始估计事件出现的概率了,我们甚至可以使用一些概率公式。至此,我们就可更好的理解变量的特性了。概率分布取决于样本的一些特征,例如平均值,标准偏差,偏度和峰度。

  • 如果将所有概率值求和,那么求和结果将会是100%

世界上存在着很多不同的概率分布,而最广泛使用的就是正态分布了。

初遇正态分布

我们可以画出正态分布的概率分布曲线,可以看到该曲线是一个钟型的曲线。如果变量的均值,模和中值相等,那么该变量就呈现正态分布。

如下图所示,为正态分布的概率分布曲线:

如何使用Python探索变量的概率分布

理解和估计变量的概率分布非常重要。

下面列出的变量的分布都比较接近正态分布:

  1. 人群的身高

  2. 成年人的血压

  3. 传播中的粒子的位置

  4. 测量误差

  5. 回归中的残差

  6. 人群的鞋码

  7. 一天中雇员回家的总耗时

  8. 教育指标

此外,生活中有大量的变量都是具有 x % 置信度的正态变量,其中,x<100。

什么是正态分布?

正态分布只依赖于数据集的两个特征:样本的均值和方差。

均值——样本所有取值的平均

方差——该指标衡量了样本总体偏离均值的程度

正态分布的这种统计特性使得问题变得异常简单,任何具有正态分布的变量,都可以进行高精度分预测。

值得注意的是,大自然中发现的变量,大多近似服从正态分布。

正态分布很容易解释,这是因为:

  1. 正态分布的均值,模和中位数是相等的。

  2. 我们只需要用均值和标准差就能解释整个分布。

正态分布是我们熟悉的正常行为

为何如此多的变量都大致服从正态分布?

这个现象可以由如下定理理解释:当在大量随机变量上重复很多次实验时,它们的分布总和将非常接近正态分布。

由于人的身高是一个随机变量,并且基于其他随机变量,例如一个人消耗的营养量,他们所处的环境,他们的遗传等等,这些变量的分布总和最终是非常接近正态的。

这就是中心极限定理。

本文的核心:

我们从上文的分析得出,正态分布是许多随机分布的总和。 如果我们绘制正态分布密度函数,那么它的曲线将具有以下特征:

如何使用Python探索变量的概率分布

如上图所示,该钟形曲线有均值为 100,标准差为1:

  • 均值是曲线的中心。 这是曲线的最高点,因为大多数点都是均值。

  • 曲线两侧的点数相等。 曲线的中心具有最多的点数。

  • 曲线下的总面积是变量所有取值的总概率。

  • 因此总曲线面积为 100%

如何使用Python探索变量的概率分布

更进一步,如上图所示:

  • 约 68.2% 的点在 -1 到 1 个标准偏差范围内。

  • 约 95.5% 的点在 -2 到 2 个标准偏差范围内。

  • 约 99.7% 的点在 -3 至 3 个标准偏差范围内。

这使我们可以轻松估计变量的变化性,并给出相应置信水平,它的可能取值是多少。例如,在上面的灰色钟形曲线中,变量值在 99-101 之间的可能性为 68.2%。

正态概率分布函数

概率密度函数的形式如下:

如何使用Python探索变量的概率分布

概率密度函数基本上可以看作是连续随机变量取值的概率。

正态分布是钟形曲线,其中mean = mode = median。
  • 如果使用概率密度函数绘制变量的概率分布曲线,则给定范围的曲线下的面积,表示目标变量在该范围内取值的概率。

  • 概率分布曲线基于概率分布函数,而概率分布函数本身是根据诸如平均值或标准差等多个参数计算的。

  • 我们可以使用概率分布函数来查找随机变量取值范围内的值的相对概率。 例如,我们可以记录股票的每日收益,将它们分组到适当的集合类中,然后计算股票在未来获得20-40%收益的概率。

标准差越大,样品中的变化性越大。

如何使用 Python 探索变量的概率分布

最简单的方法是加载 data frame 中的所有特征,然后运行以下脚本(使用pandas 库):

DataFrame.hist(bins=10)#Make a histogram of the DataFrame.

该函数向我们展示了所有变量的概率分布。

变量服从正态分布意味着什么?

如果我们将大量具有不同分布的随机变量加起来,所得到的新变量将最终具有正态分布。这就是前文所述的中心极限定理。

服从正态分布的变量总是服从正态分布。 例如,假设 A 和 B 是两个具有正态分布的变量,那么:

• A x B 是正态分布

• A + B 是正态分布

因此,使用正态分布,预测变量并在一定范围内找到它的概率会变得非常简单。

样本不服从正态分布怎么办?

我们可以将变量的分布转换为正态分布。

我们有多种方法将非正态分布转化为正态分布:

线性变换

一旦我们收集到变量的样本数据,我们就可以对样本进行线性变化,并计算Z得分:

  1. 计算平均值

  2. 计算标准偏差

  3. 对于每个 x,使用以下方法计算 Z:

如何使用Python探索变量的概率分布

使用 Boxcox 变换

我们可以使用 SciPy 包将数据转换为正态分布:

scipy.stats.boxcox(x, lmbda=None, alpha=None)

使用 Yeo-Johnson 变换

另外,我们可以使用 yeo-johnson 变换。 Python 的 sci-kit learn 库提供了相应的功能:

sklearn.preprocessing.PowerTransfORMer(method=’yeojohnson’,standardize=True, copy=True)

正态分布的问题

由于正态分布简单且易于理解,因此它也在预测研究中被过度使用。 假设变量服从正态分布会有一些显而易见的缺陷。 例如,我们不能假设股票价格服从正态分布,因为价格不能为负。 因此,我们可以假设股票价格服从对数正态分布,以确保它永远不会低于零。

我们知道股票收益可能是负数,因此收益可以假设服从正态分布。

假设变量服从正态分布而不进行任何分析是愚蠢的。

变量可以服从Poisson,Student-t 或 Binomial 分布,盲目地假设变量服从正态分布可能导致不准确的结果。

“如何使用Python探索变量的概率分布”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何使用Python探索变量的概率分布

本文链接: https://lsjlt.com/news/228955.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Python探索变量的概率分布
    本篇内容介绍了“如何使用Python探索变量的概率分布”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简短的背景介绍首先,正态分布又名高斯分布...
    99+
    2023-06-02
  • Python如何实现随机采样及概率分布
    这篇文章主要介绍了Python如何实现随机采样及概率分布,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 二项(binomial)/伯努利(Bernoulli)分布1.1 ...
    99+
    2023-06-22
  • Python如何绘制概率分布直方图浅析
    目录前言一、代码二、运行效果总结前言 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱。大家平时可能见到最多就是 matplotlib,seaborn...
    99+
    2024-04-02
  • 如何用matlab画出概率密度分布图
    要使用MATLAB绘制概率密度分布图,需要先确定要绘制的概率密度函数的数学表达式或数据。以下是一种常见的绘制概率密度分布图的方法:1...
    99+
    2023-09-12
    matlab
  • Python中如何实现随机采样和概率分布
    这篇文章主要介绍了Python中如何实现随机采样和概率分布,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Python(包括其包Numpy)中包含了了许多概率算法,...
    99+
    2023-06-21
  • 探索VUE Nuxt.js布局的妙用,提升开发效率和应用质量
    Vue Nuxt.js 是一个流行的用于构建 Vue.js 应用程序的框架。它提供了一系列开箱即用的特性,包括布局功能。布局功能允许开发人员创建可重用的组件,这些组件可以在应用程序的不同页面中使用。这可以帮助提高开发效率和应用质量。 布...
    99+
    2024-02-23
    Vue Nuxt.js 布局 组件 重用 一致性
  • 如何使用C++中的概率函数?
    如何使用C++中的概率函数?概率函数在数据科学和统计学中起着非常重要的作用。在C++编程语言中,我们可以使用其标准库中的函数来实现各种概率计算。本文将介绍如何使用C++中的概率函数来进行常见的概率计算。C++的标准库中提供了一个名为 "cm...
    99+
    2023-11-18
    C++概率函数 使用C++概率函数 C++中的概率函数
  • Python中变量的作用域如何使用
    前言变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,再访问时就会出现错误。在程序中,一般会根据变量的 “有效范围” 将变量分为 “全局变量” 和 “局部变量”。一、局部变量局部变量是指在函数内部定义并使用的变量,它只在函数内部...
    99+
    2023-05-14
    Python
  • Python中如何使用函数变量
    这篇文章给大家介绍Python中如何使用函数变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python函数变量如何工作在函数中,我们***次使用x的值的时候,Python使用函数声明的形参的值。接下来,我们把值2赋...
    99+
    2023-06-17
  • python如何使用Dims作为变量
    这篇文章主要为大家展示了“python如何使用Dims作为变量”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用Dims作为变量”这篇文章吧。Dims作为变量在大多数语言中,为了...
    99+
    2023-06-27
  • python变量在作用域如何使用
    这篇文章主要介绍“python变量在作用域如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python变量在作用域如何使用”文章能帮助大家解决问题。1、全局作用域变量在局部作用域未定义(赋值或...
    99+
    2023-06-30
  • 如何使用JScript的变量
    这篇文章主要为大家展示了“如何使用JScript的变量”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用JScript的变量”这篇文章吧。任何编程语言中,用一块数据量化一个概念。  在 Js...
    99+
    2023-06-03
  • Python中如何使用中文变量名
    这期内容当中小编将会给大家带来有关Python中如何使用中文变量名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python3.x 已经支持全面 Unicode 编码,比如支持使用中文作为变量名。>...
    99+
    2023-06-15
  • Redisson分布式信号量RSemaphore如何使用
    本文小编为大家详细介绍“Redisson分布式信号量RSemaphore如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redisson分布式信号量RSemaphore如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-05
  • 分布式索引如何帮助Python数组处理海量数据?
    在现代数据处理中,海量数据的处理已经成为了一项非常关键的任务。而Python语言作为一种广泛使用的编程语言,自然也需要一些高效的工具来处理大规模数据。这时候,分布式索引就成为了一个非常有用的工具。 在本文中,我们将探讨分布式索引如何帮助P...
    99+
    2023-10-08
    数组 分布式 索引
  • python如何实现变量的多重分配
    这篇文章将为大家详细讲解有关python如何实现变量的多重分配,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。变量的多重分配Python允许我们在一行中为多个变量分配值。 可以使用逗号分隔变量。 一线多任务...
    99+
    2023-06-27
  • 如何使用C++的C++变量
    本篇内容介绍了“如何使用C++的C++变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!变量是程序中数据的临时存放场所。在代码中可以只使用一...
    99+
    2023-06-17
  • 如何在python中使用卡方分布
    本篇文章为大家展示了如何在python中使用卡方分布,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网...
    99+
    2023-06-14
  • 如何在python中使用变量和列表
    如何在python中使用变量和列表?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面...
    99+
    2023-06-14
  • IDE中的Python NumPy:如何提高分布式计算效率?
    Python NumPy是一个用于数值计算的Python库,它提供了高效的多维数组操作功能,并且拥有丰富的数学函数库。作为一个广泛应用于科学计算和数据分析领域的工具,Python NumPy在分布式计算方面也有着重要的作用。 在分布式计算中...
    99+
    2023-10-30
    numpy 分布式 ide
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作