scipy.stats包含大量统计信息, 概率分布函数。可以通过info(stats)获得统计功能列表。还可以从stat子包的文档字符串中获取随机变量列表。
Sr. | Function | Description |
---|---|---|
1. | rv_continuos | 它是为连续随机变量构造特定的分发类和实例的基类。 |
2. | rv_discrete | 它是为离散随机变量构造特定的分发类和实例的基类。 |
3. | rv_histogram | 可以从rv_continuous类继承。它生成直方图给出的分布。 |
正常连续随机变量
为了封装连续随机变量和离散随机变量, 已经实现了两种通用分布类别。在这里, 我们将讨论连续的随机变量:
from scipy.stats import norm
import numpy as np
print(norm.cdf(np.array([3, -1., 0, 1, 2, 4, -2, 5])))
输出
[0.9986501 0.15865525 0.5 0.84134475 0.97724987 0.99996833
0.02275013 0.99999971]
在上面的程序中, 首先, 我们需要从scipy.stats导入norm模块, 然后在cdf()函数中将数据作为Numpy数组传递。
要获得分布的中位数, 我们可以使用百分比点函数(PPF), 这是CDF的倒数。
我们可以生成随机数的序列; size参数是传递size参数所必需的。
from scipy.stats import norm
print(norm.rvs(size = 4))
输出
[-0.42700905 1.0110461 0.05316053 -0.45002771]
每次我们运行程序时, 输出可能会有所不同。我们可以使用seed()函数生成相同的随机数。
描述性统计
描述性统计量描述变量中的观察值。有各种统计信息, 例如Min, Max和Variance, 它们将Numpy数组作为输入并返回特定结果。下图描述了scipy.stats包提供的一些基本功能。
Sr. | Function | Description | |
---|---|---|---|
1. | describe() | 计算输入数组的各种描述性统计信息。 | |
2. | gmean() | 计算指定的几何平均值。 | |
3. | hmean() | 计算沿指定轴的谐波平均值。 | |
4. | kurtosis() | 计算峰度。 | |
5. | mode() | 返回模式值。 | |
6. | skew() | 测试数据的偏度 | |
7. | zscore() | 它计算样品中每个值相对于样品均值和标准差的z得分。 |
让我们考虑以下程序:
import scipy as sp
import numpy as np
from scipy.stats import norm
number_of_data = 100
random_data_set = sp.randn(number_of_data)
print(random_data_set.mean())
print(sp.median(random_data_set))
min_max = np.array([random_data_set.min(), random_data_set.max()])
print(min_max)
sp.stats.describe(random_data_set)
输出
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分数越显着, 组之间的差异就越大。
比较两个样本
给出了两个样本, 它们可以来自相同或不同的分布, 我们想测试这些样本是否具有相同的统计特性。
from scipy import stats
rvs = stats.norm.rvs(loc = 6, scale = 10, size = (50, 2))
print(stats.ttest_1samp(rvs, 5.0))
输出
Ttest_1sampResult(statistic=array([0.42271098, 1.1463823 ]), pvalue=array([0.67435547, 0.25720448]))
在上面的输出中, p值是样本数据的结果偶然发生的概率。 P值从0%到100%。
SciPy线性回归
线性回归用于查找两个变量之间的关系。 SciPy提供linregress()函数来执行线性回归。语法如下:
scipy.stats.linregress(x, y=None)
参数:
x, y:这两个参数应该是一个数组, 并且长度相同。
线性回归有两种类型。
- 简单回归
- 多变量回归
简单回归
简单线性回归是一种使用单个特征预测响应的方法。假定这两个变量是线性相关的, 这意味着另一个变量可以准确地预测一个变量。例如, 使用摄氏温度, 可以以华氏温度正确预测。
多变量回归
多元线性回归被描述为一个连续因变量与两个或多个自变量之间的关系。
price(dependent variable) = m1*area + m2*bedrooms + m2*age(independent variable)
可变价格取决于其他变量。
评论前必须登录!
注册