【进阶篇】数据探索性分析:统计描述与可视化展示
发布时间: 2024-06-24 18:43:44 阅读量: 122 订阅数: 105
![python数据分析与可视化合集](https://ask.qcloudimg.com/http-save/8934644/afc79812e2ed8d49b04eddfe7f36ae28.png)
# 1. 数据探索性分析概述**
数据探索性分析(EDA)是一种数据分析方法,旨在通过对数据的初步检查和可视化,发现数据中的模式、趋势和异常值。EDA是数据分析过程中至关重要的一步,因为它可以帮助数据分析师了解数据,并为后续的深入分析提供基础。
EDA通常包括以下步骤:
* 数据收集和预处理
* 统计描述分析
* 数据可视化展示
* 假设检验和建模
通过这些步骤,EDA可以帮助数据分析师:
* 了解数据的分布和特征
* 识别异常值和数据中的潜在问题
* 生成关于数据模式和趋势的假设
* 为后续的深入分析提供指导
# 2. 统计描述分析
统计描述分析是数据探索性分析中的一项重要技术,用于对数据进行定量和定性描述,揭示其基本特征和分布规律。
### 2.1 数值型数据的描述
数值型数据是具有数值意义的数据,可以进行算术运算。其描述指标主要分为集中趋势指标和离散趋势指标。
#### 2.1.1 集中趋势指标
集中趋势指标反映了数值型数据集中分布的中心位置,常用指标包括:
- **平均值(Mean)**:所有数据的算术平均值,反映了数据的典型值。
- **中位数(Median)**:将数据从小到大排序后,居于中间位置的值,不受极端值影响。
- **众数(Mode)**:出现频率最高的值,反映了数据的集中点。
```python
import numpy as np
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# 计算平均值
mean = np.mean(data)
print("平均值:", mean)
# 计算中位数
median = np.median(data)
print("中位数:", median)
# 计算众数
mode = np.mode(data)
print("众数:", mode)
```
#### 2.1.2 离散趋势指标
离散趋势指标反映了数值型数据分布的离散程度,常用指标包括:
- **范围(Range)**:最大值与最小值的差值,反映了数据的极差。
- **方差(Variance)**:数据与平均值的平方差的平均值,反映了数据的离散程度。
- **标准差(Standard Deviation)**:方差的平方根,具有与原始数据相同的单位,更易于理解。
```python
# 计算范围
range = np.max(data) - np.min(data)
print("范围:", range)
# 计算方差
variance = np.var(data)
print("方差:", variance)
# 计算标准差
std_dev = np.std(data)
print("标准差:", std_dev)
```
### 2.2 分类型数据的描述
分类型数据是具有类别属性的数据,不能进行算术运算。其描述指标主要包括频数分布和相关性分析。
#### 2.2.1 频数分布
频数分布统计了分类型数据中每个类别的出现频率,反映了数据的分布情况。
```python
import pandas as pd
data = pd.DataFrame({
"性别": ["男", "女", "男", "女", "男", "女", "男", "女"],
"年龄": [20, 30, 25, 28, 32, 26, 29, 31]
})
# 统计频数分布
freq_dist = data["性别"].value_counts()
print("频数分布:\n", freq_dist)
```
#### 2.2.2 相关性分析
相关性分析衡量了两个分类型变量之间的相关程度,常用指标包括:
- **卡方检验**:检验两个分类型变量之间是否存在关联,返回卡方统计量和p值。
- **相关系数(Cramer's V)**:反映两个分类型变量之间相关性的强度,取值范围为0到1。
```python
# 计算卡方统计量和p值
chi_square, p_value = pd.crosstab(data["性别"], data["年龄"]).chi2_contingency()
print("卡方统计量:", chi_square)
print("p值:", p_value)
# 计算相关系数
cramer_v = pd.c
```
0
0