class Statsample::Regression::Multiple::RubyEngine
Pure Ruby Class for Multiple Regression Analysis. Slower than AlglibEngine, but is pure ruby and can use a pairwise aproach for missing values. Coeffient calculation uses correlation matrix between the vectors If you need listwise aproach for missing values, use AlglibEngine, because is faster.
Example:
@a=[1,3,2,4,3,5,4,6,5,7].to_vector(:scale) @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:scale) @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:scale) @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale) ds={'a'=>@a,'b'=>@b,'c'=>@c,'y'=>@y}.to_dataset lr=Statsample::Regression::Multiple::RubyEngine.new(ds,'y')
Pure Ruby Class for Multiple Regression Analysis. Slower than AlglibEngine, but is pure ruby and can use a pairwise aproach for missing values. Coeffient calculation uses correlation matrix between the vectors If you need listwise aproach for missing values, use AlglibEngine, because is faster.
Example:
@a=[1,3,2,4,3,5,4,6,5,7].to_vector(:scale) @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:scale) @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:scale) @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale) ds={'a'=>@a,'b'=>@b,'c'=>@c,'y'=>@y}.to_dataset lr=Statsample::Regression::Multiple::RubyEngine.new(ds,'y')
Public Class Methods
new(ds,y_var, opts=Hash.new)
click to toggle source
Calls superclass method
Statsample::Regression::Multiple::MatrixEngine.new
# File lib/statsample/regression/multiple/rubyengine.rb, line 19 def initialize(ds,y_var, opts=Hash.new) matrix=ds.correlation_matrix fields_indep=ds.fields-[y_var] default={ :y_mean=>ds[y_var].mean, :x_mean=>fields_indep.inject({}) {|ac,f| ac[f]=ds[f].mean; ac}, :y_sd=>ds[y_var].sd, :x_sd=>fields_indep.inject({}) {|ac,f| ac[f]=ds[f].sd; ac}, :cases=>Statsample::Bivariate.min_n_valid(ds) } opts=opts.merge(default) super(matrix, y_var, opts) @ds=ds @dy=ds[@y_var] @ds_valid=ds.dup_only_valid @total_cases=@ds.cases @valid_cases=@ds_valid.cases @ds_indep = ds.dup(ds.fields-[y_var]) set_dep_columns end
Public Instance Methods
constant_se()
click to toggle source
Standard error for constant
# File lib/statsample/regression/multiple/rubyengine.rb, line 84 def constant_se estimated_variance_covariance_matrix[0,0] end
fix_with_mean()
click to toggle source
# File lib/statsample/regression/multiple/rubyengine.rb, line 47 def fix_with_mean i=0 @ds_indep.each do |row| empty=[] row.each do |k,v| empty.push(k) if v.nil? end if empty.size==1 @ds_indep[empty[0]][i]=@ds[empty[0]].mean end i+=1 end @ds_indep.update_valid_data set_dep_columns end
fix_with_regression()
click to toggle source
# File lib/statsample/regression/multiple/rubyengine.rb, line 62 def fix_with_regression i=0 @ds_indep.each{|row| empty=[] row.each{|k,v| empty.push(k) if v.nil? } if empty.size==1 field=empty[0] lr=MultipleRegression.new(@ds_indep,field) fields=[] @ds_indep.fields.each{|f| fields.push(row[f]) unless f==field } @ds_indep[field][i]=lr.process(fields) end i+=1 } @ds_indep.update_valid_data set_dep_columns end
set_dep_columns()
click to toggle source
# File lib/statsample/regression/multiple/rubyengine.rb, line 40 def set_dep_columns @dep_columns=[] @ds_indep.each_vector{|k,v| @dep_columns.push(v.data_with_nils) } end