Class: Rust::StatisticalTests::Shapiro

Inherits:
Object
  • Object
show all
Defined in:
lib/rust/stats/tests.rb

Overview

Utilities for the Shapiro normality test.

Class Method Summary collapse

Class Method Details

.compute(vector, alpha = 0.05, **options) ⇒ Object

Runs the Shapiro normality test for vector and a given alpha (0.05, by default). options can be specified and directly passed to the R function.

Raises:

  • (TypeError)


247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'lib/rust/stats/tests.rb', line 247

def self.compute(vector, alpha = 0.05, **options)
    raise TypeError, "Expecting Array of numerics" if !vector.is_a?(Array) || !vector.all? { |e| e.is_a?(Numeric) }
    Rust.exclusive do
        Rust['shapiro.v'] = vector
        
        Rust._eval("shapiro.result = shapiro.test(shapiro.v)")
        result = Rust::StatisticalTests::Result.new
        result.name       = "Shapiro-Wilk normality test"
        result.pvalue     = Rust._pull("shapiro.result$p.value")
        result[:W]        = Rust._pull("shapiro.result$statistic")
        result.exact      = true
        result.alpha      = alpha
        result.hypothesis = Rust::StatisticalTests::Hypothesis.find(options[:hypothesis])
        
        return result
    end
end