SciPy 统计

2024 年 8 月 29 日 | 阅读 3 分钟

scipy.stats 包含大量统计数据、概率分布函数。可以通过 info(stats) 获取统计函数列表。也可以从统计子包的 docstring 中获取随机变量的列表。

序号。函数描述
1.rv_continuos它是构造特定分布类和连续随机变量实例的基类。
2.rv_discrete它是构造特定分布类和离散随机变量实例的基类。
3.rv_histogram它可以从 rv_continuous 类继承。 它生成由直方图给出的分布。

正态连续随机变量

已经实现了两个通用的分布类,用于封装连续随机变量和离散随机变量。在这里,我们将讨论连续随机变量

输出

[0.9986501  0.15865525 0.5        0.84134475 0.97724987 0.99996833
 0.02275013 0.99999971]

在上面的程序中,首先,我们需要从 scipy.stats 导入 norm 模块,然后将数据作为 Numpy 数组传递给 cdf() 函数。

要获得分布的中位数,我们可以使用 百分点函数 (PPF),这是 CDF 的逆函数。

我们可以生成随机数的序列; size 参数是传递 size 参数所必需的。

输出

[-0.42700905  1.0110461   0.05316053 -0.45002771]

每次运行程序时,输出可能会有所不同。 我们可以使用 seed() 函数生成相同的随机数。

描述性统计

描述性统计描述了变量中观测值的值。 有各种统计数据,例如最小值、最大值和方差,它们将 Numpy 数组作为输入并返回特定的结果。 scipy.stats 包提供的一些基本功能在下图中描述。

序号。函数描述
1.describe()计算输入数组的各种描述性统计数据。
2.gmean()计算指定的几何平均值。
3.hmean()沿指定轴计算调和平均值。
4.kurtosis()计算峰度。
5.mode()返回模式值。
6.skew()测试数据的偏度
7.zscore()它计算样本中每个值相对于样本均值和标准差的 z 分数。

让我们考虑以下程序

输出

0.006283818005153084
-0.03008382588766136
[-2.1865825   2.47537921]

DescribeResult(nobs=100, minmax=(-2.1865824992721987, 2.475379209985273), mean=0.006283818005153084, variance=1.0933102537156147, skewness=0.027561719919920322, kurtosis=-0.6958272633471831)

T 检验

t 检验用于比较两个平均值(均值),并判断这些平均值是否彼此不同。 t 检验也描述为组之间差异的显着性。

T 分数

t 分数是两组之间与组内差异的比率。 t 分数越小,表明各组相对相似,t 分数越大,表明各组之间的差异越大。

比较两个样本

给出了两个样本,它们可能来自相同或不同的分布,我们想要测试这些样本是否具有相同的统计特性。

输出

Ttest_1sampResult(statistic=array([0.42271098, 1.1463823 ]), pvalue=array([0.67435547, 0.25720448]))

在上面的输出中,p 值是样本数据中的结果偶然发生的概率。 P 值范围从 0% 到 100%。

SciPy 线性回归

线性回归用于查找两个变量之间的关系。 SciPy 提供了 linregress() 函数来执行线性回归。 语法如下

参数

x, y: 这两个参数应该是一个数组,并且长度相同。

线性回归有两种类型。

  • 简单回归
  • 多变量回归

简单回归

简单线性回归是一种使用单个特征预测响应的方法。 假设这两个变量是线性相关的,这意味着另一个变量可以准确地预测一个变量。 例如,使用以摄氏度为单位的温度,它以华氏度正确预测。

多变量回归

多元线性回归被描述为一​​个连续因变量与两个或多个自变量之间的关系。

变量价格取决于其他变量。


下一个主题SciPy 稀疏矩阵