module Statsample::Regression::Multiple
Module for OLS Multiple Regression Analysis.
Use:. require 'statsample' a=1000.times.collect {rand}.to_scale b=1000.times.collect {rand}.to_scale c=1000.times.collect {rand}.to_scale ds={'a'=>a,'b'=>b,'c'=>c}.to_dataset ds['y']=ds.collect{|row| row['a']*5+row['b']*3+row['c']*2+rand()} lr=Statsample::Regression.multiple(ds,'y') puts lr.summary Summary for regression of a,b,c over y ************************************************************* Engine: Statsample::Regression::Multiple::AlglibEngine Cases(listwise)=1000(1000) r=0.986 r2=0.973 Equation=0.504+5.011a + 2.995b + 1.988c ---------------------------- ANOVA TABLE -------------------------------------------------------------- | source | ss | df | ms | f | s | -------------------------------------------------------------- | Regression | 2979.321 | 3 | 993.107 | 12040.067 | 0.000 | | Error | 82.154 | 996 | 0.082 | | | | Total | 3061.475 | 999 | | | | -------------------------------------------------------------- Beta coefficientes ----------------------------------------------- | coeff | b | beta | se | t | ----------------------------------------------- | Constant | 0.504 | - | 0.030 | 16.968 | | a | 5.011 | 0.832 | 0.031 | 159.486 | | b | 2.995 | 0.492 | 0.032 | 94.367 | | c | 1.988 | 0.323 | 0.032 | 62.132 | -----------------------------------------------
Module for OLS Multiple Regression Analysis.
Use:. require 'statsample' a=1000.times.collect {rand}.to_scale b=1000.times.collect {rand}.to_scale c=1000.times.collect {rand}.to_scale ds={'a'=>a,'b'=>b,'c'=>c}.to_dataset ds['y']=ds.collect{|row| row['a']*5+row['b']*3+row['c']*2+rand()} lr=Statsample::Regression.multiple(ds,'y') puts lr.summary Summary for regression of a,b,c over y ************************************************************* Engine: Statsample::Regression::Multiple::AlglibEngine Cases(listwise)=1000(1000) r=0.986 r2=0.973 Equation=0.504+5.011a + 2.995b + 1.988c ---------------------------- ANOVA TABLE -------------------------------------------------------------- | source | ss | df | ms | f | s | -------------------------------------------------------------- | Regression | 2979.321 | 3 | 993.107 | 12040.067 | 0.000 | | Error | 82.154 | 996 | 0.082 | | | | Total | 3061.475 | 999 | | | | -------------------------------------------------------------- Beta coefficientes ----------------------------------------------- | coeff | b | beta | se | t | ----------------------------------------------- | Constant | 0.504 | - | 0.030 | 16.968 | | a | 5.011 | 0.832 | 0.031 | 159.486 | | b | 2.995 | 0.492 | 0.032 | 94.367 | | c | 1.988 | 0.323 | 0.032 | 62.132 | -----------------------------------------------
Public Class Methods
r2_from_matrices(rxx,rxy)
click to toggle source
Obtain r2 for regressors
# File lib/statsample/regression/multiple.rb, line 44 def self.r2_from_matrices(rxx,rxy) matrix=(rxy.transpose*rxx.inverse*rxy) matrix[0,0] end