数据分析报告——经典统计量的描述性分析:平均数方差、偏度峰度

描述性分析

    • 一、数据报告
    • 二、变量说明表
    • 三、统计量描述
      • 位置的度量
        • 1. 平均数
        • 2. 中位数和分位数
        • 3. 两者的对比
        • 4. 最大值和最小值
      • 变异程度的度量
        • 1. 方差和标准差
        • 2. 极差和四分位数间距
        • 3.变异系数
      • 分布形状的度量
        • 1. 偏度
        • 2. 峰度
        • 3. 示例

导读
楼主本人统计学专业在读,这几年也完成了不少数据分析的报告,故而想整理一点写数据类报告的tips。本文先整理了对一份数据进行描述性分析的流程。包括变量说明和利用平均数、方差、偏度峰度等基本统计量进行解读的思路。

一、数据报告

一般来说一份数据报告要包含研究目的、描述性分析、特征工程、建模分析、模型检验、模型对比的过程,最后需要加上最重要的结论和建议。其中数据处理的第一步就是描述性分析。

研究目的
描述性分析
特征工程
建立模型与解读
模型检验和效果对比
结论和建议

有人说不知道描述性分析该描述什么,好像没什么可写。我的理解是,对读者而言,描述性分析其实就是在最开始给读者呈现对数据的初步观察,让其产生对数据的初印象,而建立模型的过程等于深挖这份数据集的特点;对个人而言,我们可以通过描述性分析发现特征的特点,从而对特征进行一些变换和处理,接下来再根据发现的数据特点以及研究目标去选用合适的模型。描述性分析的过程不该太长,以免喧宾夺主,应该指出重点的发现,并且尽量简单直白。接下来将对描述性分析的流程进行梳理,代码部分利用R语言实现

描述性分析
变量说明
单变量统计量描述
单变量统计图表
多变量描述

二、变量说明表

数据集包含哪些内容?拿到一份数据首先要解决的就是这个问题。通常我们见到的csv格式的数据,都是以数据框形式存在,每一列都是代表一项特征,所以不妨先拿出头几行数据进行观察。这次用的例子是来自狗熊会(公众号:CluBear)的数据集,是二手市场上在售的1289条的汽车的10项指标数据,数据是前几年的,自变量包括汽车描述,排量,性能,级别,车门,车座,马力,发动机和前制动类型等10个变量,那么我们关心的变量是什么呢?这就是数据报告的目的性,本次设定因变量为汽车的价格,探究汽车价格的关键影响指标。下面可以先展示一下数据集的前几行。

描述 价格 排量 性能 级别 车门 车座 马力 发动机 前制动类型
奥迪Q3 2017款 30 TFSI 时尚型 20.6 1.4 自动 紧凑型 5 5 88 L4 通风盘式
川汽野马F10 2011款 1.5L 手动 2.1 1.5 手动 小型 5 5 88 L4 盘式
丰田汉兰达 2015款 2.0T 四驱豪华版 7座 27.8 2 自动 中型 5 7 220 L4 通风盘式
奥迪Q5 2013款 40 TFSI 进取型 27.88 2 自动 中型 5 5 211 L4 通风盘式

这样一份关于市场上汽车特征的数据集,对于不了解汽车的人来说,每个数值代表的含义就不够明确,比如价格20万元是高还是低呢?级别又代表什么含义?紧凑型比小型大还是小?前制动类型没听说过,什么意思等等。所以为了解释数据,我们需要对这些变量(或特征)进行一个说明。

变量说明表一般包含变量名、变量说明和取值范围这几个关键因素,变量名称很多时候数据集会以英文命名,所以就需要一个简要说明,对于数值型变量,可以介绍单位;对于类别变量,列出类别数。那么取值范围里面就可以把类别大致写一下,比如级别为大型的汽车就没有出现在前面展示的数据里,所以有必要在取值范围中出现。整理好后就可以看出前制动类型不止有通风盘式还有盘式,级别不仅有紧凑型还有大型。

下面视情况可以再添加一些备注,备注可以对比较难以理解的变量进行解释,比如级别指的含义其实就是空间大小,或者是展示简单统计信息,如各类型样本的占比等。

变量类型 变量名 详细说明 取值范围 备注
因变量 在售价格 单位:万元 1.3~280.0
自变量 描述 汽车品牌与年份及关键字 文字信息
排量 单位:升 1.3~6.2
性能 定性变量,2个水平 手动,自动 手动约占28%,自动72%
级别 定性变量,5个水平 小型,紧凑型,中型,中大型,大型 左边按照从小到大排序
车门 整数变量 2,3,4,5 存在部分数据偏差
车座 整数变量 4,5,7,8
马力 连续变量 85~575
发动机 定性变量,7个水平 L3,L4,V5,L6,V8,H4,L5 代表不同的气缸排列方式
前制动类型 定性变量,2个水平 盘式,通风盘式 制动方式,通风盘式造价较高

三、统计量描述

还是以汽车价格数据为例,目前我们的因变量是价格,所以首选价格分析。对单变量进行统计量描述的时候可以用常见的统计量来做初步观察,统计量的主要意义在于整合数据,并且呈现出数据告诉我们的关键信息。

位置的度量

1. 平均数

平均数即为样本观测值的总和平均。xi为我们的观察值,n为样本量,则有
x ˉ = ∑ i = 1 n x i n \bar x=\frac{\sum_{i=1}^n x_i}{n} xˉ=ni=1nxi
如汽车价格的平均数为17.3万元

2. 中位数和分位数

中位数是对数据中心位置的度量。将所有数据按照升序排列,位于中间的数值。
(a)观测数为奇数时,中位数是位于中间的那个数值;
(b)观测数为偶数时,中位数是位于中间两个数的平均值。
百分位数(percentile): 第p百分位数满足条件的一-个数值,至少有p%的观测值小于或等于该值,且至少有(100 - p)%的观测值大于或等于该值。常用到的四分位数即:第25,50,75百分位数。
如汽车价格的中位数为11.4万元

R中求平均值、中位数、分位数的函数为mean(x),median(x),和quantiel(x,p)

3. 两者的对比

在描述统计的过程中,没有任何一个数字是孤零零地呈现的。我们需要对数字进行一个对比和解释,比如说分组取平均值,这对于类别变量就较为有效

tapply函数常用对于因子型进行分组计算,按照index分组,对x进行fun的计算, tapply(X, INDEX, FUN )

#按照级别对价格求均值
tapply(suv_data$价格,suv_data$级别,mean)

    -      大型    紧凑型      小型    中大型      中型 
       NA 102.50000  10.84507   6.47700  52.46496  20.53357 

从上面的分组价格可以看出不同大小的汽车平均价格相差很大,这就给我们提供了一个信息,即这个特征是个区分度高的“好”特征,在建模过程应该持续关注。

中位数和平均数其实都是耳熟能详的统计量,但是主要的区别在于平均数是一个受异常值影响大的统计量,而中位数则比较稳健。比如说一个公司有1个人是100万元,剩下99个人都是1000元,中位数是1000,但是平均工资就会超过1万元。显然这个平均值没有意义,因为它没有做到呈现关键信息的作用。这时候中位数和众数其实都是相对好的统计量。

4. 最大值和最小值

有时候视情况还可以补充一些最大值和最小值之类的数据,就像老师重点关注优生和差生一样,因为他们在集体里具有一定的代表性,某种意义上代表了老师教学成果的上下限。下面简单呈现一些对汽车数据的部分统计结果。

summary用于一键计算所有特征的统计量,对数值型计刚才提到的所有统计量,类别变量统计频数,还有很多这类统计函数,下次再整理一下

summary(suv_data)
     价格             排量         性能         级别     车门          车座            马力      
 Min.   :  1.30   Min.   :1.300   手动:359   -     :  4   -:   4   Min.   :4.000   Min.   : 85.0  
 1st Qu.:  7.60   1st Qu.:1.600   自动:930   大型  :  4   2:   8   1st Qu.:5.000   1st Qu.:144.0  
 Median : 11.50   Median :2.000              紧凑型:669   3:   1   Median :5.000   Median :163.0  
 Mean   : 17.52   Mean   :2.099              小型  :160   4:   5   Mean   :5.219   Mean   :180.2  
 3rd Qu.: 20.00   3rd Qu.:2.400              中大型:133   5:1271   3rd Qu.:5.000   3rd Qu.:201.0  
 Max.   :280.00   Max.   :6.200              中型  :319            Max.   :8.000   Max.   :575.0  
                                                                   NA's   :4       NA's   :4      
          

结果给出最大值和最小值之后,可i以重新去数据集里定位它的具体信息。比如汽车数据的价格最高值来自奔驰G级AMG 2016款 AMG G63 Edition 463,为280万元,但是!同样我们需要思考数字的含义,280万是多高呢?很高?还是只是比一般的高一点呢?

这时我们可以想到中位数和平均数,上面的问题就有了答案,中位数为11.5万元,均值则为17.5万元,说明280万确实是比一般的车贵太多了!这样正常吗?像这样的高价汽车有多少呢?如果我们假设一百万算高价,那么高于100万元的SUV汽车在数据集里总共也只12款,占总体的不到1%,所以说市场上的百万级汽车的数量还是较少,这些汽车价格并非异常,市面上是存在这样的需求的。

变异程度的度量

接下来有一些统计量可以描述数据的变化

1. 方差和标准差

方差:变异程度的度量,每条数据和平均值的差的平方和,公式如下
s 2 = ∑ i = 1 n ( x i − x ˉ ) 2 n s^2=\frac{\sum_{i=1}^n (x_i-\bar x)^2}{n} s2=ni=1n(xixˉ)2
而标准差 s s s即为上式开根号

2. 极差和四分位数间距

极差(range): 最大值减去最小值。优点,容易计算;缺点,比平均数还容易受异常值影响。
r a n g e = x ( n ) − x ( 1 ) range=x_{(n)} -x_{(1)} range=x(n)x(1)

四分位数间距(inter quartile range):
I Q R = Q 3 − Q 1 IQR=Q3-Q1 IQR=Q3Q1

即第3四分位数-第1四分位数。所以IQR就是中间的50%的数据的极差。这个统计量不常见到,但是提供了一种度量变异的新想法,可以尝试与极差进行比较

3.变异系数

融合了平均数和标准差,值越大说明变异程度越强。 σ \sigma σ为标准差, μ \mu μ为平均值,则样本的变异系数为
c o e f   o f   v a r i a n c e = s x ˉ × 100 % coef\ of\ variance=\frac{s}{\bar x}\times100\% coef of variance=xˉs×100%

分布形状的度量

数据的分布形态主要指数据分布是否对称,偏斜程度如何,分布陡峭程度等。所以大多时候需要结合统计图来观察。

1. 偏度

偏度(Skewness) :描述变量取值分布形态对称性的统计量。其计算公式为:

β s = m 3 m 2 3 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 3 ( 1 n ∑ i = 1 n ( x i − x ˉ ) 2 ) 3 2 \beta_s=\frac{m_3}{m_2^{\frac{3}{2}}}=\frac{\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^3}{(\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^2)^\frac{3}{2}} βs=m223m3=(n1i=1n(xixˉ)2)23n1i=1n(xixˉ)3

当分布为对称分布时,正负总偏差相等,偏度值等于0;当分布为不对称分布时,偏度值大于0或小于0。偏度绝对值越大,表示数据分布形态的偏斜程度越大。

  • 偏度大于0表示正偏差值大,称为正偏或右偏,这时
    一般来说,中位数<平均数
  • 偏度值小于0表示负偏差值大,称为负偏或左偏,这时
    一般来说,平均数<中位数
    下面会结合图形解释一下原因

2. 峰度

峰度(Kurtosis) :描述变量 取值分布形态陡峭程度的统计量。样本峰度计算公式为:

β k = m 4 m 2 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 4 ( 1 n ∑ i = 1 n ( x i − x ˉ ) 2 ) 2 \beta_k=\frac{m_4}{m_2^2}=\frac{\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^4}{(\frac{1}{n}\sum_{i=1}^n (x_i-\bar x)^2)^2} βk=m22m4=(n1i=1n(xixˉ)2)2n1i=1n(xixˉ)4

  • 峰度值等于3,表示数据分布与标准正态分布的陡峭程度相同时,正态分布的峰度即为3
  • 峰度大于3,表示数据的分布比标准正态分布平缓,为平峰分布
  • 峰度小于3,表示数据的分布比标准正态分布更陡峭,为尖峰分布

timeDate包里有kurtosis和skewness,psych包里的describe也可以计算

library(timeDate)
kurtosis(suv_data$价格)
[1] 43.57262
attr(,"method")
[1] "excess"

skewness(suv_data$价格)
[1] 4.727704
attr(,"method")
[1] "moment"

从上面可以看到偏度值是47,远大于0,故而明显右偏,而峰度值则略大于3,即为比正态分布稍微平缓一点。

3. 示例

在这里我们结合价格的频数直方图可以更清晰一点。这张图上可以看出右偏指的其实就是峰值靠左边,尾巴在右边。大部分的价格整体集中在0-20万元分段,但是有一小部分汽车价格特别高,这时候这些高价车就会让所有车的平均价格被拉高了,和刚才提到的工资例子一样,这也很明显地服从二八分布的法则。
数据分析报告——经典统计量的描述性分析:平均数方差、偏度峰度_第1张图片
简单说下二八法则,价格类的数据常常服从一种经济定律,80/20法则,也叫帕累托法则,这是20世纪初意大利统计学家、经济学家维尔弗雷多·帕累托提出的,他指出:在任何特定群体中,重要的因子通常只占少数,而不重要的因子则占多数,因此只要能控制具有重要性的少数因子即能控制全局。这个原理经过多年的演化,已变成当今管理学界所熟知的二八法则——即80%的公司利润来自20%的重要客户,其余20%的利润则来自80%的普通客户。

这类法则在解释价格分布时有很重要的作用,在研究价格数据这类经济金融相关的数据时,我们可以补充这些相关知识来充实解读,数字永远只是数字,背后的含义才是需要深挖的事情。总的来说,价格的中位数为11.4万元,而均值则为17.3万元,平均值高于中位数,呈现右偏分布。价格明显地服从二八分布,即80%的价格分布在23.5万内,在最大价格的20%以内,故而是少数高价的SUV汽车样本拉高了样本的平均价格。以上就是对于价格单变量的描述分析。关于统计图和多变量之间的描述分析下次继续整理。

你可能感兴趣的:(唠唠数据,数据分析,R语言,峰度,偏度,数理统计)