精华内容
下载资源
问答
  • 描述性统计分析

    千次阅读 2018-11-28 13:34:44
    描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述...

    描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析 描述性统计分析

    展开全文
  • 描述性统计分析的应用—基于描述性统计分析识别优质股票内容导入:大家好,这里是每天分析一点点。上期给大家介绍离散趋势,本期介绍描述性统计分析的基本原理与应用,包括集中趋势、离散趋势、偏度与峰度的概念,再...
    be268f1f62badf3e01173703b82a0fa5.png

    描述性统计分析的应用

    —基于描述性统计分析识别优质股票

    123c771f238d315b7b8e2a9b8a32b122.gif

    内容导入:

    大家好,这里是每天分析一点点。

    上期给大家介绍离散趋势,本期介绍描述性统计分析的基本原理与应用,包括集中趋势、离散趋势、偏度与峰度的概念,再结合投资选股案例分析,讨论优质股鉴别方法,根据描述性统计指标计算结果解释原因。文章内容适合数据分析小白,内容深入浅出,案例贴合实际。

    下期给大家介绍正态分布的应用,欢迎大家关注。

    1

    2cf9d55f5b5eb39db95036f5b310b939.gif

    概念介绍:

    描述性统计分析的概念:

    描述性统计,即概括性度量。是用来概括、表述整体状况以及事物间关联、类属关系的统计方法。通过统计处理可以简洁地用几个统计值来表示一组数据的集中性和离散型 (波动性大小)。

    数据的频数分析:

    在数据的预处理部分,利用频数分析和交叉频数分析可以检验异常值。

    数据的集中趋势分析:

    用来反映数据的一般水平,常用的指标有平均值、中位数和众数等。

    数据的离散程度分析:

    主要是用来反映数据之间的差异程度,常用的指标有方差和标准差。

    数据的分布:

    在统计分析中,通常要假设样本所属总体的分布属于正态分布,因此需要用偏度和峰度两个指标来检查样本数据是否符合正态分布。

    306bae5d3a1879e8496f5f1273ccb505.png

    2

    2cf9d55f5b5eb39db95036f5b310b939.gif

    描述性统计分析的指标:

    分类变量的常用描述指标:

    1、频数:在一组依大小顺序排列的测量值中,当按一定的组距将其分组时出现在各组内的测量值的数目,分类变量的频数即落在各类别中的数据个数。

    2、累计频数:累积频数就是将各类别的频数逐级累加起来。

    3、百分比:表示一个数是另一个数的百分之几,也叫百分率或百分数。百分比通常采用符号“%”(百分号)来表示。

    4、累积百分比:累积百分比就是将各类别的百分比逐级累加起来。

    连续变量的描述分析:

    1、绝对数。

    2、相对数:倍数、成数、百分数。

    3、百分比。

    4、百分点:1个百分点=1%,是指变动的幅度。

    5、频数:绝对数,是一组数据中个别数据重复出现的次数。

    6、频率:相对数,次数与总次数的比。。

    7、比例:相对数,总体中各部分占全部的比,如:男生的比例是30:50。

    8、比率:相对数,不同类别的比,如男女比率是3:2。

    9、倍数:相对数,一个数除以另一个数所得的商,如A/B=C,那么A是B的C倍。

    10、番数:相对数,指原来数量的2的N次方,如翻一番,意思是原来数量的2倍,翻两番意思是4倍。

    11、同比:相对数,指历史同时期进行比较,如去年12月与今年12月相比是同比。

    12、环比:相对数,指与前一个统计期进行比较,如今年5月与今年4月相比是环比。

    描述集中趋势的指标:

    1、均值:数据和值除以数据个数。

    2、中位数:数据按照从小到大的顺序排列时,最中间的数据即为中位数。

    3、众数:数据中出现次数最多的数字,即频数最大的数值。

    描述离散趋势的指标:

    1、极差:极差=最大值-最小值,是描述数据分散程度的量,且对异常值敏感。

    2、四分位数:数据从小到大排列并分成四等份,处于三个分割点位置的数值,即为四分位数。

    3、方差和标准差方差是每个数据值与全体数据的平均数差的平方的平均数。标准差是方差开方。

    4、标准分z:对数据进行标准化处理,又叫Z标准化,经过Z标准化处理后的数据符合正态分布。

    描述分布形状的指标:

    1、峰度:用来反映频数分布曲线顶端尖峭或扁平程度的指标。在正态分布情况下,峰度系数值是3(但是SPSS等软件中将正态分布峰度值定为0,是因为已经减去3,这样比较起来方便),峰度系数>3,呈现尖峭峰形态,说明观察量更集中,有比正态分布更短的尾部;峰度系数<3,呈现平阔峰形态,说明观测量不那么集中,有比正态分布更长的尾部。

    2、偏度:描述分布偏离对称性程度的一个特征数。当分布左右对称时,偏度系数为0。当偏度系数大于0时,即重尾在右侧时,该分布为右偏。当偏度系数小于0时,即重尾在左侧时,该分布左偏。

    3

    2cf9d55f5b5eb39db95036f5b310b939.gif

    综合应用场景:

    风险投资案例:

    # 目前你有500万资金,准备进行投资,已知有三只股票, 10位专家分别给出了明天的价格预测:

    # A股票,现在10元每股,专家的价格预测序列为:

    dataA=[11,9,11,11,13,8,14,1,11,11]

    # B股票,现在20元每股,专家的价格预测序列为:

    dataB=[28,16,20,94,22,24,26,18,17,27]

    # C股票,现在50元每股,专家的价格预测序列为:

    dataC=[53,59,47,48,58,53,1,128,53,53]

    # 你准备现在买股票,明天卖出去,你会选择那只股票,为什么?

    从数据上看,某些专家的预测结果好像不合群,怎么看这些不合群的想法?

    题目看似简单,实则包含套路,不同价格的股票,能买进的数量是不一致的,怎么办呢?

    00445b3d96f3a01b4a468b7b9f5af00e.png

    处理方式非常多:

    1、将股票价格“统一”,全部统一为50元或者10元,购买的股票数就是一致的

    2、求出利润率=(股价-股本)/股本   ,相对值就可以一致处理

    3、按照当前价格进行计算,处理计算结果

    代码计算过程:

    案例选用第三种方式处理,按照当前价格计算后,在对利润里进行处理。

    处理过程如下:

    步骤1  股票数据录入

    录入三支股票预测数据,转化为series数据格式

    import pandas as pd
    A股票:

    dataA=[11,9,11,11,13,8,14,1,11,11]
    A=pd.Series(dataA)

    B股票:

    dataB=[28,16,20,94,22,24,26,18,17,27]
    B=pd.Series(dataB)

    C股票:

    dataC=[53,59,47,48,58,53,1,128,53,53]
    C=pd.Series(dataC)

    步骤2 剔除异常估计

    A股票:

    dataA=[11,9,11,11,13,8,14,1,11,11]

    A=A.drop(index=7)

    #剔除估计中的极小值1

    B股票:

    dataB=[28,16,20,94,22,24,26,18,17,27]

    B=B.drop(index=3)

    #剔除估计中的极大值94

    C股票:

    dataC=[53,59,47,48,58,53,1,128,53,53]

    C=C.drop(index=[6,7])

    #剔除估计中的极大值与极小值1与128

    步骤3 计算收入期望

    A股票:A=[11,9,11,11,13,8,14,11,11]

    a_mean=A.mean()
    print('a_mean')
    print(a_mean)

    B股票:B=[28,16,20,22,24,26,18,17,27]

    b_mean=B.mean()
    print('b_mean')
    print(b_mean)

    C股票:C=[53,59,47,48,58,53,53,53]

    c_mean=C.mean()
    print('c_mean')
    print(c_mean)

    步骤4 计算收入波动

    A股票:A=[11,9,11,11,13,8,14,11,11]

    a_std=A.std()
    print('a_std')
    print(a_std)

    B股票:B=[28,16,20,22,24,26,18,17,27]

    b_std=B.std()
    print('b_std')
    print(b_std)

    C股票:C=[53,59,47,48,58,53,53,53]

    c_std=C.std()
    print('c_std')
    print(c_std)

    步骤5 计算离散系数

    A股票:A=[11,9,11,11,13,8,14,11,11]

    print('a_lisanxishu')
    print(a_std/a_mean)

    B股票:B=[28,16,20,22,24,26,18,17,27]

    print('b_lisanxishu')
    print(b_std/b_mean)

    C股票:C=[53,59,47,48,58,53,53,53]

    print('c_lisanxishu')
    print(c_std/c_mean)

    通过计算,得出的描述性统计分析结果如下表所示: 

    eae6740c341ac875a2e94762f143a6bd.png

    利润率来看,A股票和B股票利润率都是10%,大于C股票的6%。从风险来看,离散系数,C股票小于A股票小于B股票。

    对于期待高收益、能接受较高风险的投资者来说,应该选择A股票,因为它收益最高,在收益高中的股票中,风险较小。

    对于保守的股民来说,应该选择C股票,虽然收益相对较低,但是安全性好。

    对于中等偏下风险的股民来说,可以选择A股票与C股票的组合策略,既提高了收益,也相对降低了风险。具体如何配比,要看股民能够承受的风险与期待的利润。这就是风险分散的魅力。

    最后,这个案例不存在选择B股票的策略,因为他能够被A股票替代。选B股票的人,有什么理由不选A股票呢。

    2cf9d55f5b5eb39db95036f5b310b939.gif

    本期分享到这里,我们会在每周的周三和周五持续更新,咱们下期再见,期待您的光临。

    有什么建议,比如想了解的知识、内容中的问题、想要的资料、下次分享的内容、学习遇到的问题等,请在下方留言。如果喜欢请关注。

    7ce24643154895a51ab8e0dbf358ac45.png981ffcb405bfb20ef87b243f082e6daf.gif
    展开全文
  • 数据分析师一定要掌握的基础——描述性统计分析

    千次阅读 多人点赞 2020-03-31 23:20:54
    以下博客内容讲解了描述性统计分析的所有知识点,以及利用鸢尾花数据集的分析加强对各个统计量的理解。 数理统计基础-描述性统计分析1、数理统计基础2、描述性统计分析概述(1)概念(2)变量的类型3、统计量(1)...

    申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师。

    以下博客内容讲解了描述性统计分析的所有知识点,以及利用鸢尾花数据集的分析加强对各个统计量的理解。

    1、数理统计基础

    数理统计,以概率论为基础,研究大量随机现象的统计规律性。数理统计分为如下两类:

    • 描述统计
    • 推断统计

    数理统计在数据分析领域具有非常重要的地位。

    2、描述性统计分析概述

    (1)概念

    什么是描述性统计分析?

    描述性统计分析,就是从总体数据中提取变量的主要信息(总和、均值等),从而从总体层面上,对数据进行统计性描述。在统计的过程中,通常会配合绘制相关的统计图来进行辅助。

    描述性统计所提取统计的信息,我们称为**统计量**,主要包括以下几个方面:

    • 频数与频率
       - 频数
       - 频率
      
    • 集中趋势分析
       - 均值
       - 中位数
       - 众数
       - 分位数
      
    • 离散程度分析
       - 极差
       - 方差
       - 标准差
      
    • 分布现状
       - 偏度
       - 峰度 
      

    (2)变量的类型

    从统计学角度看,变量可以分为以下两种类型。
    变量的类型:

    • 类别变量(变量的值是一个具体的类别)

      • 无序类别变量(名义变量)
        (变量的各个取值之间没有大小顺序之分)
      • 有序类别变量(等级变量)
        (变量值之间有大小之分)
    • 数值变量(具体的一个数值)

      • 连续变量(区间之内取任意一个值)
      • 离散变量(不能取区间内的任意值,只能取整数值)

    3、统计量

    (1)频数与频率

    数据的频数与频率统计适用于类别变量。

    a. 频数

    频数,指数据中类别变量每个不同取值出现的次数。
    例如:我们去超市买苹果,买了5次,这个就是频数。

    b. 频率

    频率,指每个类别变量的频数与总次数的比值,通常采用百分数表示。
    例如:我们取超市买苹果5次,总公去了10次,那么5/10(50%)就是频率。

    我们以鸢尾花(iris)数据集进行分析:
    鸢尾花数据集中包含150行4列3类数据,每类各50个数据。
    每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。

    》》》导入库、设置图形样式等:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    from sklearn.datasets import load_iris
    import warnings
    
    # 设置seaborn绘图的样式。
    # darkgrid 设置成暗色的网格的形式
    sns.set(style="darkgrid")
    # 设置字体
    plt.rcParams["font.family"] = "SimHei"
    # 对符号的支持
    plt.rcParams["axes.unicode_minus"] = False
    # 忽略警告信息。
    warnings.filterwarnings("ignore")
    

    我们来加载数据查看下:

    # 加载鸢尾花数据集。
    iris = load_iris()
    display(iris)
    

    data 就是鸢尾花的数据,我们这里只展示部分数据:
    在这里插入图片描述
    target 就是鸢尾花的类别,类别为0,1,2
    在这里插入图片描述
    三种鸢尾花的类别分别是什么呢?
    在这里插入图片描述
    分类是山鸢尾花(Iris Setosa)、变色鸢尾花(Iris Versicolor)、维吉尼亚鸢尾花(Iris Virginica)。
    接着我们看下具体的数据:
    因为数据太多,我们只利用切片查看前10行数据,类别也查看前10行。

    # iris.data:鸢尾花数据集。
    # iris.target:每朵鸢尾花对应的类别。(取值为0,1,2)
    display(iris.data[:10], iris.target[:10])
    # iris.feature_names:特征列的名称。
    # iris.target_names:鸢尾花类别的名称。
    display(iris.feature_names, iris.target_names)
    

    在这里插入图片描述
    4列(特征列)数据分别代表:花萼长度、花萼宽度、花瓣长度、花瓣宽度。
    接下来我们进行简单的分析
    首先我们需要把鸢尾花的数据和类别拼接到一起:

    # 将鸢尾花数据与对应的类型合并,组合成完整的记录。
    data = np.concatenate([iris.data, iris.target.reshape(-1, 1)], axis=1)
    data = pd.DataFrame(data, 
            columns=["sepal_length", "sepal_width", "petal_length", "petal_width", "type"])
    data.sample(10)
    

    因为鸢尾花的数据iris.data为二维数组,但是类别iris.target为一维数组,此时我们需要通过reshape来将一维数组转换为二维数组。
    axis=1 表示纵向,此时为纵向拼接。
    在这里插入图片描述
    我们以类型(type)列为例,来计算鸢尾花每个类别的频数和频率。

    # 计算鸢尾花数据中,每个类别出现的频数。
    frequency = data["type"].value_counts()
    display(frequency)
    # 计算每个类别出现的频率,通常使用百分比表示。
    percentage = frequency * 100 / len(data)
    display(percentage)
    

    len(data) 鸢尾花数据的总长度;
    因为要用百分比表示所以要乘以100;
    value_counts() 计算个数。
    在这里插入图片描述
    从结果可知,类别中0,1,2分别出现了50次,他们的频率分别为33.333333
    我们用柱形图来看下类别的个数情况:
    在这里插入图片描述

    (2)集中趋势

    a. 均值

    均值,即平均值,其为一组数据的总和除以数据的个数。

    b. 中位数

    将一组数据升序排列,位于该组数据最中间位置的值,就是中位数,如果数据个数为偶数,则取中间两个数值的均值。

    c. 众数

    一组数据中出现次数最多的值。

    关于三者,说明如下:
    在这里插入图片描述
    三者的关系如下图所示:
    在这里插入图片描述
    什么是正态分布(对称分布)?
    正态分布是以均值作为对称的一种分布形式。
    左偏分布:
    存在少数的极小值。
    右偏分布:
    存在少数的极大值。
    怎么区分左偏分布和右偏分布?
    从图形中间切一刀,哪边面积少就是什么分布。
    例如:下面图形右边的面积少,所以就是右偏分布
    这里右边的面积少,所以就是右偏分布

    接下来我们以鸢尾花长度为例,计算其集中趋势:

     # 计算花萼长度的均值。
    mean = data["sepal_length"].mean()
    # 计算花萼长度的中位数。
    median = data["sepal_length"].median()
    # 计算花萼长度的众数。
    s = data["sepal_length"].mode()
    # 注意,mode方法返回的是Series类型。
    mode = s.iloc[0]
    print(mean, median, mode)
    

    mean()均值,median()中位数,mode()众数
    结果:在这里插入图片描述
    我们可以看到结果中鸢尾花的花萼长度列,均值和中位数几乎相等,我们猜想该数据应该是对称分布的,符合正态分布,这也应了自然界的数据都符合正态分布的说法。

    我们也可以使用scipy中的stats模块来求一组数据的众数。

    from scipy import stats
    stats.mode(data["sepal_length"]).mode
    

    结果:array([5.]),可以看到和Series算出来的众数是一样的。
    接下来把上面的数据进行可视化:

    # 绘制数据的分布(直方图 + 密度图)。
    sns.distplot(data["sepal_length"])
    # 绘制垂直线。
    plt.axvline(mean, ls="-", color="r", label="均值")
    plt.axvline(median, ls="-", color="g", label="中值")
    plt.axvline(mode, ls="-", color="indigo", label="众数")
    plt.legend()
    

    distplot 核密度图
    在这里插入图片描述

    d. 分位数

    在这里插入图片描述
    把数据集分成若干个区间,分为几就为几分位数。
    先排序再分位,分位大致相等的若干区间。
    在这里插入图片描述
    给定一组数据,假设存放在数组中,我们要如何计算其四分位值呢?首先要明确一点,四分位值未必一定等同于数组中的某个元素。
    在Python中四分位值的计算方式如下:

    1. 首先,计算四分位的位置。
      在这里插入图片描述
      其中,位置索引index从0开始,n为数组中元素的个数。
      假设现在n=5,我们来计算下四分位值分别是多少?
      在这里插入图片描述
    2. 根据位置计算四分位值。
      在这里插入图片描述
      如果n-1不能被4整除又该怎么办呢?
      假设有这么一组数据:
      在这里插入图片描述
      n=6,四分位处的值会得出一个小数,这时候我们就不能用索引的方式直接计算。
      Q1结果等于5 * 1/4 = 1.25,1.25是介于1和2之间
      在这里插入图片描述
      但更接近于索引1,也就离12这个数更近,说明12这个数的权重更高。
      怎么计算权重呢?
      用1减去小数部分,就是左边的权重,小数部分本身就是右边的权重。
      用1-0.25=0.75,0.75就是12的权重,那么13的权重就是0.25。
      当我们得到权重之后,怎么计算四分位数呢,例如计算1/4(Q1):
      Q1=12 * 0.75+13 * 0.25,结果就是1/4位数。
      剩下Q2、Q3是类似的方法计算即可。

    index为整数的情况
    我们首先来计算四分位的位置:

    x = np.arange(10, 19) #9个数
    n = len(x)
    # 计算四分位的索引(index)。
    q1_index = (n - 1) * 0.25
    q2_index = (n - 1) * 0.5
    q3_index = (n - 1) * 0.75
    print(q1_index, q2_index, q3_index)
    

    结果:2.0 4.0 6.0
    拿着2.0 4.0 6.0的索引值去找对应的四分位值即可。但是因为索引值没有小数,需要把0去掉转为整数类型:

    # 将index转换成整数类型。
    index = np.array([q1_index, q2_index, q3_index]).astype(np.int32)
    print(x[index])
    

    结果:[12 14 16],即1/4位,中位,3/4位数。

    可视化呈现:

    plt.figure(figsize=(15, 4))
    plt.xticks(x)
    plt.plot(x, np.zeros(len(x)), ls="", marker="D", ms=15, label="元素值")
    plt.plot(x[index], np.zeros(len(index)), ls="", marker="X", ms=15, label="四分位值")
    plt.legend()
    

    在这里插入图片描述

    index不是整数的情况
    当index不是整数时,我们使用最近位置的两个整数,加权计算来得到四分位的位置。每个整数的权重为距离的反比。

    x = np.arange(10, 20)
    n = len(x)
    q1_index = (n - 1) * 0.25
    q2_index = (n - 1) * 0.5
    q3_index = (n - 1) * 0.75
    print(q1_index, q2_index, q3_index)
    

    结果:2.25 4.5 6.75
    可以看到计算结果不是整数
    我们使用该值临近的两个整数来计算四分位值。

    index = np.array([q1_index, q2_index, q3_index])
    # 计算左边元素的值。
    left = np.floor(index).astype(np.int32)
    # 计算右边元素的值。
    right = np.ceil(index).astype(np.int32)
    # 获取index的小数部分weight与整数部分_ 。
    weight, _ = np.modf(index)
    # 根据左右两边的整数,加权计算四分位数的值。权重与距离成反比。
    q = x[left] * (1 - weight) + x[right] * weight
    print(q)
    

    结果:[12.25 14.5 16.75],1/4分位12.25,2/4分位14.5,3/4分位16.75

    weight, _ = np.modf(index) 中下划线的解释:
    Python中我们对于不使用的变量,习惯用 _ 来命名变量。
    也就是在2.25 4.5 6.75中,2,4,6整数部分我们不用,所以定义成下划线即可。

    可视化呈现:

    plt.figure(figsize=(15, 4))
    plt.xticks(x)
    plt.plot(x, np.zeros(len(x)), ls="", marker="D", ms=15, label="元素值")
    plt.plot(q, np.zeros(len(q)), ls="", marker="X", ms=15, label="四分位值")
    for v in q:
        plt.text(v, 0.01, s=v, fontsize=15)
    plt.legend()
    

    在这里插入图片描述
    结论:
    四分位值不一定出现在我们数据的元素中。

    我们刚才自行计算了每个四分位的值,但是,其实在Python中,Numpy与Pandas提供了相关的方法,无需我们自行计算。

    Numpy中计算四分位数:

    x = [1, 3, 10, 15, 18, 20, 23, 40]
    # quantile与percentile都可以计算分位数,不同的是,quantile方法,
    # q(要计算的分位数)的取值范围为[0, 1],而percentile方法,q的
    # 取值范围为[0, 100]。
    print(np.quantile(x, q=[0.25, 0.5, 0.75]))
    print(np.percentile(x, q=[25, 50, 75]))
    

    结果:
    [ 8.25 16.5 20.75]
    [ 8.25 16.5 20.75]

    Numpy 中quantile与percentile计算四分位数的区别:
    quantile方法, q(要计算的分位数)的取值范围为[0, 1]
    percentile方法,q的取值范围为[0, 100]。

    Pandas中计算四分位数:

    x = [1, 3, 10, 15, 18, 20, 21, 23, 40]
    s = pd.Series(x)
    print(s.describe())
    

    在这里插入图片描述
    在上面的结果中,我们如何将四分之一分位的值提取出来呢?

    s.describe()[4]
    s.describe()['25%']
    s.describe().iloc[4]
    s.describe().loc['25%']
    s.describe().ix[4]
    s.describe().ix['25%']
    

    建议使用 s.describe().iloc[4] 和 s.describe().loc[‘25%’] 这两种方式取值,因为更具有针对性,分别是位置索引和标签索引取值,不容易产生错误。

    默认情况下,describe 方法会统计各个四分位的值,我们可以通过percentiles参数来自定义需要统计的分为(百分位)。
    在这里插入图片描述

    (3)离散程度

    a. 极差

    极差指一组数据中,最大值和最小值之差。

    b. 方差

    方差体现的是一组数据中,每个元素与均值偏离的大小。
    在这里插入图片描述

    c.标准差

    标准差为方差的开方。

    关于极差、方差和标准差:
    在这里插入图片描述

    我们以花萼长度来看下离散程度:

    # 计算极差。
    sub = data["sepal_length"].max() - data["sepal_length"].min()
    # 计算方差。
    var = data["sepal_length"].var()
    # 计算标准差。
    std = data["sepal_length"].std()
    print(sub, var, std)
    

    var()方差、std()标准差
    结果:
    3.6000000000000005 0.6856935123042505 0.8280661279778629

    可视化显示:

    plt.figure(figsize=(15, 4))
    plt.ylim(-0.5, 1.5)
    plt.plot(data["petal_length"], np.zeros(len(data)), ls="", marker="o", ms=10, color="g", label="花瓣长度")
    plt.plot(data["petal_width"], np.ones(len(data)), ls="", marker="o", ms=10, color="r", label="花瓣宽度")
    plt.axvline(data["petal_length"].mean(), ls="--", color="g", label="花瓣长度均值")
    plt.axvline(data["petal_width"].mean(), ls="--", color="r", label="花瓣宽度均值")
    plt.legend()
    

    在这里插入图片描述
    从图形可以看出:
    花瓣宽度(红色的)围绕均值更加集中,而花瓣长度(绿色的)围绕均值更加分散。
    从方差或者标准差的角度绿色的方差就会大,而红色的方差就会小。

    (4)分布形状

    a. 偏度

    偏度是统计数据分布倾斜方向和程度的度量,是统计数据分布非对称程度的数学特征。
    在这里插入图片描述
    在这里插入图片描述

    # 构造左偏分布数据。
    t1 = np.random.randint(1, 11, size=100)
    t2 = np.random.randint(11, 21, size=500)
    t3 = np.concatenate([t1, t2])
    left_skew = pd.Series(t3)
    # 构造右偏分布数据。
    t1 = np.random.randint(1, 11, size=500)
    t2 = np.random.randint(11, 21, size=100)
    t3 = np.concatenate([t1, t2])
    right_skew = pd.Series(t3)
    # 计算偏度。
    print(left_skew.skew(), right_skew.skew())
    # 绘制核密度图。
    sns.kdeplot(left_skew, shade=True, label="左偏")
    sns.kdeplot(right_skew, shade=True, label="右偏")
    plt.legend()
    

    偏度结果:
    -0.858626159687255 0.8159924321369632
    核密度(概率密度分布)图:
    在这里插入图片描述

    有极大或极小值时,也就是出现左偏或者右偏分布数据的时候,不适用使用均值,因为均值会被异常值所影响,这个时候可以使用中位数或者众数说明,又或者我们提前把异常值处理掉再使用也可以。

    b. 峰度

    峰度是描述总体中所有取值分布形态陡缓程度的统计量。可以将峰度理解为数据分布的高矮程度。峰度的比较是相对于标准正态分布的。

    在这里插入图片描述

    standard_normal = pd.Series(np.random.normal(0, 1, size=10000))
    print("标准正态分布峰度:", standard_normal.kurt(), "标准差:", standard_normal.std())
    print("花萼宽度峰度:", data["sepal_width"].kurt(), "标准差:", data["sepal_width"].std())
    print("花瓣长度峰度:", data["petal_length"].kurt(), "标准差:", data["petal_length"].std())
    sns.kdeplot(standard_normal, label="标准正态分布")
    sns.kdeplot(data["sepal_width"], label="花萼宽度")
    sns.kdeplot(data["petal_length"], label="花瓣长度")
    

    结果:
    在这里插入图片描述
    在这里插入图片描述
    和标准正态分布比较:
    峰度越大,标准差越小并且小于标准正态分布的标准差,其图形月窄。
    峰度越小,标准差越大并且大于标准正态分布的标准差,其图形越宽。

    4、总结

    • 描述性统计分析的概念和应用。
    • 频率与频数的使用。
    • 集中趋势与离散程度。
    • 数据分析形状之偏度和峰度。
    • 各种统计量使用Python实现。
    展开全文
  • 一、数据分析的分类与作用 二、数据分析方法-描述性统计分析

    一、数据分析的分类作用

    二、数据分析方法-描述性统计分析

    展开全文
  • 一、描述性统计分析  所谓描述性分析,就是对一组数据的各种特征进行分析,以便于描述测量样本的各种特征值以及其所代表的总体的特征。描述性统计分析的项目很多,常用的如平均数、标准差、中位数、频数分布、正态...
  • 运用Excel实现描述性统计分析

    千次阅读 2019-07-26 10:59:54
    上篇文章介绍了描述性统计分析的常用指标及其计算公式(上篇文章链接:描述性统计分析),这次介绍一下如何运用Excel实现描述性统计分析。 下图为一张商品信息表,现对商品的价格、销量、评论数进行描述性统计分析。...
  • 描述性统计分析主要包括 基本信息:样本数、总和 集中趋势:均值、中位数、众数 离散趋势:方差(标准差)、变异系数、全距(最小值、最大值)、内四分位距(25%分位数、75%分位数) 分布描述:峰度系数、偏度系数 ...
  • 1.频率分析:统计学分为描述性统计分析和推断性统计分析描述性统计分析:应用分类,制表,图形以及概括性数据制表来概括数据分布特征的方法,结论不能推及总体。推断性统计:推断性统计分析得到的结论适用于总体描述...
  • 3. 描述性统计分析

    千次阅读 2018-06-10 18:29:37
    描述性统计分析 描述性统计分析 描述定性数据的图形法和数值法 描述定量数据的图形法 点图 茎叶图 直方图 描述定量数据的数值法 中心趋势的度量 变异性的度量 相对位置的度量 百分位数 z得分 检测异常值的...
  • 描述性统计分析-day1

    2019-11-22 17:54:31
    描述性统计分析 数理统计,以概率论为基础,研究大量的随机现象的统计规律性。数理统计分为如下两类 1 描述统计 2 推断统计 两者区别和联系: 区别: 描述统计 研究的是数据收集、处理、汇总、图表描述、概括...
  • 文章目录描述性统计分析描述性统计所提取的统计信息,我们成为**统计量**,其内容包括以下几方面:变量分类:分位数点估计与区间估计点估计:区间估计:区别:中心极限定理:正态分布检验假设检验Z检验T检验回归分析线性回归...
  • 使用R进行描述性统计分析

    千次阅读 2019-09-24 22:30:48
    title: “使用R进行描述性统计分析” output: html_document: ###单组计算描述性统计量 在对数据进行统计分析之前,一般我们需要知道当前数据的描述统计情况,如集中趋势、离散趋势、分布形状。如果数据表中有很...
  • 说明:本文为博主原创文章...描述性统计分析 1.单因子频数:描述名义变量的分布-----条形图、饼状图 2.单变量描述:描述连续变量的分布-----直方图 3.两个分类变量+频数(统计样本数用的):表分析(先行后列)------...
  • SPSS——描述性统计分析——描述

    千次阅读 2016-07-01 22:31:12
    简介基本的统计分析,对于数据集进行描述性统计分析 - 是连续性统计描述应用最多的一个过程 - 可将原始数据转换成标准z得分,并以变量形式存入数据表供以后分析。菜单Analyze -> Descriptive Statistics -> ...
  • R语言实战之描述性统计分析 下面展示一些 描述性统计分析的R代码语言。 vars <- c("mpg","hp","wt") head(mtcars[vars]) #创造一个统计的函数列表 #通过sapply()计算描述性统计变量(包括偏度和峰度) mystats &...
  • SPSS中的基本统计分析主要包括频数分析、描述性统计分析、探索分析、列联表分析等。这节先来介绍前两种的SPSS操作过程。一频数分析1、目的通过频数分析能够了解变量取值的状况,对把握数据的分布特征是很有帮助的。2...
  • 描述性统计分析是关于数据的描述和汇总。它使用两种主要方法: 定量方法以数值方式描述和汇总数据。 可视化方法通过图表,曲线图,直方图和其他图形来说明数据。 一般在数据分析的过程中,拿到数据不会去直接去...
  • r语言描述性统计分析

    千次阅读 2017-06-18 15:57:10
    w #平均数:mean函数 w.mean #中位数:median函数 median(x) #quantile()函数 quantile(w) #描述性统计函数 ...#描述性统计分析:Hmisc包中的describe() library(Hmisc) describe(mtcars[vars])

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,556
精华内容 1,022
关键字:

描述性统计分析