3. 集中趋势 – 众数(Mode)

1. 介绍

众数是一组数据中出现频率最高的值。它很适合处理类别型数据,比如最常见的颜色、最常购买的商品类型;在数值型数据里也能用,但要注意连续数据可能每个值都只出现一次,这时众数就不一定有解释价值。

2. 原理

  • 众数定义: 众数是一组数据中出现次数最多的数值。

3. 重点和注意事项

  • 重点: 众数可用于描述数据的典型值,对于了解数据的峰值有帮助。
  • 注意事项:
    • 数据集可能没有众数,也可能有多个众数。
    • 在连续型数据中,众数通常通过分组进行计算。

4. 完整案例

考虑一个案例:某商店每日销售额数据。我们想计算每日销售额的众数,并绘制直方图以展示数据分布情况。

数据:

每日销售额数据:[200, 150, 200, 250, 300, 200, 150, 250, 200]

计算步骤:

通过观察数据,找到出现频率最高的数值。

Python代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import mode

# 每日销售额数据
daily_sales = np.array([200, 150, 200, 250, 300, 200, 150, 250, 200])

# 计算众数。keepdims=True 可以让返回结果保持数组形式,避免不同 SciPy 版本下索引行为不一致。
mode_sales = mode(daily_sales, keepdims=True).mode[0]

# 绘制直方图
plt.hist(daily_sales, bins=5, alpha=0.7, color='orange', edgecolor='black', label='Sales Distribution')
plt.axvline(mode_sales, color='red', linestyle='dashed', linewidth=2, label='Mode')

# 添加标题和标签
plt.title('Sales Distribution and Mode')
plt.xlabel('Sales')
plt.ylabel('Frequency')

# 添加图例
plt.legend()

# 显示图表
plt.show()

print("Mode of daily sales:", mode_sales)
# Mode of daily sales: 200

使用 SciPy 中的 mode 函数计算每日销售额的众数,并使用 Matplotlib 绘制直方图。直方图展示了每日销售额的分布情况,而红色虚线表示众数的位置。

通过这个案例,我们可以看到:众数关心的是“谁出现得最多”,它和均值、中位数回答的问题不一样。

图片[1]-3. 集中趋势 – 众数(Mode)-大赛人网
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容