【数据分析 R语言实战】学习笔记 第五章 数据的描述性分析(上)

2019-04-10 16:40:30 浏览数 (1)

5.1R内置的分布

分布是描述一个样本数据最核心、最重要的方式。R内嵌了很多常用的统计分布,提供了四类函数:概率密度函数(density),累积分布函数(probability)、分位数(quantile)和伪随机数(random)。在R中分别用d,p,q,r表示这4个项目,后面接分布的英文名称或缩写。

5.2集中趋势的分析

5.2.1集中趋势的测度

描述统计分布集中趋势的指标主要是平均数、中位数、众数,也称为“平均指标”。这些指标的主要作用包括:

反映总体各单位变量分布的集中趋势和一般水平;

便于比较同类现象在不同单位之间的水平;

便于比较同类现象在不同时期的发展变化趋势或规律;

用于分析现象之问的依存关系。

5.2.2 R语言实现

函数summary()可以计算出一组数据的五数和均值。

>summary(cars$speed) Min.1stQu.MedianMean3rdQu.Max. 4.012.015.015.419.025.0

5.3 离散趋势的分析

5.3.1 离散趋势的测度

数据分布的离散程度主要靠极差、四分差、平均差、方差、标准差等统计指标来度量。在实际分析中,离散程度分析主要有以下作用:

衡量平均指标的代表性;

反映社会经济活动的均衡性;

研究总体标志值分布偏离正态的情况;

抽样推断等统计分析的一个基本指标。

5.3.2 R语言实现

可以通过函数range()计算极差。给出最小值和最大值两个点,再相减得到:

代码语言:javascript复制
>m=range(cars$speed)
代码语言:javascript复制
>m[2]-m[1]
代码语言:javascript复制
[1]21

四分位差同样需要手动计算,比较便捷的方法是直接使用函数fivenum()

代码语言:javascript复制
>q=fivenum(cars$speed)
代码语言:javascript复制
>q[4]-q[2]
代码语言:javascript复制
[1]7

R中的方差函数和标准差函数分别是var()和sd()R还有一个比较特殊的函数,即离差mad(),它用于计算中位数绝对偏差,具有渐近正态的一致性。

5.4数据的分布分析

5.4.1分布情况的测度

(1)偏度

(2)峰度

5.4.2R语言实现

在程序包timeDate中(或直接加载fBasics程序包),有直接计算偏度和峰度系数的函数,为skewness()和kurtosis()

代码语言:javascript复制
>skewness(cars$speed)
代码语言:javascript复制
[1]-0.1105533
代码语言:javascript复制
attr(,"method")
代码语言:javascript复制
[1]"moment"
代码语言:javascript复制
>kurtosis(cars$speed)
代码语言:javascript复制
[1]-0.6730924
代码语言:javascript复制
attr(,"method")
代码语言:javascript复制
[1]"excess"

5.5图形分析及R实现

5.5.1直方图和密度函数图

代码语言:javascript复制
>hist(cars$speed,breaks=50,prob=T)#参数breaks设1直方图的组距,prob=T规定绘制密度直方图
代码语言:javascript复制
>lines(density(cars$speed),col='blue')#用核密度估计函数density(),绘制密度曲线图
代码语言:javascript复制

5.5.2 QQ图

QQ图用于直观验证一组数据是否来自某个分布,或者验证某两组数据是否来自同一族的分布。在教学和软件中常用QQ散点图来检验数据是否来自于正态分布。QQ图是正态分位数-分位数图,横轴是理论值,纵轴是样本值,若样本数据近似服从正态分布,那么QQ图上的散点应均匀地分布在直线y=xσ μ附近,这条直线的斜率是正态分布的

标准差J,截距是均值刀。

代码语言:javascript复制
>qqnorm(cars$speed)
代码语言:javascript复制
>qqline(cars$speed)

5.5.3茎叶图

R中用函数stem()绘制茎叶图

stem(x,scale=1,width=80,atom=1e-08)

其中,x是数据向量,scale控制茎叶图的长度,width控制绘图的宽度,atom是容差。

代码语言:javascript复制
> set.seed(111)
代码语言:javascript复制
> s=sample(cars$speed,25)
代码语言:javascript复制
> stem(s)
代码语言:javascript复制
  The decimal point is 1 digit(s) to the right of the |
代码语言:javascript复制
  0 | 44
代码语言:javascript复制
  0 | 779
代码语言:javascript复制
  1 | 011233344
代码语言:javascript复制
  1 | 5557889
代码语言:javascript复制
  2 | 0344

5.5.4箱线图

代码语言:javascript复制
> boxplot(cars$speed)

5.5.5经验分布图

在R中函数ecdf()给出样本的经验分布,通过plot()绘制

ecdf(x) plot (x,…,ylab="Fn (x)”,verticals=FALSE,col.01line="gray70”,peh=19)

0 人点赞