AITC Wiki

大数据分析

Analysis of Big Data

大数据分析

English version: Analysis of Big Data

本讲介绍四种数据分析类型 —— 描述性、诊断性、预测性和规范性分析 —— 并附带 Python 实操示例。

数据分析类型

类型关注点回答的问题
描述性洞察过去发生了什么?
诊断性理解原因为什么发生?
预测性预测未来将会发生什么?
规范性决策支持我们应该怎么做?

描述性分析

描述性分析指分析历史数据并以易于解读的汇总形式呈现。当今完成的大部分分析都是描述性分析,通过统计函数如计数、最大值、最小值、均值、中位数、众数和百分比来实现。

用例

  • 计算社交媒体帖子的总点赞数
  • 分析评论以了解用户态度
  • 收入、支出、现金流、库存和生产等业务报告
  • 识别客户偏好和行为趋势
  • 分析历史用电量以设定最优单价并对消费者进行分类

描述性分析的三种类型

类型度量指标可视化方式
频率计数直方图
形状(集中趋势)均值、中位数、众数箱线图
离散度(变异性)方差、标准差、异常值直方图和箱线图

示例:薪资数据分析

使用包含员工薪资、工作年限、年龄和性别的 .csv 数据集。

频率问题

  • 男性和女性员工的数量及比例
  • 按性别划分的平均薪资
  • 各年龄段(21–30、31–40、41–50、51–60)的员工数量
  • 工作年限超过 5 年的员工数量

分布/形状问题

  • 薪资、工作年限和年龄的均值
  • 中位数、最小值和最大值
  • 薪资与工作年限、薪资与年龄的分布关系
  • 按性别划分的薪资概况

Python 示例

import pandas as pd
data = pd.read_csv("/Desktop/salary_data.csv")
 
# 均值
mean_salary = data['salary'].mean()
mean_experience = data['years experience'].mean()
mean_age = data['age'].mean()
print('平均薪资:', mean_salary)
print('平均工作年限:', mean_experience)
print('平均年龄:', mean_age)
# 中位数
median_salary = data['salary'].median()
median_experience = data['years experience'].median()
median_age = data['age'].median()
# 最小值 / 最大值
min_salary = data['salary'].min()
max_salary = data['salary'].max()
# 可视化:薪资 vs 工作年限
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
 
plt.figure(1)
plt.plot(data['years experience'], data['salary'] / 1E3, 'ro', linewidth=1)
plt.xlabel('工作年限')
plt.ylabel('薪资(千元 RMB)')
plt.grid(True)
plt.title('薪资与工作年限分布')
plt.show()
# 可视化:薪资 vs 年龄
plt.figure(2)
plt.plot(data['age'], data['salary'] / 1E3, 'bo', linewidth=1)
plt.xlabel('年龄')
plt.ylabel('薪资(千元 RMB)')
plt.grid(True)
plt.title('薪资与年龄分布')
plt.show()
# 可视化:按性别划分的薪资
import seaborn as sns
plt.figure(3)
plt.scatter(data['gender'], data['salary'] / 1E3, c='blue', alpha=0.5)
plt.xlabel('性别')
plt.ylabel('薪资(千元 RMB)')
plt.grid(True)
plt.title('按性别划分的薪资分布')
plt.show()

数据的变异性

标准差衡量数据的分散程度。它在执行预测性分析(如假设检验)时非常有用。

示例:28, 29, 30, 31, 3210, 20, 30, 40, 50 的均值都是 30,但第二个列表的分散程度明显更大。


诊断性分析

诊断性分析是使用数据来确定趋势原因和变量之间相关性的过程。它是描述性分析之后的逻辑下一步,可视为一种根本原因分析。

核心特征

  • 帮助理解正在发生什么以及为什么发生
  • 可手动完成,也可使用算法或统计软件(MATLAB、R、Excel)
  • 为决策者提供可操作的洞察
  • 调查导致特定结果的因素

示例:薪资差距分析

从描述性分析中得出:男性平均薪资高于女性,且女性平均薪资低于总平均线。

问题:为什么女性员工的平均薪资较低?

  • 直方图显示男性薪资分布相对于女性分布右偏。

相关性分析

用于揭示参数之间(工作年限、薪资、年龄、性别)的关系。

  • 相关系数 (r):描述两个特征之间的密切程度
  • 接近 1 或 −1 的值表示强线性关系
  • 接近 0 的值表示弱线性关系
  • 正值:一个变量值越大,另一个变量值也越大
  • 负值:一个变量值越大,另一个变量值越小

Python 示例:相关性矩阵

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
data = pd.read_csv("/Desktop/salary_data.csv")
 
# 薪资与工作年限的相关性
correlation_matrix = data[['salary', 'years experience']].corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.title('薪资与工作年限的相关性矩阵')
plt.show()
# 仅男性员工的相关性
male_data = data[data['gender'] == 'Male']
correlation_matrix = np.corrcoef(male_data['salary'], male_data['years experience'])
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm',
            xticklabels=['薪资', '工作年限'],
            yticklabels=['薪资', '工作年限'])
plt.title("男性员工的相关性分析")
plt.show()

发现

年龄段男性平均年限女性平均年限男性平均薪资女性平均薪资
21–307848,35546,809
31–408974,01365,503

尽管女性员工经验更丰富,但她们的平均薪资更低。在没有额外数据(教育、技能)的情况下,男性较高的薪资可能表明存在偏见和主观判断。


预测性分析

预测性分析使用历史数据预测未来结果。

示例:为资深员工预测薪资

一家公司希望雇佣工作年限超过 15 年的顾问。应该支付多少薪资?

使用薪资与工作年限的分布图,应用回归分析

回归类型

回归
├── 线性
│   └── 简单线性
│   └── 多元线性
└── 非线性

模型对比

模型方程
线性(1 阶)y = 4677.7x + 427990.7555
非线性(2 阶)y = −197.31x² + 7395.4x + 359040.7692
非线性(3 阶)y = 81.613x³ − 1929.7x² + 17798x + 198180.8016
非线性(4 阶)y = 15.512x⁴ − 362.5x³ + 2270x² + 3067.3x + 349300.8113

Warning

虽然四次模型具有最高的 R²,但在实际情况中,线性或二次模型通常更受青睐,因为它们具有更好的泛化能力。

分类

另一种预测方法,用于识别给定数据集所属的类别。

方面分类回归
输出类别 / 类别标签连续数值
示例预测疾病、欺诈检测、人脸分类评估房价、预测需求、温度预测

Scikit-Learn 库用于预测性数据分析,通常与 NumPy、SciPy 和 Matplotlib 一起使用。

# 标签编码示例
from sklearn.preprocessing import LabelEncoder
# 将分类标签(如蓝色、绿色)转换为数值(0、1)

规范性分析

规范性分析提供决策支持,帮助从分析结果中获益。它不仅预测未来结果,还提供建议以提取收益并利用预测结果。

核心特征

  • 通过结合数学模型、机器学习算法和历史数据来优化业务成果
  • 预测将会发生什么、何时发生以及为什么发生
  • 使用模拟优化来实现
  • 指导用户了解不同行动将如何影响业务,并建议最优选择

应用

定价、生产计划、营销、财务规划和供应链优化。

示例:资产绩效管理

  1. 基础:由历史数据库工具整合的时间序列数据
  2. 预测性分析:创建预测风险或次优资产性能的指标和预警
  3. 规范性行动:每个预警都有预定义的规范性行动。一旦触发,这些行动使人员能够在故障产生影响之前管理预警并解决问题

要点总结

分析类型目的方法
描述性汇总历史数据统计、直方图、箱线图
诊断性查找根本原因相关性分析、假设检验
预测性预测未来事件回归、分类、机器学习
规范性推荐最优行动模拟、优化

相关概念

来源资料