当前位置:   article > 正文

做数学建模不得不会的数据特征分析方法---统计分析_数学建模求数据变化特征

数学建模求数据变化特征

统计分析就是对数据的一些统计指标进行分析,用统计指标来对定量数据进行统计描述,我们常常从集中趋势量和离中趋势量两个方面进行分析

首先引入所述模块

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
  • 1
  • 2
  • 3

1.集中趋势量

集中趋势量是指一组数据向某一中心靠拢的倾向,核心在于寻找数据的代表值或中心值,常从统计平均数来反映,比如算数平均数和位置平均数
(1)算数平均数
首先创建数据

data = pd.DataFrame({'value':np.random.randint(100,120,100),
                    'f':np.random.rand(100)})
data['f'] = data['f'] / data['f'].sum()  # f为权重,这里将f列设置成总和为1的权重占比
print(data.head())
  • 1
  • 2
  • 3

数据展示:
在这里插入图片描述
简单算数平均值

mean = data['value'].mean()
print('简单算数平均值为:%.2f' % mean)
# 简单算数平均值 = 总和 / 样本数量 (不涉及权重)
  • 1
  • 2

加权算数平均值

mean_w = (data['value'] * data['f']).sum() / data['f'].sum()
print('加权算数平均值为:%.2f' % mean_w)
# 加权算数平均值 = (x1f1 + x2f2 + ... + xnfn) / (f1 + f2 + ... + fn)
  • 1
  • 2

计算结果:
在这里插入图片描述

(2)位置平均数

众数:众数是一组数据中出现次数最多的数,这里可能返回多个值

m = data['value'].mode()
print('众数为',m.tolist())
  • 1

中位数: 中位数指将总体各单位标志按照大小顺序排列后,中间位置的数字

med = data['value'].median()
print('中位数为%i' % med)
  • 1

绘制密度曲线

data['value'].plot(kind = 'kde',style = '--k',grid = True)

    绘制简单算数平均值

    plt.axvline(mean,hold=None,color='r',linestyle="--",alpha=0.8)  
    plt.text(mean + 5,0.005,'简单算数平均值为:%.2f' % mean, color = 'r')
    • 1

    绘制加权算数平均值

    plt.axvline(mean_w,hold=None,color='b',linestyle="--",alpha=0.8)  
    plt.text(mean + 5,0.01,'加权算数平均值:%.2f' % mean_w, color = 'b')
    • 1

    绘制中位数

    plt.axvline(med,hold=None,color='g',linestyle="--",alpha=0.8)  
    plt.text(mean + 5,0.015,'中位数:%i' % med, color = 'g')
    • 1

    输出结果:
    在这里插入图片描述

    2.离中趋势度量

    离中趋势是指一组数据中各数据以不同程度的距离偏离中心的趋势,主要通过极差与分位差,方差与标注差,离散系数来反映

    首先生成数据,创建A/B 产品的销量

    data = pd.DataFrame({'A_sale':np.random.rand(30)*1000,
                        'B_sale':np.random.rand(30)*1000},
                       index = pd.period_range('20170601','20170630'))
    print(data.head())
    • 1
    • 2
    • 3

    数据展示
    在这里插入图片描述
    (1)计算极差和分位差
    极差,极差并没有考虑中间变量的变动,测定离中趋势不稳定

    a_r = data['A_sale'].max() - data['A_sale'].min()
    b_r = data['B_sale'].max() - data['B_sale'].min()
    print('A销售额的极差为:%.2f, B销售额的极差为:%.2f' % (a_r,b_r))
    • 1
    • 2

    结果:
    在这里插入图片描述
    分位差

    sta = data['A_sale'].describe()#describe()函数可以求出基本统计量
    stb = data['B_sale'].describe()
    a_iqr = sta.loc['75%'] - sta.loc['25%']
    b_iqr = stb.loc['75%'] - stb.loc['25%']
    print('A销售额的分位差为:%.2f, B销售额的分位差为:%.2f' % (a_iqr,b_iqr))
    • 1
    • 2
    • 3
    • 4

    结果:
    describe()函数结果:
    在这里插入图片描述在这里插入图片描述
    (2)计算方差与标准差
    方差是各组中数值与算数平均数离差平方的算数平均数
    标准差是方差的平方根
    我们通常使用标准差观察离中趋势,标准差越大,离中趋势越明显

    sta = data['A_sale'].describe()#describe()函数可以求出基本统计量
    stb = data['B_sale'].describe()
    
    a_std = sta.loc['std']#标准差
    b_std = stb.loc['std']
    a_var = data['A_sale'].var()#方差
    b_var = data['B_sale'].var()
    print('A销售额的标准差为:%.2f, B销售额的标准差为:%.2f' % (a_std,b_std))
    print('A销售额的方差为:%.2f, B销售额的方差为:%.2f' % (a_var,b_var))
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述
    绘制A密度曲线

    fig = plt.figure(figsize = (12,4))
    ax1 = fig.add_subplot(1,2,1)
    data['A_sale'].plot(kind = 'kde',style = 'k--',grid = True,title = 'A密度曲线')
    plt.axvline(sta.loc['50%'],hold=None,color='r',linestyle="--",alpha=0.8)  
    plt.axvline(sta.loc['50%'] - a_std,hold=None,color='b',linestyle="--",alpha=0.8)  
    plt.axvline(sta.loc['50%'] + a_std,hold=None,color='b',linestyle="--",alpha=0.8)  
    # A密度曲线,1个标准差
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    绘制B密度曲线

    ax2 = fig.add_subplot(1,2,2)
    data['B_sale'].plot(kind = 'kde',style = 'k--',grid = True,title = 'B密度曲线')
    plt.axvline(stb.loc['50%'],hold=None,color='r',linestyle="--",alpha=0.8)  
    plt.axvline(stb.loc['50%'] - b_std,hold=None,color='b',linestyle="--",alpha=0.8)  
    plt.axvline(stb.loc['50%'] + b_std,hold=None,color='b',linestyle="--",alpha=0.8)  
    # B密度曲线,1个标准差
    • 1
    • 2
    • 3
    • 4
    • 5

    输出结果:
    在这里插入图片描述

    关注欢喜,走向成功~

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/532609
    推荐阅读
    相关标签
      

    闽ICP备14008679号