数据分析知识体系及实践(十)- 推断性统计的Python实现

liftword5个月前 (01-11)技术文章35

数据分析知识体系及实践(七)和数据分析知识体系及实践(八)介绍了数据的分类、统计学是什么、以及统计学知识的大分类,数据分析知识体系及实践(九)介绍了描述性统计的Python实现,本篇我们重点介绍推断性统计学的Python代码实现几种数据分布。

t分布、F分布和卡方分布是统计学中常用的三种概率分布,它们分别用于样本均值的推断、方差的比较和数据的拟合优度检验。我们在介绍三大分布之前,先看一下正态分布和标准正态分布。

正态分布(Normal Distribution)

正态分布也被称为高斯分布,是统计学中最常见的概率分布之一,具有钟形曲线的特征,均值和标准差是其两个重要的参数。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

mean = 3  # 均值
std = 4  # 标准差
size = 1000  # 生成1000个随机数

data = np.random.normal(mean, std, size=size)
sns.histplot(data, kde=True)
plt.show()

标准正态分布(Standard Normal Distribution)

标准正态分布是一种特殊的正态分布,其均值为0,标准差为1。在统计学中,标准正态分布经常用于标准化数据或进行假设检验。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

size = 1000  # 生成1000个随机数

data = np.random.standard_normal(size=size)
sns.histplot(data, kde=True)
plt.show()

t分布(t Distribution)

t分布是一种概率分布,用于小样本情况下对总体均值的推断。当样本容量较小或总体方差未知时,使用T分布进行推断更准确。T分布的形状类似于正态分布,但尾部较宽。T分布的自由度(degreesof freedom)决定了其形状。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = 10  # 自由度
size = 1000  # 生成1000个随机数

data = np.random.standard_t(df, size=size)
sns.histplot(data, kde=True)
plt.show()

F分布(F Distribution)

F分布是一种概率分布,用于比较两个样本方差的差异。F分布常用于方差分析和回归分析中。F分布的形状取决于两个自由度参数,分子自由度和分母自由度。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

dfn = 5  # 分子自由度
dfd = 10  # 分母自由度
size = 1000  # 生成1000个随机数

data = np.random.f(dfn, dfd, size=size)
sns.histplot(data, kde=True)
plt.show()

卡方分布(Chi-Square Distribution)

卡方分布是一种概率分布,用于检验观察值与理论值之间的拟合优度。卡方分布常用于拟合优度检验、独立性检验和方差分析中。卡方分布的自由度参数决定了其形状。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = 5  # 自由度
size = 1000  # 生成1000个随机数

data = np.random.chisquare(df, size)
sns.histplot(data, kde=True)
plt.show()

本章Python完整代码示例如下

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 正态分布 Normal Distribution
mean = 3  # 均值
std = 4  # 标准差
size = 1000  # 生成1000个随机数

data = np.random.normal(mean, std, size=size)
sns.histplot(data, kde=True)
# plt.show()

# 标准正态分布 Standard Normal Distribution
size = 1000  # 生成1000个随机数

data = np.random.standard_normal(size=size)
sns.histplot(data, kde=True)
# plt.show()

# t分布 t Distribution
df = 10  # 自由度
size = 1000  # 生成1000个随机数

data = np.random.standard_t(df, size=size)
sns.histplot(data, kde=True)
# plt.show()

# F分布 F Distribution
dfn = 5  # 分子自由度
dfd = 10  # 分母自由度
size = 1000  # 生成1000个随机数

data = np.random.f(dfn, dfd, size=size)
sns.histplot(data, kde=True)
# plt.show()

# 卡方分布 Chi-square Distribution
df = 5  # 自由度
size = 1000  # 生成1000个随机数

data = np.random.chisquare(df, size)
sns.histplot(data, kde=True)
plt.show()

相关文章

Python实现拟合曲线

拟合曲线是指用数学函数或曲线模型在二维或三维坐标系中对一组数据进行逼近的过程。在数据分析中,我们经常需要使用函数或曲线模型来近似描述数据之间的关系。通常,我们对数据进行可视化后,使用曲线模型对数据进...

Python 数据分析——SciPy 拟合与优化-optimize

SciPy的optimize模块提供了许多数值优化算法,本节对其中的非线性方程组求解、数据拟合、函数最小值等进行简单介绍。一、非线性方程组求解fsolve( )可以对非线性方程组进行求解,它的基本调用...

人工智能同样也会读死书----“过拟合”

上一篇:《“嵌入”在大语言模型中是解决把句子转换成向量表示的技术》序言:我们常常会说某某人只会“读死书”,题目稍微变一点就不会做了。这其实是我们人类学习中很常见的现象。可是你知道吗?人工智能其实更容易...

SPC相关的计算用excel和python实现【源码下载】

做SPC分析涉及到很多计算,比如CPK、PPK、概率图、PPM等等,网上很多公式,但具体实现却不是那么容易的。我们整理了这些用excel和python实现的代码。包括但不限于以下的内容:SPC分析中的...

机器学习(8)欠拟合和过拟合

欠拟合(Underfitting),过拟合(Overfitting)欠拟合是指特征数选取过少,没法很好的描述数据。过拟合是指特征数选取过多,同样也没法很好的描述数据。我们以猜明星为例子:他有2个耳朵。...

python pytorch 深度学习神经网络 线性回归学习笔记

#暑期创作大赛#深度学习网络,是由多层神经元组成的,上一层的输出是下一层的输入,线性神经网络可以作为深度学习中的一层神经元。由于线性神经网络的结构简单,可以作为单层使用,非常适合用他来学习神经网络的构...