描述性统计
描述性统计是统计学的一个分支,它涉及数据的收集、整理和分析,目的是用数字或图形的方式描述和总结数据集中的特征。描述性统计不涉及推断性分析,即不从样本数据推断总体特征。它主要包括以下几个方面:
-
集中趋势度量:用来描述数据集中的中心点,常见的度量包括均值(Mean)、中位数(Median)和众数(Mode)。
-
离散程度度量:用来描述数据的分散程度,常见的度量包括极差(Range)、方差(Variance)、标准差(Standard Deviation)和四分位数间距(Interquartile Range, IQR)。
-
形状度量:描述数据分布的形状,比如数据是否对称,是否存在偏斜(Skewness)等。
-
频率分布:通过构建频率表或直方图来展示数据的分布情况。
-
图形表示:使用条形图、饼图、箱线图等图形工具来直观地展示数据特征。
在Python的Pandas库中,describe()
函数是一个非常有用的方法,用于快速生成数据集的描述性统计摘要。当你对一个Pandas的Series或DataFrame调用describe()
方法时,它会返回以下特征:
- count:非空(NaN)值的数量。
- mean:数值列的平均值。
- std:数值列的标准差,表示数据的离散程度。
- min:数值列的最小值。
- 25%:数值列的第一四分位数,即所有值中最小的25%的值。
- 50%:数值列的中位数,即所有值的中间值。
- 75%:数值列的第三四分位数,即所有值中最大的25%的值。
- max:数值列的最大值。
一个简单的python代码:
import pandas as pd
# 创建一个简单的DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1]
})
# 调用describe方法
print(df.describe())
运行结果如下:
相关性分析
相关性分析是统计学中用来评估两个或多个变量之间是否存在某种统计关联的方法。这种分析可以帮助我们了解变量之间的关系是正相关、负相关还是无关。相关性分析方法最常用有两种:
-
皮尔逊相关系数(Pearson Correlation Coefficient):用于度量两个连续变量之间的线性相关程度。其值范围在-1到1之间,其中1表示完全正相关,-1表示完全负相关,0表示没有线性相关。
-
斯皮尔曼等级相关系数(Spearman's Rank Correlation Coefficient):基于变量值的等级而非实际值来计算相关性,适用于非正态分布或非线性关系的数据。
一个简单的计算皮尔逊相关系数矩阵的python代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建一个示例数据集
np.random.seed(0)
data = pd.DataFrame(np.random.randn(100, 4), columns=['A', 'B', 'C', 'D'])
# 计算相关系数矩阵
corr_matrix = data.corr(method='pearson')
print(corr_matrix)
散点图
散点图(Scatter Plot)是一种二维图表,用于展示两个连续变量之间的关系。在散点图中,每个数据点由其在两个维度上的值确定,通常横轴(X轴)表示一个变量,纵轴(Y轴)表示另一个变量。数据点在图表上的分布可以揭示变量之间的相关性模式。
一个简单的散点图的python代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成一些随机数据
x = np.random.rand(50)
y = np.random.rand(50)
# 创建散点图
plt.scatter(x, y)
# 添加标题和轴标签
plt.title('Scatter Plot Example')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
# 显示图表
plt.show()
效果如下:
常用统计图表
最常用的三种统计图表是条形图、折线图和饼图。
条形图的绘制:
import matplotlib.pyplot as plt
# 数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [10, 20, 15, 30]
# 创建条形图
plt.bar(categories, values)
# 添加标题和轴标签
plt.title('Bar Chart Example')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图表
plt.show()
效果如下:
折线图的绘制:
import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 创建折线图
plt.plot(x, y)
# 添加标题和轴标签
plt.title('Line Chart Example')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
# 显示图表
plt.show()
效果如下图所示:
饼图的绘制:
import matplotlib.pyplot as plt
# 数据
labels = ['Category A', 'Category B', 'Category C', 'Category D']
sizes = [15, 30, 45, 10] # 各部分所占的比例或数量
# 绘制饼图
plt.figure(figsize=(8, 8)) # 可以设置图表的大小
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
# 添加标题
plt.title('Pie Chart Example')
# 显示图表
plt.axis('equal') # 设置x轴和y轴的长度相等,确保饼图是圆形的
plt.show()
效果如下: