Module: Statsample::Regression

Defined in:
lib/statsample/regression.rb,
lib/statsample/regression/simple.rb,
lib/statsample/regression/binomial.rb,
lib/statsample/regression/multiple.rb,
lib/statsample/regression/binomial/logit.rb,
lib/statsample/regression/binomial/probit.rb,
lib/statsample/regression/multiple/gslengine.rb,
lib/statsample/regression/multiple/baseengine.rb,
lib/statsample/regression/multiple/rubyengine.rb,
lib/statsample/regression/multiple/alglibengine.rb,
lib/statsample/regression/multiple/matrixengine.rb

Overview

Module for regression procedures.

Use the method on this class to generate analysis. If you need more control, you can create and control directly the objects who computes the regressions.

  • Simple Regression : Statsample::Regression::Simple

  • Multiple Regression: Statsample::Regression::Multiple

  • Logit Regression: Statsample::Regression::Binomial::Logit

  • Probit Regression: Statsample::Regression::Binomial::Probit

Defined Under Namespace

Modules: Binomial, Multiple Classes: Simple

Class Method Summary collapse

Class Method Details

.logit(ds, y_var) ⇒ Object

Create a Binomial::Logit object, for logit regression.

  • ds

    Dataset

  • y

    Name of dependent vector

Usage

dataset=Statsample::CSV.read("data.csv")
lr=Statsample::Regression.logit(dataset,'y')


49
50
51
# File 'lib/statsample/regression.rb', line 49

def self.logit(ds,y_var)
  Statsample::Regression::Binomial::Logit.new(ds,y_var)                
end

.multiple(ds, y_var, missing_data = :listwise) ⇒ Object

Creates one of the Statsample::Regression::Multiple object, for OLS multiple regression. Parameters:

  • ds: Dataset.

  • y: Name of dependent variable.

  • missing_data: Could be

    • :listwise: delete cases with one or more empty data (default).

    • :pairwise: uses correlation matrix. Use with caution.

Usage:

lr=Statsample::Regression::multiple(ds,'y')


76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/statsample/regression.rb', line 76

def self.multiple(ds,y_var, missing_data=:listwise)
  if missing_data==:pairwise
     RubyEngine.new(ds,y_var)
  else
    if Statsample.has_gsl?
      Statsample::Regression::Multiple::GslEngine.new(ds,y_var)
    else
      ds2=ds.dup_only_valid
      Statsample::Regression::Multiple::RubyEngine.new(ds2,y_var)
    end
  end
end

.probit(ds, y_var) ⇒ Object

Create a Binomial::Probit object, for probit regression

  • ds

    Dataset

  • y

    Name of dependent vector

Usage

dataset=Statsample::CSV.read("data.csv")
lr=Statsample::Regression.probit(dataset,'y')


60
61
62
# File 'lib/statsample/regression.rb', line 60

def self.probit(ds,y_var)
  Statsample::Regression::Binomial::Probit.new(ds,y_var)                
end

.simple(x, y) ⇒ Object

Create a Statsample::Regression::Simple object, for simple regression

  • x: independent Vector

  • y: dependent Vector

Usage:

x=100.times.collect {|i| rand(100)}.to_scale
y=100.times.collect {|i| 2+x[i]*2+rand()}.to_scale
sr=Statsample::Regression.simple(x,y)
sr.a
=> 2.51763295177808
sr.b
=> 1.99973746599856
sr.r
=> 0.999987881153254


39
40
41
# File 'lib/statsample/regression.rb', line 39

def self.simple(x,y)
  Statsample::Regression::Simple.new_from_vectors(x,y)
end