2016-02-27 42 views
1

所以我新的R和目前我正在试图找出一组数据的异常值,到目前为止,我已经输入到R,如何从数据集中识别异常中的R

lifespan_yrs<- c(38.6, 4.5, 14, 8, 69, 27, 19, 30.4, 28, 50, 7, 30, 3.5, 
40, 3.5, 50, 6, 10.4, 34, 7, 28, 20, 3.9, 39.3, 41, 16.2, 9, 7.6, 46, 22.4, 
16.3, 2.6, 24, 100, 13, 10, 3.2, 2, 5, 6.5, 23.6, 12, 20.2, 13, 27, 18, 13.7, 
4.7, 9.8, 29, 7, 6, 17, 20, 12.7, 3.5, 4.5, 7.5, 2.3, 24, 3, 13) 

gestation_days<- c(645, 42, 60, 25, 624, 180, 35, 392, 63, 230, 112, 281, 35, 
365, 42, 28, 42, 120, 75, 122, 400, 148, 16, 252, 310, 63, 28, 68, 336, 100, 33, 
21.5, 50, 267, 30, 45, 19, 30, 12, 120, 440, 140, 170, 17, 115, 31, 63, 21, 52, 
164, 225, 225, 150, 151, 90, 45, 60, 200, 46, 210, 14, 38) 

lifespan_yrs 

gestation_days 

plot(gestation_days,lifespan_yrs) 

而且我有这个数据的一个阴谋,但是问题的下一部分说“调查这个阴谋并且讨论所有值得调查的数据点”我将这意味着数据中是否有任何异常值(我不确定什么定义一个离群值我可以/应该使用),然后有没有办法让R以这种方式调查数据点? 请用简单的语言来解释这个,再说一遍,我是R的新手。

谢谢! Mollie x

+3

如果您要求如何定义异常值,这实际上是一个统计问题,可以在http://stats.stackexchange.com/上更好地提出。如果你有一个你想要使用的定义,并且正在询问如何在代码中实现它,这是正确的网站要求。由于听起来你还不知道如何定义离群值,我建议stats.stackexchange.com。 – josliber

+2

或者,也许没有值得调查的要点。如果这是一项任务,您应该询问您的导师澄清。对于异常值没有普遍的定义。我们不知道作业的意图是什么。 – MrFlick

+0

好的,谢谢@josliber我会这么做的。 –

回答

1

那么,“异常值”只意味着“在假定的数据模型下具有低概率的东西”。最简单的假设是数据是正态分布的。对于正态分布数据来说,低概率意味着任何尾巴。在尾巴中意味着远离平均值的数据超过了几个(比方说两个)标准偏差。

因此,这导致了一个非常简单的过程。通过R函数mean计算平均值,通过sd计算标准偏差。然后看看任何小于均值减去s.d.的点。或超过平均值加上s.d.的两倍。这些将在左尾和少尾在右尾。这些数据有什么有趣的地方吗?这就是你的老师所要求的。

当然,什么作为异常值完全取决于为数据假设的模型 - 如果更改模型,则会更改异常值。因此,详细说明你的模型是很重要的,并且如果有人(例如你的教师)建议不同的模型,那么准备改变它。

+0

谢谢你,这是伟大的,我现在会尝试:)! –

+0

@MollieKilpatrick再次审视这个问题,我发现你有两个变量,而不仅仅是一个。一般的方法是一样的。计算均值和协方差(分别通过“均值”和“均值”)并使用它们来计算每个点在假设数据具有联合高斯(正态)分布的情况下的概率。根据模型中的概率对数据进行排序,并查看低概率的数据。您可以查看散点图,并以可视方式识别异常值 - 有关“模型下的低概率”的业务仅仅是一种形式化。 –