2016-02-27 43 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再次審視這個問題,我發現你有兩個變量,而不僅僅是一個。一般的方法是一樣的。計算均值和協方差(分別通過「均值」和「均值」)並使用它們來計算每個點在假設數據具有聯合高斯(正態)分佈的情況下的概率。根據模型中的概率對數據進行排序,並查看低概率的數據。您可以查看散點圖,並以可視方式識別異常值 - 有關「模型下的低概率」的業務僅僅是一種形式化。 –