所以我是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
答案 0 :(得分:1)
嗯,&#34;异常值&#34;仅表示在假定的数据模型下具有低概率的事物&#34;。最简单的假设是数据是正态分布的。正态分布数据的低概率意味着尾部的任何东西。在尾部意味着远离平均值的数据超过几个(比如说两个)标准偏差。
所以这导致了一个非常简单的过程。通过R函数mean
计算平均值,通过sd
计算标准差。然后看看任何小于平均值减去s.d两倍的点。或者超过平均值加上两倍的s.d.这些将是左尾部的一些和右尾部的一些。这些数据有什么有趣的吗?这就是你的导师所要求的。
当然,什么算作异常值完全取决于为数据假设的模型 - 如果更改模型,您将更改异常值。因此,明确说明您的模型是什么非常重要,并且如果有人(例如您的导师)提出不同的模型,请准备好更改模型。