不同的指标或变量的原始值在单位、量纲、取值范围等方面会有较大差异,因此,在处理较多变量的数据时,需要先对数据进行标准化,使不同变量具有可比性。
常用的标准化方法有:
(1)最大-最小值标准化(离差标准化)。
此方法将数值映射到[0,1]。该方法的缺点是,容易受到最大最小值的影响。
方法:vegan包,decostand(data,method="range")。行:margin=1,列:margin=2。
(2)标准差标准化。
是原始数据的平均值,是原始数据的标准差,此方法得到均值为0,标准差为1的数据集。为减小离群点的影响,可用中位数代替均值,用绝对标准差代替标准差。
方法:scale(data,center=T,scale=T) 或 decostand(data,"standardize")。
(3)0-1数据(有-无数据)
方法:decostand(data,method="pa")
(4)每个数值除以该行或该列的最大值
方法:decostand(data,method="max")
(5)每个数值除以该行或该列的总和
方法:decostand(data,method="total")
(6)用排名代替具体数值
方法:decostand(data,method="rank"),默认为行。
> data
lie
hang C D E
A 1 3 5
B 2 4 6
> decostand(data,"rank")
lie
hang C D E
A 1 2 3
B 1 2 3
(7)decostand()还提供了chi.square、hellinger、log等方法。
参考:《R语言数据分析与挖掘实战》张良均等;《数量生态学》赖江山译。