文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-02 05:29

关注

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

简短的背景介绍

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

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

正态分布又名高斯分布

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

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

什么是概率分布?

首先介绍一下相关概念。

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

事件的概率越大,该事件越容易出现。

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

初遇正态分布

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

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

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

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

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

  1. 人群的身高

  2. 成年人的血压

  3. 传播中的粒子的位置

  4. 测量误差

  5. 回归中的残差

  6. 人群的鞋码

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

  8. 教育指标

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

什么是正态分布?

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

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

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

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

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

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

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

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

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

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

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

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

这就是中心极限定理。

本文的核心:

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

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

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

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

更进一步,如上图所示:

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

正态概率分布函数

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

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

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

正态分布是钟形曲线,其中mean = mode = median。

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

如何使用 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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯