我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

Elasticsearch分布式搜索引擎的API使用与最佳实践(如何高效使用Elasticsearch分布式搜索引擎的API?)

Elasticsearch分布式搜索引擎API使用与最佳实践:索引设计:规范化数据并定义映射以优化索引和搜索。查询优化:使用过滤器缩小搜索范围,利用聚合进行数据分析。API使用:批量操作提高效率,异步搜索提升用户体验。其他最佳实践:使用筛选器代替查询,预计算字段,分片感知路由。这些最佳实践帮助最大化ElasticsearchAPI性能,构建高效的应用程序。
Elasticsearch分布式搜索引擎的API使用与最佳实践(如何高效使用Elasticsearch分布式搜索引擎的API?)
2024-04-02

基于Elasticsearch的分布式搜索与推荐系统的结合(如何将Elasticsearch分布式搜索与推荐系统结合使用?)

基于Elasticsearch的分布式搜索与推荐系统集成可提供无缝的搜索和推荐体验。Elasticsearch用于分布式索引和搜索,而推荐系统利用机器学习和协同过滤提供个性化内容。集成方式包括索引推荐内容、相关性排序和附加推荐功能。该集成的好处包括增强相关性、提高客户参与度和可扩展性。实施时需考虑数据建模、相关性排序和用户体验。通过结合这些技术,企业可以创建高效的分布式搜索和推荐系统。
基于Elasticsearch的分布式搜索与推荐系统的结合(如何将Elasticsearch分布式搜索与推荐系统结合使用?)
2024-04-02

Elasticsearch分布式搜索与关系型数据库的集成应用(如何将Elasticsearch分布式搜索与关系型数据库集成使用?)

Elasticsearch分布式搜索与关系型数据库集成可增强搜索能力、丰富数据、优化性能和提高灵活性。集成方法包括数据复制、同步、Join查询和混合查询。在电子商务、日志分析、客户服务和社交媒体分析等领域有广泛应用。最佳实践包括适当的数据分割、格式化、高可用性和监控。
Elasticsearch分布式搜索与关系型数据库的集成应用(如何将Elasticsearch分布式搜索与关系型数据库集成使用?)
2024-04-02

如何使用CSS Paint API动态创建与分辨率无关的可变背景效果

这篇文章给大家分享的是有关如何使用CSS Paint API动态创建与分辨率无关的可变背景效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。现代Web应用对图像的需求量很大,它们占据网络下载的大部分字节。通过优化
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录