module Savanna::Outliers::Grubbs

Public Instance Methods

grubbs_one_sided_test(n = size, alpha = 0.05) click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 23
def grubbs_one_sided_test(n = size, alpha = 0.05)
  a = (n - 1)/Math.sqrt(n)
  t = Statistics2.ptdist(n-2,alpha/n)**2
  b = Math.sqrt( t/(n-2+t) )
  a*b
end
grubbs_test_statistic() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 4
def grubbs_test_statistic
  array.map{|el| (el - mean).abs}.max/standard_deviation
end
grubbs_test_statistic_maximum() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 8
def grubbs_test_statistic_maximum
  (array.max - mean)/standard_deviation
end
grubbs_test_statistic_minimum() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 12
def grubbs_test_statistic_minimum
  (mean - array.min)/standard_deviation
end
grubbs_two_sided_test(n = size, alpha = 0.05) click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 16
def grubbs_two_sided_test(n = size, alpha = 0.05)
  a = (n - 1)/Math.sqrt(n)
  t = Statistics2.ptdist(n-2,alpha/(2*n))**2
  b = Math.sqrt( t/(n-2+t) )
  a*b
end
max_outlier_grubbs?() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 34
def max_outlier_grubbs?
  @max_outliers_grubbs ||= grubbs_test_statistic_maximum > grubbs_one_sided_test
end
min_outlier_grubbs?() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 38
def min_outlier_grubbs?
  @min_outliers_grubbs ||= grubbs_test_statistic_minimum > grubbs_one_sided_test
end
outliers_grubbs?() click to toggle source
# File lib/savanna-outliers/grubbs.rb, line 30
def outliers_grubbs?
  @outliers_grubbs ||= grubbs_test_statistic > grubbs_two_sided_test
end