数分基础(06)商业分析四种类型简介

文章目录

  • 1. 商业分析
  • 2. 四种类型
    • 2.1 描述性分析和诊断性分析
      • 2.1.1 加载Global_Superstore数据集
      • 2.1.2 描述性分析
      • 2.1.3 诊断性分析
      • 2.1.4 再进一步
        • 各地区的订单数量和平均订单金额
        • 按客户群体分析销售额和利润
        • 折扣率和利润
        • 产品类别和子类别的销售和利润
      • 本小节小结
    • 2.2 销售预测
      • 2.2.1 步骤
      • 2.2.2 分析
    • 2.3 规范性分析

1. 商业分析

利用数据优化业务流程,用以提升绩效并支持数据驱动决策的过程。

2. 四种类型

  • 描述性分析 Descriptive Analysis,总结和描述当前状态(例如销售额、平均订单量)
  • 诊断性分析 Diagnostic Analysis,分析问题(例如特定地区的销售下滑)
  • 预测性分析 Predictive Analysis,预测未来趋势(例如未来销售额)
  • 规范性分析 Prescriptive Analysis,提供建议(例如定价策略)

2.1 描述性分析和诊断性分析

2.1.1 加载Global_Superstore数据集

我们仍旧使用这个数据集,数分基础(01)示例数据集Global_Superstore

加载数据集

import pandas as pdfile_path = "Global_Superstore2.xlsx"
excel_data = pd.ExcelFile(file_path)excel_data.sheet_namesdata = pd.read_excel(file_path, sheet_name='Sheet1')
data.head()

2.1.2 描述性分析

用数据总结和描述当前的状况,回答“发生了什么”。业务报告、仪表盘、绩效监控等。常见于日常的运营分析和月度、季度报告中。

计算总销售额
销售额字段求和,获取公司整体的销售情况。直观反映公司的业务规模和市场表现。

计算平均订单金额
总销售额除以订单数量,得出平均每笔订单的金额。反映客户的平均消费水平。

比较不同产品类别的表现
分组计算各产品类别的销售额和利润率,以识别哪些类别产品销售表现突出,哪些类别产品利润贡献较大。以便制定更有针对性的产品策略。

total_sales = data['Sales'].sum()
print(f"总销售额: {total_sales}")average_order_value = data['Sales'].mean()
print(f"平均订单金额: {average_order_value}")category_performance = data.groupby('Category')[['Sales', 'Profit']].sum().reset_index()
print(category_performance)

在这里插入图片描述
可以从中看出哪些产品或服务是销售的主力

2.1.3 诊断性分析

回答“为什么”的问题,帮助识别薄弱环节,并提出问题的解决方向。多用于客户反馈分析、损益分析等。

例如,找出销售低迷的区域,并分析
识别低绩效区域
按地区分组计算销售额和利润率,定位销售表现不佳的区域,便于进一步分析

对比高绩效区域
通过对比高绩效区域和低绩效区域的数据,直观发现两者之间的差异,为后续的原因分析提供线索

分析潜在原因
检查影响销售的因素,如折扣率、物流模式等,找出可能导致低销售或低利润的原因。例如,某些区域的运输方式可能导致成本上升,从而影响利润。

# 计算每个地区的销售额和利润总和,结果按地区分组显示
# 对 'Sales' 和 'Profit' 列求和,并重置索引以便于阅读
regional_performance = data.groupby('Region')[['Sales', 'Profit']].sum().reset_index()# 设置显示选项,避免使用科学计数法显示数值
pd.set_option('display.float_format', '{:.2f}'.format)# 筛选出利润为负的地区,这些地区表现较差,可能存在问题
low_performance = regional_performance[regional_performance['Profit'] < 0]
# 打印低绩效地区的数据
print("低绩效地区:")
print(low_performance)# 筛选出利润为正的地区,这些地区表现较好
high_performance = regional_performance[regional_performance['Profit'] > 0]
# 打印高绩效地区的数据
print("\n高绩效地区:")
print(high_performance)# 对低绩效区域进行进一步分析,根据运输模式分组,计算各运输模式的销售额
# 这里通过使用 isin() 函数过滤出低绩效地区的数据,并按地区和运输模式分组
potential_issues = data[data['Region'].isin(low_performance['Region'])].groupby(['Region', 'Ship Mode'])['Sales'].sum().reset_index()
# 打印低绩效区域不同运输模式下的销售额,以分析可能的原因
print("\n低绩效地区的运输模式销售情况:")
print(potential_issues)

在这里插入图片描述
低绩效地区
输出结果为空,即没有任何地区的利润为负。即所有地区的销售额都产生了正利润。表明公司在各个地区的业务整体上是盈利的。

高绩效地区。销售额最高的地区是 Central(中部),而销售额相对较低的加拿大和东南亚也实现了一定的利润率。

由于数据集中没有低绩效地区,因此在按运输模式分析低绩效区域的销售情况时,也没有对应的数据输出。

表明公司各区域的运营策略和市场表现整体较为健康。

2.1.4 再进一步

各地区的订单数量和平均订单金额
# 计算各地区的订单数量和平均订单金额
order_counts = data.groupby('Region')['Order ID'].nunique().reset_index().rename(columns={'Order ID': 'Order Count'})
average_order_value = data.groupby('Region')['Sales'].mean().reset_index().rename(columns={'Sales': 'Avg Order Value'})# 合并并查看结果
regional_orders = pd.merge(order_counts, average_order_value, on='Region')
print(regional_orders)

在这里插入图片描述
Central 地区的订单数量最多,说明这个地区的客户活跃度最高。
Central Asia 和 North Asia 的平均订单金额较高,说明这些地区的每笔订单价值较大,销售的多为高价产品

按客户群体分析销售额和利润
# 按客户群体分析销售额和利润
segment_performance = data.groupby('Segment')[['Sales', 'Profit']].sum().reset_index()
print(segment_performance)

在这里插入图片描述

从结果中可以看出来,Consumer 是最大的销售和利润来源,大众消费者是企业的主要市场。公司客户和家庭办公室的销售额和利润明显低于这个群体。

折扣率和利润
# 折扣率和利润之间的关系
discount_impact = data.groupby('Discount')[['Sales', 'Profit']].mean().reset_index()
print(discount_impact)

在这里插入图片描述
随着折扣率的增加,利润逐渐变为负值,尤其是折扣率超过 0.3 后,大部分的利润都出现了亏损。这说明高折扣策略虽然提升了销售额,但压缩了利润,甚至导致亏损。因此,应谨慎使用高折扣,在销售增长与利润之间的关系平衡上要权衡。

产品类别和子类别的销售和利润
# 按产品类别和子类别分析
category_subcategory = data.groupby(['Category', 'Sub-Category'])[['Sales', 'Profit']].sum().reset_index()
print(category_subcategory)

在这里插入图片描述
家具类(Furniture) 中,Tables 子类别出现了较大的亏损,说明这个产品可能存在问题(如高成本、低需求或高折扣)。
技术类(Technology) 的 Copiers 是高利润的产品,市场表现优异。
整体来看,不同类别的产品利润差异较大,应聚焦高利润产品,优化低利润或亏损产品的运营策略

本小节小结

  • 各地区、客户群体、产品类别的销售和利润情况,能够反映主要贡献者和问题所在
  • 折扣策略对利润的负面影响较大,应当平衡折扣和利润
  • 细分分析可以看出来高利润和低利润产品
  • 其他,例如,可以按照地区和客户群体表现分析,分析每个区域的客户群体的表现,有助于了解不同区域的市场需求差异;可以进一步寻找高折扣但仍然营利的产品组合,优化折扣策略等。

2.2 销售预测

预测性分析,基于历史销售数据预测未来的销售额趋势

2.2.1 步骤

提取销售日期和销售额,按时间顺序排序
构建时间序列模型,使用历史销售数据构建时间序列模型
使用模型预测未来几个月的销售额

import pandas as pd
import numpy as np
from statsmodels.tsa.holtwinters import ExponentialSmoothing
import matplotlib.pyplot as plt
from scipy.ndimage import uniform_filter1d# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 解析日期并确保日期格式正确
data['Order Date'] = pd.to_datetime(data['Order Date'], dayfirst=True)
# 按日期汇总销售数据,得到时间序列
sales_time_series = data.groupby('Order Date')['Sales'].sum().reset_index()# 数据预处理:平滑数据并进行对数变换,减少波动
# 平滑处理:使用均值平滑来减少数据中的极端波动
sales_time_series['Sales_Smoothed'] = uniform_filter1d(sales_time_series['Sales'], size=3)
# 平滑销售数据,减少极端值和噪声对模型的影响,使用窗口大小为3的滑动均值sales_time_series['Sales_Smoothed'] = sales_time_series['Sales_Smoothed'].clip(lower=1)  # 确保最小值为1
# 将平滑后的销售数据最小值设为1,使得对数变换不产生负无穷sales_time_series['Sales_Log'] = np.log(sales_time_series['Sales_Smoothed'])
# 平滑后的销售数据取对数,使得模型更容易你和趋势和季节性变化# 构建并拟合时间序列模型
# 使用较简单的趋势和季节性设置,减少数值波动带来的影响
model = ExponentialSmoothing(sales_time_series['Sales_Log'], trend='add', seasonal='add', seasonal_periods=12,use_boxcox=False, initialization_method='estimated'
)# 拟合模型
model_fit = model.fit(remove_bias=True)# 预测未来12个月的销售额
forecast_log = model_fit.forecast(12)# 将预测值从对数变换还原为实际值
forecast = np.exp(forecast_log)# 绘制历史销售额和预测值
plt.figure(figsize=(12, 6))
plt.plot(sales_time_series['Order Date'], sales_time_series['Sales'], label='历史销售额')
plt.plot(pd.date_range(sales_time_series['Order Date'].max(), periods=12, freq='ME'), forecast, label='预测销售额', linestyle='--')
plt.xlabel('日期')
plt.ylabel('销售额')
plt.title('销售额预测')
plt.legend()
plt.show()

2.2.2 分析

在这里插入图片描述
实线代表实际的历史销售数据,销售随时间的真实表现,包括季节性模式。显示2011-2015年期间,波动上升,存在高峰和低谷,可能与季节性因素、市场促销等想相关。虽然销售额整体上升,波动较为剧烈,每年的销售高峰和低谷期并不完全一致,季节性特征受到短期因素的影响

虚线代表未来12个月的销售预测值,显示了未来可能的走势比较稳定,有略微下降,模型认为上升趋势趋于平稳,可能由于处理历史季节性数据选择了平滑的加法模式,显示为平稳的预测线,季节性捕捉不足,也需要在模型中优化对季节性因素的识别,另一方面,应当对于可能的略微下降,保持警惕,如调整运营策略、优化产品组合等。

2.3 规范性分析

结合预测性分析,提供建议。假设,预测性分析显示未来销售平稳(假如模型已经调整过了,仍然是平稳的),那么可以减少因过度波动导致的库存压力,进行库存和定价优化。

假设我们要寻找定价策略,同时考虑库存成本和时长需求,最大化企业利润。

首先,需要获取产品的销售量、价格、成本等信息
其次,构建模型,假设用线性规划模型,定义目标函数(如利润),设定约束条件(例如库存水平、市场需求)
第三,求解优化问题,求出库存和定价

通过线性规划(Linear Programming)进行定价和库存优化的示例代码(和示例数据集无关)

import pandas as pd
from scipy.optimize import linprog# 假设数据集中有以下信息:价格、成本、需求量(数据为示例)
# 可以从数据集中筛选或假设这些信息
prices = [20, 25, 30]  # 产品的三个定价选项
costs = [10, 12, 15]   # 对应的产品成本
demand = [100, 80, 60]  # 不同定价下的市场需求量# 定义目标函数:利润 = (价格 - 成本) * 需求
profit_coefficients = [(price - cost) for price, cost in zip(prices, costs)]
# 定义约束:库存数量
A = [[1, 1, 1]]  # 约束系数矩阵,表示每个产品的需求消耗库存
b = [150]  # 约束条件,总库存量# 使用线性规划求解最大利润问题
# 将 method 修改为 'highs',以使用更新的求解器
result = linprog(c=-1 * pd.Series(profit_coefficients), A_ub=A, b_ub=b, method='highs')# 输出最优解
optimal_prices = [prices[i] for i, x in enumerate(result.x) if x > 0]
optimal_profit = -result.fun
print(f"最优定价策略: {optimal_prices}")
print(f"预计最大利润: {optimal_profit}")

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415743.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在众多编程工具中,哪一个最能提高你的生产力?

随着软件开发行业的快速发展&#xff0c;开发者们需要使用多种工具来管理代码、调试应用程序、测试功能、以及处理数据库操作。每一个环节都可能会影响到整个项目的进展和最终质量&#xff0c;因此选择合适的工具对于提高工作效率至关重要。在这篇文章中&#xff0c;我将从开发…

VMware16安装Win11虚拟机全步骤

目录 准备工作下载镜像安装镜像开启虚拟机安装虚拟机安装Win11成功 准备工作 1、虚拟机&#xff1a;VMware16.2.1&#xff08;建议使用VMware16版本&#xff0c;15可能不兼容&#xff09; 2、Windows11镜像 下载镜像 1、浏览器打开网址&#xff1a;I tell you 可以看到有三…

坐牢第三十四天(c++)

一.作业 1.栈的手写 #include <iostream> using namespace std; // 封装一个栈 class stcak { private:int *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参构造函数stcak(int size);// 拷贝构造函数stcak(const s…

MySQL数据库增删查改(基础)CRUD

CRUD 即增加 (Create) 、查询 (Retrieve) 、更新 (Update) 、删除 (Delete) 四个单词的首字母缩写。 1. 新增&#xff08;Create&#xff09; 1.1单行数据&#xff08;全列插入&#xff09; 比如说&#xff1a;创建一张学生表&#xff0c;有姓名&#xff0c;学号。插入两个学…

什么是科学碳目标(SBTI认证)

科学碳目标&#xff08;SBTI认证&#xff09;&#xff0c;这一绿色发展的璀璨明珠&#xff0c;是企业迈向可持续未来的重要里程碑。它不仅是全球环境信息研究中心(CDP)、联合国全球契约组织(UNGC)、世界资源研究所(WRI)与世界自然基金会(WWF)共同铸就的智慧结晶&#xff0c;更是…

一款实用的浏览器插件,关闭登录提示框一键复制代码

codebox插件是一款面向开发者和技术爱好者的浏览器插件&#xff0c;旨在优化用户的浏览和学习体验。该插件支持多个技术网站&#xff0c;包括CSDN、知乎、简书、脚本之家、博客园、51CTO博客和php中文网等。 主要功能包括&#xff1a; 免登录一键复制代码&#xff1a;用户无需…

Two to One——C语言提高题【7 kyu】

一、原题 链接&#xff1a;Training on Two to One | Codewars Take 2 strings s1 and s2 including only letters from a to z. Return a new sorted string (alphabetical ascending), the longest possible, containing distinct letters - each taken only once - coming…

书生大模型实战营基础(3)——LangGPT结构化提示词编写实践

目录 0、基础知识 1、准备 1.1环境配置 1.2创建项目路径 2、模型部署 2.1获取模型 2.2部署模型为OpenAI server 3.提示工程(Prompt Engineering) 3.1 什么是Prompt 3.2 什么是提示工程 3.3 提示设计框架 4、任务 4.1利用LangGPT优化提示词 0、基础知识 Prompt&…

C++程序调用SetWindowsHookEx全局拦截键盘按键消息和窗口消息的Hook实例分享

目录 1、Hook与Hook过程函数 2、SetWindowsHookEx函数说明 3、Hook实例1 - 使用SetWindowsHookEx在程序中拦截键盘消息 4、Hook实例2 - 使用SetWindowsHookEx在程序中拦截某个窗口的消息 5、最后 C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢…

wsl下将Ubuntu从c盘移动到其他盘

一、概述 因为自己的C盘内存不足&#xff0c;加上之后需要在Ubuntu下面下载许多的内容和东西&#xff0c;需要将其移动到d盘上面&#xff0c;这样可以拥有更大的空间。这里记载了一下自己的操作过程。 二、具体步骤 &#xff08;一&#xff09;过程 1.查看当前系统中wsl分发版…

Hi3061M开发板初测——点亮小灯

目录 前言环境配置点亮led源码IDA集成了串口监视器最后下载到开发板中运行 前言 海思MCU体验官活动&#xff0c;Hi3061M开发板到手后&#xff0c;配置环境初步测试点亮小灯。 环境配置 环境配置按照gitee提供的redeme一步一步来配置起来很顺利。具体可自行查阅&#xff1a;环境…

Python机器学习——人脸性别识别

一、选题背景 人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一&#xff0c;也是近年来的研究热点&#xff0c;人脸性别识别作为人脸识别技术的重要组成部分也受到了广泛地关注。人脸性别识别就是向计算机输入人脸图像&#xff0c;经过某种方法或运算&#xff…

springnboot +uniapp汽车租赁系统

springnboot uniapp汽车租赁系统 手机移动端&#xff1a;主页&#xff0c;租赁汽车展示&#xff0c;汽车租赁&#xff0c;我的租赁记录&#xff0c;还车记录&#xff0c;注册登录&#xff0c;修改个人资料 PC端管理后台&#xff1a;公告管理&#xff0c;用户管理&#xff0c;…

【链表】环形链表

环形链表 环形链表I题目思路讲解代码书写拓展问题 环形链表II题目题目解析思路讲解代码书写 环形链表I 题目 题目链接: 环形链表 思路讲解 对于探究一个线性结构是否有环, 最经典的做法就是快慢指针法. 我们定义两个指针, 一个一次走两步, 一个一次走一步, 走完后判断两个是…

虚幻引擎VR游戏开发01 | VR设备和术语

四款Unreal Engine默认配套按键映射的VR设备 IMC按键映射 Oculus Touch (R) Grip Axis: 代表Oculus Rift或Quest设备的右手控制器的抓握轴输入。Valve Index (R) Grip Axis: 代表Valve Index设备的右手控制器的抓握轴输入。Vive (R) Grip: 代表HTC Vive设备的右手控制器的抓握…

chrome 插件开发入门

1. 介绍 Chrome 插件可用于在谷歌浏览器上控制当前页面的一些操作&#xff0c;可自主控制网页&#xff0c;提升效率。 平常我们可在谷歌应用商店中下载谷歌插件来增强浏览器功能&#xff0c;作为开发者&#xff0c;我们也可以自己开发一个浏览器插件来配合我们的日常学习工作…

Vite - 兼容旧版浏览器 plugin-legacy(2)

目录 1&#xff0c;问题2&#xff0c;解决3&#xff0c;String 其他新增 API 的版本 接上文 Vite - 兼容旧版浏览器 plugin-legacy&#xff08;1&#xff09; 1&#xff0c;问题 客户浏览器报错&#xff0c;不支持 replaceAll 方法。 该方法在 query-string 依赖内部使用了。…

嵌入式Linux:常见信号的默认行为

信号是一种软件中断&#xff0c;用于通知进程发生了某种异步事件。信号可以由用户、其他进程或操作系统内核产生。进程可以选择捕获并处理这些信号&#xff0c;或者忽略它们&#xff0c;让系统执行默认操作。 不可靠信号&#xff08;非实时信号&#xff09;&#xff1a;编号为 …

反爬虫策略收录集

前言 反爬虫&#xff0c;是指对扫描器中的网络爬虫环节进行反制&#xff0c;通过一些反制策略来阻碍或干扰爬虫的正常爬行&#xff0c;从而间接地起到防御目的。下面是一些常见的反爬虫策略的收录。 入门版 封IP 由于服务器有防火墙&#xff08;如果防火墙在TCP/UDP层或者它…

渲染100高性能云渲染,性价比超高

在这个3D渲染行业迅速发展的时代&#xff0c;对于渲染速度和稳定性的渴望日益强烈。需要更快的渲染时间来缩短项目周期&#xff0c;同时希望渲染过程更加稳定&#xff0c;避免问题导致的损失。 如今市场上虽然不乏各种云渲染服务&#xff0c;但要找到既经济又能满足高要求的选…