【发布时间】:2018-04-20 01:51:33
【问题描述】:
我正在处理一些具有一些主要异常值的数据,这主要是由于用于捕获数据的技术。我删除了这些以标准化数据;然而,由于工作的性质,我被要求在一系列图表中可视化每个参与者的结果,以便比较表现。我对 R 有点陌生,所以虽然标准化并不困难,但我对如何将这些异常值重新引入标准化数据的规模感到有些困惑。有没有办法在不扭曲数据的情况下将异常值扩展到以前的标准化数据(平均值 = 0)?
编辑:我意识到我遗漏了很多信息(在这里提问仍然是新手),所以这是我现在的流程的示例:
#example data of 20 participants, 18 of which are normal-range and 2 of which
#are outliers in a data frame
time <- rnorm (18, mean = 30, sd = 10)
distance <- rnorm(18, mean = 100, sd = 20)
time <- c(time, 2, 100)
distance <- c(distance, 30, 1000)
df <- data.frame(time, distance)
由于数据收集的性质,异常值大多为人所知,因此将其删除:
dfClean <- df[-c(19, 20),]
然后绘制数据以检查是否正常(此处跳过步骤,因为生成的数据是正常的)。 从那里,我对数据集中的列进行了标准化,以便每个变量的平均值为 0,st 为 1,以便将它们绘制在一起。目标是将其用作“正常”范围,以便能够可视化未来数据中的分布和异常值(强调可视化)。
#using package clusterSim
dfNorm <- data.Normalization(dfClean, type="n13", normalization = "column")
问题是,我不确定之后如何将异常值缩放到这个范围……或者我是否正确理解了缩放函数。那么,如何在归一化均值 = 0 的尺度上绘制原始 df 中的所有主题,包括异常值?
【问题讨论】:
-
这听起来比编程更像是统计问题
-
看看你做了什么来标准化你的数据会很有帮助。你说mean=0,但你是否也让sd=1?您是使用
scale函数还是自己进行了调整? -
你是对的......我肯定需要添加更多信息。我会编辑帖子。在这个过程中有很多我不清楚的地方,不幸的是,我自己的设备还没有弄清楚:x
标签: r statistics normalization outliers