热线电话:13121318867

登录
首页精彩阅读R描述性统计分析
R描述性统计分析
2018-02-27
收藏

R描述性统计分析

概念

数据摘要,有损地提取数据特征的过程,包含基本统计,分布/累计统计,数据特征(相关性,周期性等),数据挖掘

数据有很多变量和观测值,可以用一些简单表格,图形和少数汇总数字来描述。这些描述方法被称为描述统计学,也称为探索性数据分析(EDA,exploratory data analysis)

描述统计目的在于帮助展示和理解数据。

数据作为信息的载体,要分析数据中包含的主要信息,即要分析数据的主要特征。也就是说,要研究数据的数字特征,包括集中位置(集中趋势),分散程度(离中趋势)和数据分布(偏态和峰态)

集中趋势从数据中选‘典型代表’,‘代表是否够典型’由离散程度检验

位置的度量

有些汇总统计量是描述数据“位置”的。其实数据的每个点都有自己的位置,不可能一一列举;能做到描述数据的“中间”或“中心”在哪里;所谓位置的度量就是用来描述定量资料的集中趋势的统计量,集中趋势,一组数据向着一个中心靠拢的程度,也体现了数据中心所在的位置

均值

R语言函数及格式:mean(x,trim=0,na.rm=FALSE),x是对象,如向量,矩阵,数组或数据框
- 当mean作用于矩阵或数值型数据框时,返回为一个值即所有数值的平均值;若想按行或列计算均值:apply(data,1,mean),行1列2;或采用colMeans(data),rowMeans(iris[,1: 3])等价于apply(iris[,1:3],2,mean)
- trim参数,异常值:当研究的数据中存在异常值时,可以通过设置trim参数来调整纳入计算的样本数据来剔除异常值后再计算均值;trim取值范围0到0.5,表示在计算均值前需要去掉异常值的比例(个数length(data)*trim);trim参数是对排序后的数据从头到尾剔除相同个数元素再求均值的。
- na.rm,设置缺失值NA,当数据中有缺失值时需要将na.rm设置为TRUE
- weighted.mean(),对矩阵和数组计算加权平均值,对数据框并不适用;格式为weighted.mean(x,wt,na.rm=FALSE),wt为权重向量与x同维度,与时间相关的模型比较常用

几何平均数:N个变量值乘积的N次方根,主要用于计算平均增长率,比率

年收益率分别是,4.5%,2.1%,平均增长率是多少?104.5*102.1-100,然后再开方
sort(data):输出排序后的元素
order(data):输出排序后的位置
dput(data):一个神奇的函数,输出向量格式,可直接复制

被滥用的均值

非单峰分布不应使用,婴儿和父母的平均身高加一起就是两不靠

极值的影响

简单的算术平均,增益率等不适合

中位数

中位数描述数据中心位置的数字特征,对于对称分布的数据,均值与中位数比较靠近;对于偏态分布的数据,均值与中位数不同;中位数的一个显著特征是不受异常值的影响,具有稳健性,因此是非常重要的统计量

median(x,na.rm=FALSE)函数进行中位数,要是有缺失值需要将na.rm设置为TRUE,sort()函数

众数(离散变量)和分位数

众数不受极端值的影响,如果数据没有明显的集中趋势,那么众数可能不存在;也可能有两个最高峰点,那么就有两个众数。众数适用于数据量较多,并且数据分布偏斜程度较大有明显峰值时

R里面竟然没有找众数的函数。。。。。

百分位数:是中位数的推广;p分位数又称为100p百分位数,0.5分位数就是中位数,0.75分位数与0.25分位数(第75百分位数与第25百分位数)比较重要,分别称为上下百分四位数,分别记为Q3,Q1

quantile()函数计算观测百分位数

quantile(x,probs=seq(0,1,0.25),na.rm=FALSE,),seq()产生等差数列

离散程度的测量

离散程度

一组数据原理其中心的程度
-一组变异指标,主要用来刻画总体分布的变异状况或离散程度
- 数据分布的离散程度主要靠极差,四分差,平均差,方差,标准差等统计指标来度量
- 离散程度分析的主要作用有:1)衡量平均指标的代表性;2)反映社会经济活动的均衡性;3)研究总体标志值分布偏离正态分布的情况;4)抽样推断统计等分析的一个基本指标

极差

样本中两个极端值之差,也称全距。数据越分散,极差越大

R=xmax−xmin

极差只利用了数据两端的信息,容易受极端值的影响,并没有充分利用数列的信息

R代码:range(data)[2]-range(data)[1] 或者 max(data)-min(data) 或者 diff(range(data))

平均差

各变量与均值差的平均数,即平均差异,反应一组数据的离散程度

数学性质差(不能求导),未考虑数值分布

四分位差

两个四分位点之差,反应了中间50%数据的离散程度,其数值越小,说明数值越集中.

Qd=Ql−Qu

对数据掐头去尾,避免了极端值的影响,但没有充分利用数据信息

R代码:IQR(data) 或者quantile(data)获取各分位数据相减

方差与标准差

描述离散程度,最常用的指标,它们利用了样本的全部信息去描述数据取值的分散性。方差是各样本相对均值的偏差平方和的平均,计为s2

R语言:方差var(x,na.rm=FALSE,use),标准差:sd(x,na.rm = FALSE), 两者是sqrt()关系

cov()协方差矩阵;cor()相关矩阵

Z分数,数据标准化

变异系数

一组数据的标准差与平均数之比,成为变异系数,也叫离散系数

它是刻画数据相对分散性的一种度量,记为CV

相对的,去除了单位的影响,是无量纲统计量,用百分号表示。在实际应用中可以消除由于不同计量单位/不同平均水平所产生的影响

CV<-paste(round(100*sd(iris[,3])/mean(iris[,3]),2),'%',sep='')

1

偏度(Skewness)

描述某变量取值分布对称性,是三阶矩。

左偏分布<0,数据左侧有一个大尾巴,概率密度函数中,有很多极小值,均值往左边跑,均值小于中位数

右偏分布>0,数据右侧有一个大尾巴

对称分布=0

峰度(Kurtosis)

描述某变量所有取值分布形态陡峭程度,正态分布之间的较量,标准正态分布的峰度值是3
- 正态分布(0/3)
- 尖顶峰(>0/3)
- 平顶峰(<0/3)

其他分散程度度量

css,校正平方和

uss,未校正平方和

描述性统计量函数

基础包 summary()

应用于数值型变量将分别得到位置度量指标,即最小值min,上四分位数1st Qu,中位数median,下四分位数3rd Qu,最大值max;

当应用于因子型/逻辑型向量得到频数统计

Hmisc包中的describe()函数

可获取缺失情况,唯一值,各个详细的分位数,位置度量

pasteccs包中的stat.desc()函数

对数值型变量进行统计分析

使用格式为stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95),basic=TRUE设置一些基础统计参数展示,desc可设置一些描述性统计数值的展示.desc包含中位数/平均数/平均数的标准误/平均置信度为95%的置信区间/方差/标准差/变异系数。

当将norm设置为TRUE时,则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro-Wilk正态检验结果。

这里使用了p值来计算平均数的置信区间,默认置信度为0.95

psych包describe()函数

可以计算非缺失值的数量,标准差,截尾均数,绝对中位差,偏度等统计量。

偏态和峰态

反应总体分布形态的指标,偏态(数据分布不对称的方向和程度),峰态(数据分布图形的尖峭程度或扁平程度)

分组计算描述统计量

在比较多组个体或观测时,关注焦点通常是各组描述性统计信息,而不是样本整体的描述性统计信息,在R中主要有三种方法可以实现:
- aggregate():分组获取描述性统计量,可对单组或多组变量进行分组统计,by的变量一定要是list格式要不会报错~按照单变量分组
 
按照两个变量作为分组,且对不给list命名即不写‘am=’,跑出来的结果分组将会是Group1这种不友好的展示界面
 
aggregate()函数的另一种写法,写成公式发~分开

doBy包-summaryBy()函数波浪线左侧为需要分析的数值型变量,右边为类别型分组变量;其中data=及FUN=不可省略不写;FUN可为自定义变量,自定义函数时记得为函数起名字在展示时清楚 

 

psych包中-describe.by()函数具体参数可看R帮助文档?describe.by() 

 

列联表 (频数表)

类似excel的数据透视表

table(var1,var2…,varN):使用N个类别型变量(因子)创建一个N维列联表

 - xtabs(formula,data):xtabs(~A+B,data=mydata) 根据一个公式和一个矩阵或数据框创建一个N维列联表;要进行交叉分类的变量应出现在公式的右侧,以+作为分隔符。若某个变量写在公式的左侧,则其为一个频数向量(在数据已经被表格格式化时很有用)

prop.table(table,margins):依margins定义的边际列表将表中条目表示为分数形式

margin.table(table,margins):依margins定义的边际列表计算表中条目的和,边界求和,margin=1对行求和,不写总体求和 

 

addmargins(table,margins):将概述边margins(默认是求和结果)放入表中,margin控制加行/列的和,实现和excel一样的透视表 

 

ftable(table):创建一个紧凑的“平铺”式列联表

相关性分析

相关系数可以用来描述定量变量之间的关系。相关系数的符号(+,-)表明关系的方向(正相关或负相关),其值的大小表明关系的强弱程度(完全不相关为0,完全相关为1);相关的类型,R可计算多种相关系数,包括Pearson相关系数(两个变量之间的线形相关程度),Spearman相关系数(分级定序变量之间的相关程度),Kendall相关系数(非参数的等级相关度量),偏相关系数,多分格(polychoric)相关系数和多系列(polyserial)相关系数。

散点图,在数据量比较少时,可以用散点图观察变量之间的关系

** cor()函数可以计算这三种相关系数,**cov()可以用来计算协方差。cor(x,use=,method=),use指定缺失值处理方式,method,指定相关系数的类型,可选类型为pearson,spearman或kendall。默认设置为everything和pearson 

 

显著性检验,cor.test(),来检验相关性的显著水平,cor只是计算相关性程度但没有检验其显著水平 

 

缺失值处理可选为:all.obs,假设不存在缺失数据,遇到缺失数据时将报错;everything,遇到缺失值时,相关系数的计算结果被置为missing;complete.obs,行删除;pairwise.complete.obs,成对删除

psych包中的corr.test()函数:可以一次为pearson,Spearman,Kendall相关计算相关矩阵和显著性水平。 

双向交叉表(列联表gmodels-crossTable()):表格中每个单元格内数量不同是由于悠然的可能性有多大

皮尔森卡方独立性检验:看一个变量的值是如何随着另一个值的变化而变化的

数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询