Re: Removing Outliers from List
- To: mathgroup at smc.vnet.net
- Subject: [mg127687] Re: Removing Outliers from List
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Wed, 15 Aug 2012 03:33:05 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20120814082041.A0DA26844@smc.vnet.net>
list = {24, 24, 3, 2, 1, 1, 1, 1};
Module[{clusters = FindClusters[list], len},
len = Max[Length /@ clusters];
Select[clusters, Length[#] == len &][[1]]]
{3, 2, 1, 1, 1, 1}
Bob Hanlon
On Tue, Aug 14, 2012 at 4:20 AM, Murta <rodrigomurtax at gmail.com> wrote:
> Hi All
>
> Some simple idea on how to remove the outliers from a list like this?:
>
> l={24, 24, 3, 2, 1, 1, 1, 1}
>
> to get this:
>
> l={3, 2, 1, 1, 1, 1}
>
> I have one complicated one that need a lower sigma parameter to work:
> ------------------------------------------------
> l={24, 24, 3, 2, 1, 1, 1, 1}
>
> removeNormalOutliers[data_,\[Alpha]_:2.09]:=Block[{removeSub},
>
> removeSub[dataSub_]:=Module[{\[Sigma],\[Mu],return},
> If[Length[dataSub]>1,\[Mu]=N@Mean[dataSub];
> \[Sigma]=N@StandardDeviation[dataSub];
> return=Select[dataSub,#<=\[Mu]+\[Alpha] \[Sigma]&],dataSub]
> ];
> FixedPoint[removeSub,data,20]
> ]
>
> removeNormalOutliers[l, 1]
> ------------------------------------------------
>
> Some better/simple idea?
> tks in advance
> Murta
>
- References:
- Removing Outliers from List
- From: Murta <rodrigomurtax@gmail.com>
- Removing Outliers from List