用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)

目录

均值(mean)

用R计算均值

mean(x, trim=0, na.rm=FALSE)

例1

例2

apply(x,1或2,计算函数 )

例3

参数trim

例4

参数na.rm

例5


学习机器学习和数据挖掘中的各种算法和模型,需要掌握统计学的基本概念。统计学是通过搜索、整理、分析数据等手段,以达到推断所测对象的本质,并预测对象未来走势的一门综合性科学。

简单说,统计学是根据样本估计总体的科学。它的一些思想和大数据思想有些相悖,不关注数据的大小,而是更关注数据的好坏。

分析数据的第一步要进行数据描述性分析,数据描述性分析指的是:通过绘制统计图、编译统计 表、描述统计量等方法来表数据数据的分布特征。 

其中,描述统计量包括:中心趋势度量、分散程度度量

中心趋势度量 描述样本数据的集中趋势的统计量 均值、中位数、众数、百分位数……
分散程度度量 又称散布度量 方差、标准差、极差、百分位数……

 

对于R中的必会操作可以参见:R语言必会基础语法

均值(mean)

均值数据的平均值

用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第1张图片

均值和期望:数据总体的平均值是均值,数据样本的平均值是期望。

用R计算均值

函数:在R中,可以用mean()函数来计算样本的均值

mean(x, trim=0, na.rm=FALSE)

其中,x是样本数据(比如向量、矩阵、数组或数据框),trim是计算均值前去掉与均值差较大数据的比例, 缺省值为0,即包含全部数据。当na.rm=FALSE时,允许数据中有缺失数据。

例1

> data<-c(30,31,47,50,52,56,60,63,70,70,110) 
> data
 [1]  30  31  47  50  52  56  60  63  70  70 110
> result=mean(data);result
[1] 58.09091

用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第2张图片

mean()函数还可以计算一个矩阵的总体数据均值。

例2

> data<-1:12
> dim(data)<-c(3,4);data
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> result=mean(data);result
[1] 6.5

用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第3张图片

apply(x,1或2,计算函数 )

计算矩阵中每行或每列的均值,需要调用apply()函数。
其中,x是样本数据,数字1表示求每行的数据平均值,数字2表示求每列的平均值。 

还以上面的矩阵为例

例3

> result=apply(data,1,mean);result
[1] 5.5 6.5 7.5
> result=apply(data,2,mean);result
[1]  2  5  8 11

参数trim

均值的弱点是对异常值敏感,所以有的时候我们需要剔除掉一些数据,然后才能得到准确有意义的均值。

比如下面这组数据记录学生的体重值:

750,64.0,47.4,66.9,62.2,62.2,58.7,63.5
66.6,64.0,57.0,69.0,56.9,50.0,72.0

其中有一个值少了个小数点,变成了750kg,此时计算均值就是有误差的。所以需要把异常值替换掉。可以调用 mean()里的trim参数来处理。 trim的取值在0~0.5之间, 表示在计算均值前需要去掉的异常值比例。

当然,异常值也不是一定要剔除的,有些情况下,会专门做离群点分析。

例4

> data<-c(750,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0);data 
 [1] 750.0  64.0  47.4  66.9  62.2  62.2  58.7  63.5  66.6  64.0  57.0  69.0
[13]  56.9  50.0  72.0
> result=mean(data,trim=0.1);result
[1] 62.53846

图中所求的第一个均值是没有剔除异常值时的均值,第二个为加入trim参数后的均值:

用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第4张图片

参数na.rm

有时样本数据里有缺失值,比如下组数据:

75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,NA

这样在计算均值时就会出现错误,此时可以选用参数na.rm=TRUE来忽略控制。

例5

> data<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,NA)
> result=mean(data,na.rm=TRUE);result
[1] 61.67143
> result=mean(data);result
[1] NA

图中可以看到,在有缺失值的情况下,直接求均值,结果为NA:
用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第5张图片

补充:加权算术均值

每一个样本数据x都有一个对应的权重W与之关联,权重反映了对应数据x的重要程度。

用R语言学习数据挖掘——1.用R计算数据基本统计量(均值)_第6张图片

 

你可能感兴趣的:(#,R语言,数据挖掘,算法,数据分析,机器学习,R)