波士顿矩阵|原理+Python全流程实现

简介: 很多公司中都有着不同的产品或者是业务线,但是对于繁琐的业务来说通常我们希望根据业务的好坏进行合理的资源分配,对于这种“好坏”的判断,波士顿矩阵出现了。

波士顿矩阵

很多公司中都有着不同的产品或者是业务线,但是对于繁琐的业务来说通常我们希望根据业务的好坏进行合理的资源分配,对于这种“好坏”的判断,波士顿矩阵出现了。

一、概念

波士顿矩阵又称市场(销售)增长率-相对市场份额矩阵,先来解释一下二者的概念。

  • 市场增长率

计算方式:(比较期市场销售量(额)-前期市场销售量(额))/前期市场销售量(额)*100%

举例(对某商品):(今年3月份销售500件-今年2月份销售300件)/今年2月份销售300件*100%

  • 市场份额(市场占有率)

概念:市场份额指某企业某一产品的销售量(额)在市场同类产品中所占比重。通常有如下三种市场份额的计算方法:

  1. 总体市场份额:某企业销售量(额)在整个行业中所占比重;
  2. 目标市场份额:某企业销售量(额)在其目标市场,即其所服务的市场中所占比重;
  3. 相对市场份额:指某企业销售量(额)与市场上最大竞争者销售量(额)之比,若高于1,表明其为这一市场的领导者。

在构建波士顿矩阵的时候,对于市场份额我们可以使用相对市场份额或者总体市场份额。

根据市场增长率和相对市场份额由低到高进行组合,我们可以得到如下的波士顿矩阵:

请添加图片描述

对于四种产品的描述如下:

  • 瘦狗产品:相对市场份额低,市场增长机会也没有,拖累公司发展的产品。
  • 问题产品:问题产品的问题在于未来,该类型产品有很多不确定性,可能会成为其余三种产品中的任意一种。
  • 明星产品:明星产品通常是有前景的新业务,用于抛头露面,开始时期需要大量的投入,是公司的未来(变成成熟的金牛产品)
  • 金牛产品:公司中的稳定收入来源,销售增长率低证明其稳定,属于已经进入成熟期的产品。
对于上述四种产品,金牛产品是最好的,接下来是明星、问题、瘦狗。

二、策略

对于四种产品的对应策略如下:

请添加图片描述

  • 瘦狗产品(撤退战略)):该类型产品没有前景,通常采用放弃策略将资源释放给其他产品,或者先采取“割韭菜”战略再放弃。
  • 问题产品(选择性投资战略):谨慎投资,规划中心放在如何拓宽市场上,对于该类产品也可以先“割韭菜”然后放弃。
  • 明星产品(发展战略):该类产品是未来之星,应该加大投资支持该产品的发展,以长远的利益作为目标,给予其最好的条件。
  • 金牛产品(收获战略):减少(压缩)投资,维持市场份额,充分发挥其获取“现金”的能力,争取在短时间内获取更多的利益,处境不佳时进行“割韭菜”。

三、Python实现

我们有如下的数据表格:
在这里插入图片描述
通常我们需要根据数据表去计算市场增长率和相对市场份额,按照上面所提到的公式进行计算即可。

完整Python实现如下:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl

# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # win
plt.rcParams["font.family"] = 'Arial Unicode MS'  # mac
plt.rcParams['axes.unicode_minus'] = False

data = pd.read_excel('销售数据表.xlsx')
# data.head()

# 计算市场增长率
data['市场增长率'] = (data['2021年销量(万)'] - data['2020年销量(万)']) / data['2021年销量(万)']

# 计算相对市场份额
data['相对市场份额'] = data['2021年销量(万)'] / data['2021年竟品销量(万)']

# 构建颜色列表
color_list = [
    '#00F5FF', '#FFDAB9', '#E6E6FA', '#54FF9F', '#7B68EE', '#B0C4DE',
    '#40E0D0', '#CDC673', '#FFC125', '#FF1493', '#FFE4E1', '#00BFFF'
]

# 获取数值的最大最小值(用于对气泡进行绘制)
min_x, max_x = min(data["相对市场份额"]), max(data["相对市场份额"])
min_y, max_y = min(data["市场增长率"]), max(data["市场增长率"])

# 绘图
plt.figure(figsize=(10, 10), dpi=200)

# 根据相对份额和市场增长率绘制气泡,投资份额代表气泡大小
for i in range(data.shape[0]):
    plt.scatter(x=data["相对市场份额"][i],
                y=data["市场增长率"][i],
                c=color_list[i],
                s=data["投资份额"][i] * 100,
                alpha=0.65)

# 向气泡中添加文字
for x, y, sku in zip(data["相对市场份额"], data["市场增长率"], data["产品(编号)"]):
    plt.text(x, y, sku, ha='center', va='center', fontsize=12)

# 添加业务名称
plt.text((min_x + 0.9) / 2, (min_y - 0.2) / 2,
         "瘦狗业务",
         ha='center',
         va='center',
         fontsize=40,
         color='tomato',
         alpha=0.6)

plt.text((min_x + 0.9) / 2, (max_y + 0.5) / 2,
         "问题业务",
         ha='center',
         va='center',
         fontsize=40,
         color='tomato',
         alpha=0.6)

plt.text((max_x + 1.5) / 2, (max_y + 0.5) / 2,
         "明星业务",
         ha='center',
         va='center',
         fontsize=40,
         color='tomato',
         alpha=0.6)

plt.text((max_x + 1.5) / 2, (min_y - 0.2) / 2,
         "金牛业务",
         ha='center',
         va='center',
         fontsize=40,
         color='tomato',
         alpha=0.6)

# 绘制坐标
plt.xlim(xmin=min_x - 0.3, xmax=max_x + 0.3)
plt.ylim(ymin=min_y - 0.3, ymax=max_y + 0.3)
# 绘制分割线
plt.axhline(y=(max_y + min_y) / 2, ls="-", color="black", linewidth=2)
plt.axvline(x=(max_x + min_x) / 2, ls="-", color="black", linewidth=2)
# 绘制X,Y轴标签
plt.xlabel("低<————— 相对市场份额(%) —————>高", fontsize=17)
plt.ylabel("低<—————— 市场增长率(%) ——————>高", fontsize=17)
plt.title("公司各项业务-波士顿矩阵", fontsize=23, color='#8B0000')
plt.show()

得到的结果如下:

请添加图片描述
得到结果后,我们按照前面提到的策略对应到具体业务上即可。

相关文章
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
在现代数据分析中,高维时间序列数据的处理和预测极具挑战性。基于矩阵分解的长期事件(MFLEs)分析技术应运而生,通过降维和时间序列特性结合,有效应对大规模数据。MFLE利用矩阵分解提取潜在特征,降低计算复杂度,过滤噪声,并发现主要模式。相比传统方法如ARIMA和深度学习模型如LSTM,MFLE在多变量处理、计算效率和可解释性上更具优势。通过合理应用MFLE,可在物联网、金融等领域获得良好分析效果。
64 0
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
|
1月前
|
安全 数据挖掘 编译器
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
66 6
|
2月前
|
算法 数据处理 Python
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,广泛应用于信号处理领域。它通过线性最小二乘法拟合低阶多项式到滑动窗口中的数据点,在降噪的同时保持信号的关键特征,如峰值和谷值。本文介绍了该滤波器的原理、实现及应用,展示了其在Python中的具体实现,并分析了不同参数对滤波效果的影响。适合需要保持信号特征的应用场景。
171 11
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
|
2月前
|
缓存 数据安全/隐私保护 Python
python装饰器底层原理
Python装饰器是一个强大的工具,可以在不修改原始函数代码的情况下,动态地增加功能。理解装饰器的底层原理,包括函数是对象、闭包和高阶函数,可以帮助我们更好地使用和编写装饰器。无论是用于日志记录、权限验证还是缓存,装饰器都可以显著提高代码的可维护性和复用性。
50 5
|
2月前
|
缓存 开发者 Python
深入探索Python中的装饰器:原理、应用与最佳实践####
本文作为技术性深度解析文章,旨在揭开Python装饰器背后的神秘面纱,通过剖析其工作原理、多样化的应用场景及实践中的最佳策略,为中高级Python开发者提供一份详尽的指南。不同于常规摘要的概括性介绍,本文摘要将直接以一段精炼的代码示例开篇,随后简要阐述文章的核心价值与读者预期收获,引领读者快速进入装饰器的世界。 ```python # 示例:一个简单的日志记录装饰器 def log_decorator(func): def wrapper(*args, **kwargs): print(f"Calling {func.__name__} with args: {a
56 2
|
3月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
165 3
|
3月前
|
机器学习/深度学习 算法 数据挖掘
线性回归模型的原理、实现及应用,特别是在 Python 中的实践
本文深入探讨了线性回归模型的原理、实现及应用,特别是在 Python 中的实践。线性回归假设因变量与自变量间存在线性关系,通过建立线性方程预测未知数据。文章介绍了模型的基本原理、实现步骤、Python 常用库(如 Scikit-learn 和 Statsmodels)、参数解释、优缺点及扩展应用,强调了其在数据分析中的重要性和局限性。
135 3
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2

热门文章

最新文章

推荐镜像

更多