商务与经济统计案例分析:3-1Pelican 商店——python 实现

商务与经济统计案例分析:3-1Pelican 商店

要求

1.净销售额的描述统计量和各种不同类型顾客的净销售额的描述统计量。
2.关于年龄与净销售额之间关系的描述统计量。

Python实现

0.相关分析:2-1案例
1.净销售额的描述统计量和各种不同类型顾客的净销售额的描述统计量。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv("F:\DataAnalysis\StatisticForBusinessAndEconomics\PelicanStores\PelicanStores.csv")
data.head()

在这里插入图片描述

data['Net Sales'].describe()

在这里插入图片描述
从上面描述统计量中可以得出,该数据的样本量为100,其中最小净销售额为13.23,最大净销售额为287.59,平均净销售额是77.600500,该值大于第二四分位数(中位数)59.705000,有可能是因为受极大值影响,所以下面分别看一下净销售额的分布及箱型图:

分布条形图:

bin=[0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300]
data['GroupbyNetSales']=pd.cut(data['Net Sales'],bin,right=False,labels=['20','40','60','80','100','120','140','160','180','200','220','240','260','280','300'])
frequency=data['GroupbyNetSales'].value_counts()
x=list(frequency.sort_index().index)
y=list(frequency.sort_index().values)
plt.style.use('ggplot')
plt.bar(x=x,height=y,width=0.6)
plt.title('净销售额分布条形图')
plt.xlabel('')
plt.ylabel('频数')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()

在这里插入图片描述
通过分布条形图可以看出,净销售额的分布出现左偏的现象,通过箱型图可以查找异常值:

plt.boxplot(x=data["Net Sales"],
            patch_artist=True,   # 是否要自定义颜色
            showmeans=False,     # 是否显示均值点
            boxprops={"color": "black", "facecolor": "c"},    # 箱体的颜色属性,color:边框色,facecolor:填充色
            flierprops={"marker": 'o', "markerfacecolor": "darkorange", "color": "black", "alpha": 0.8},  # 异常值的颜色属性,color:轮廓颜色,marker:标记形状,markerfacecolor:填充色
            medianprops={"linestyle": "--", "color": "black"})   # 中位线颜色属性,linestyle:线型,color:线的颜色
plt.show()

在这里插入图片描述
可以得出净销售额在180以上的数据为“异常数据”。

#查看各种不同类型顾客的净销售额的描述统计量。
table2 = data.pivot_table(values=["Net Sales"], index=["Type of Customer"], aggfunc=[np.mean,np.median,np.std,np.amin,np.amax], fill_value=0)
table2

在这里插入图片描述
从结果来看,促销用户的最小净销售额要小于普通用户的净销售额,促销用户最大净销售额要大于普通用户的净销售额,促销用户的净销售额标准差也大于普通用户的净销售额标准差,促销用户的离散程度比较高,又因为促销用户的净销售额被一些极大值的影响,提高了促销用户净销售额的平均值

#查看各类型用户的净销售额和的占比
data1=data.groupby(by=['Type of Customer'] )['Net Sales'].agg(np.sum)
sizes =list(data1[0:])
labels = list(data1.index)
colors = [ 'lightskyblue', 'lightcoral']
plt.pie(sizes,  labels=labels, autopct='%1.1f%%', colors=colors,shadow=True, startangle=110)

在这里插入图片描述
从总净销售额占比来看,促销用户的总销售额占总净销售额的76%。

2.关于年龄与净销售额之间关系的描述统计量。

plt.scatter(data['Age'], Data['Net Sales'])

plt.title('Age and Net Sales')
plt.xlabel('Age')
plt.ylabel('Net Sales')

plt.tight_layout()
plt.show();

在这里插入图片描述
通过散点图不容易看出这两个变量之间的关系,下面看一下年龄和净销售额的协方差及皮尔逊积矩相关系数:

np.cov(data['Age'], data['Net Sales'])

array([[ 153.48848485, -7.33488889],
[ -7.33488889, 3098.58537045]])

X = np.stack((data['Age'], data['Net Sales']), axis=0)# 每一行作为一个变量
np.corrcoef(X)

array([[ 1. , -0.01063589],
[-0.01063589, 1. ]])
通过计算两个变量之间的协方差可得知年龄和净消费额之间是负相关,进一步的通过皮尔逊相关系数可以得出这两个变量之间是弱相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值