在对一个现象的一组观测中,数据难免会有很多偏差。为了描述数据的离散程度,常用一些统计方法对数据进行处理
数据的标准化、中心化
1.中心化是一组数据各自减去平均值
x=1:10
mean(x) #5.5
# 中心化
x.center=x-mean(x)
2.标准化是中心化后的数字再除以样本的标准差sd
x.strandard=x.center/sd(x)
3.scale基础函数
scale(data, center=TREU, scale=TRUE)
其中↑,center参数控制是否中心化,scale参数控制是否标准化。
4.测试
下方代码说明,scale函数在
center=T,scale=F
时,只进行中心化。当center=T,scale=T
时,中心标准化;但是当center=F,scale=T
时,却不是简单的非中心化的标准化,其算法还未摸清。==待续==
set.seed(1000)
data=rnorm(100)
mean1=mean(data) # 0.01637922
sd1=sd(data) # 1.006594
# 只~中心化
data.center1=data-mean1
data.center2=scale(data,center=TRUE,scale=FALSE)
identical(data.center1,as.vector(data.center2))#TRUE,说明两个结果相同
# 中心化&&标准化
data.center.std1=data.center1/sd(data)
data.center.std2=scale(data,center=TRUE,scale=TRUE)
identical(data.center.std1,as.vector(data.center.std2))#TRUE, 说明两个结果相同
# 只~标准化:注意结果此处不同啦
data.std1=data/sd(data)
data.std2=scale(data,center=FALSE,scale=TRUE)
identical(data.std1,as.vector(data.std2))# FALSE,说明不一致!!!
网友评论