为什么在R中规范化数据时,数字仍然大于1?
我想用平均值为零,标准偏差为1.0对R中的数据进行标准化,我使用的是比例函数。我所有的数字都大于零。但当我将它们标准化时,我仍然有这样的数字;100,.... 更奇怪的是,当我绘制密度时,我也有负值的密度 以下是我的数据子集:为什么在R中规范化数据时,数字仍然大于1?,r,R,我想用平均值为零,标准偏差为1.0对R中的数据进行标准化,我使用的是比例函数。我所有的数字都大于零。但当我将它们标准化时,我仍然有这样的数字;100,.... 更奇怪的是,当我绘制密度时,我也有负值的密度 以下是我的数据子集: Tr[1:10,] [1] 1.287161e+01 1.300534e+00 1.140467e+00 7.958636e-01 4.886365e-01 data<-scale(Tr) 有人能帮我解决这个问题吗 评论太长: 我不明白你为什么感到惊讶。你使用
Tr[1:10,]
[1] 1.287161e+01 1.300534e+00 1.140467e+00 7.958636e-01 4.886365e-01
data<-scale(Tr)
有人能帮我解决这个问题吗 评论太长: 我不明白你为什么感到惊讶。你使用它的方式,缩放。。。从每个值中减去平均值,并将结果除以标准偏差。因此,任何小于平均值的值都将缩放为负数,任何大于平均值100个标准偏差的值都将缩放为>100或<-100。与均值/标准差相比,您可能有一些非常大的异常值
set.seed(1)
X <- rpois(1000,5)
Z <- scale(X)
par(mfrow=c(1,2))
hist(X)
hist(Z)
考虑发布你的数据和你使用的代码的子集,这样人们就可以复制你的结果。你对向量Tr的意义是什么,向量Tr的最大值是什么,最大值是什么?在向量Tr中?出于好奇,我一直试图创建一个数据集,其中一个X的Z>100,但到目前为止我还无法创建。我想这是可能的。我只是还不能在所有X>0的情况下完成它。这将完成:X