python中直方图bins是什么意思_统计分布太难懂?Python+统计学轻松搞定4种常用分布...

- 点击上方“爱数据学习社”关注我们吧! -

80527c654437612fffc26759a5b2a66d.gif

文末领取【统计学学习导图】

本文用Python统计模拟的方法,介绍四种常用的统计分布,包括离散分布:二项分布和泊松分布,以及连续分布(指数分布、正态分布),最后查看人群的身高和体重数据所符合的分布。

# 导入相关模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline%config InlineBackend.figure_format = 'retina'
随机数

计算机发明后,便产生了一种全新的解决问题的方式:使用计算机对现实世界进行统计模拟——该方法又称为“蒙特卡洛方法(Monte Carlo method)”。

使用统计模拟,首先要产生随机数,在Python中,numpy.random 模块提供了丰富的随机数生成函数。比如生成0到1之间的任意随机数:

np.random.random(size=5)  # size表示生成随机数的个数
array([ 0.32392203,  0.3373342 ,  0.51677112,  0.28451491,  0.07627541])

又比如生成一定范围内的随机整数:

np.random.randint(1, 10, size=5)  # 生成5个1到9之间的随机整数
array([5, 6, 9, 1, 7])

计算机生成的随机数其实是伪随机数,是由一定的方法计算出来的,因此我们可以按下面方法指定随机数生成的种子,这样的好处是以后重复计算时,能保证得到相同的模拟结果。

np.random.seed(123)

在NumPy中,不仅可以生成上述简单的随机数,还可以按照一定的统计分布生成相应的随机数。这里列举了二项分布、泊松分布、指数分布和正态分布各自对应的随机数生成函数,接下来我们分别研究这四种类型的统计分布。

  • np.random.binomial()

  • np.random.poisson()

  • np.random.exponential()

  • np.random.normal()

二项分布

二项分布是n个独立的是/非试验中成功的次数的概率分布,其中每次试验的成功概率为p。这是一个离散分布,所以使用概率质量函

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 瑞利分布可以使用Python的scipy.stats模块来实现,可以通过以下代码来绘制瑞利分布图: from scipy.stats import rv_continuous import matplotlib.pyplot as plt # define a new random variable RV = rv_continuous(name='rayleigh', a=0, b=4) # create range of x values x = np.linspace(RV.a, RV.b, 1000) # calculate probability density for each value in x y = RV.pdf(x) # plot the graph plt.plot(x, y) plt.show() ### 回答2: 瑞利分布(Rayleigh distribution)是概率论与统计学常见的连续概率分布之一,常用于描述正的随机变量的模量。在Python,我们可以使用SciPy库的`scipy.stats`模块来实现瑞利分布的生成和绘图。 首先,我们需要导入所需的库: ```python import numpy as np import matplotlib.pyplot as plt from scipy.stats import rayleigh ``` 然后,我们可以使用`rayleigh`对象来生成满足瑞利分布的随机变量。可以通过指瑞利分布的参数来控制随机变量的形状。例如,我们可以生成一个具有参数`scale=2`的瑞利分布随机变量: ```python scale = 2 data = rayleigh.rvs(scale=scale, size=1000) ``` 接下来,我们可以使用生成的随机变量数据绘制瑞利分布的概率密度函数(PDF)和累积分布函数(CDF)图形: ```python x = np.linspace(rayleigh.ppf(0.01, scale=scale), rayleigh.ppf(0.99, scale=scale), 100) pdf = rayleigh.pdf(x, scale=scale) cdf = rayleigh.cdf(x, scale=scale) plt.figure(figsize=(10, 4)) plt.subplot(121) plt.plot(x, pdf, 'r-', lw=2, label='PDF') plt.xlabel('X') plt.ylabel('Probability Density') plt.title('Rayleigh Distribution PDF') plt.legend() plt.subplot(122) plt.plot(x, cdf, 'b-', lw=2, label='CDF') plt.xlabel('X') plt.ylabel('Probability') plt.title('Rayleigh Distribution CDF') plt.legend() plt.tight_layout() plt.show() ``` 以上代码将会绘制出瑞利分布的概率密度函数和累积分布函数图形,其左图为概率密度函数图形(PDF),右图为累积分布函数图形(CDF)。 希望以上回答对你有所帮助! ### 回答3: 瑞利分布是一种连续概率分布常用于描述正态分布随机变量的绝对值的分布。在Python,我们可以使用NumPy库来实现瑞利分布的生成和绘图。 首先,我们需要导入所需的库: ```python import numpy as np import matplotlib.pyplot as plt ``` 接下来,我们可以使用NumPy的random.rayleigh函数生成符合瑞利分布的随机样本。该函数接受两个参数,scale和size。scale表示瑞利分布的尺度参数,size表示生成的样本数量。 ```python scale = 1 # 瑞利分布的尺度参数 size = 1000 # 生成的样本数量 samples = np.random.rayleigh(scale, size) ``` 生成的样本存储在一个NumPy数组。 然后,我们可以使用Matplotlib绘制瑞利分布直方图。 ```python plt.hist(samples, bins=30, density=True, alpha=0.5) plt.xlabel('Value') plt.ylabel('Probability') plt.title('Rayleigh Distribution') plt.show() ``` 上述代码,使用plt.hist函数绘制直方图,参数bins表示直方图的柱数,density=True表示归一化处理,alpha=0.5表示设置柱的透明度。 运行以上代码,就可以得到一张瑞利分布直方图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值