sql >> データベース >  >> RDS >> Sqlserver

SQL Server での標準偏差による外れ値の排除

    イベントのベル カーブ分布を想定している場合、値の 68% のみが平均から 1 標準偏差以内に収まります (95% は 2 標準偏差でカバーされます)。

    範囲の標準偏差を変数にロードします (stdev / stdevp sql 関数) を使用して、適切な数の標準偏差内にある値を選択してください。

    declare @stdtest table (colname varchar(20), colvalue int)
    
    insert into @stdtest (colname, colvalue) values ('a', 2)
    insert into @stdtest (colname, colvalue) values ('b', 4)
    insert into @stdtest (colname, colvalue) values ('c', 4)
    insert into @stdtest (colname, colvalue) values ('d', 4)
    insert into @stdtest (colname, colvalue) values ('e', 5)
    insert into @stdtest (colname, colvalue) values ('f', 5)
    insert into @stdtest (colname, colvalue) values ('g', 7)
    insert into @stdtest (colname, colvalue) values ('h', 9)
    
    declare @std decimal
    declare @mean decimal
    declare @lower decimal
    declare @higher decimal
    declare @noofstds int
    
    select @std = STDEV(colvalue), @mean = AVG(colvalue) from @stdtest
    
    --68%
    set @noofstds = 1
    select @lower = @mean - (@noofstds * @std)
    select @higher = @mean + (@noofstds * @std)
    
    select @lower, @higher, * from @stdtest where colvalue between @lower and @higher
    
    --returns rows with a colvalue between 3 and 7 inclusive
    
    --95%
    set @noofstds = 2
    select @lower = @mean - (@noofstds * @std)
    select @higher = @mean + (@noofstds * @std)
    
    select @lower, @higher, * from @stdtest where colvalue between @lower and @higher
    
    --returns rows with a colvalue between 1 and 9 inclusive
      

    1. 関連性によるMYSQL全文検索順序

    2. 私のpostgisがジオメトリフィールドにインデックスを使用しないのはなぜですか?

    3. MySQL :(製品)価格に適した列タイプ?

    4. Windows上のODBCアプリケーションをQuickBooksOnlineに接続する