Class: Statsample::Test::T::TwoSamplesIndependent

Inherits:
Object
  • Object
show all
Includes:
DirtyMemoize, Math, Statsample::Test
Defined in:
lib/statsample/test/t.rb

Overview

Two Sample t-test.

Usage

a=1000.times.map {rand(100)}.to_scale
b=1000.times.map {rand(100)}.to_scale
t_2=Statsample::Test::T::OneSample.new(a,b)
t_2.summary

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Statsample::Test

chi_square, levene, #p_using_cdf, t_one_sample, t_two_samples_independent, u_mannwhitney

Constructor Details

#initialize(v1, v2, opts = Hash.new) ⇒ TwoSamplesIndependent



146
147
148
149
150
151
152
153
# File 'lib/statsample/test/t.rb', line 146

def initialize(v1, v2, opts=Hash.new)
  @v1=v1
  @v2=v2
  default={:u=>0, :name=>"Two Sample T Test", :paired_samples=>false, :tails=>:both}
  @opts=default.merge(opts)
  @name=@opts[:name]
  @tails=@opts[:tails]          
end

Instance Attribute Details

#df_equal_varianceObject (readonly)

Degress of freedom (equal variance)



128
129
130
# File 'lib/statsample/test/t.rb', line 128

def df_equal_variance
  @df_equal_variance
end

#df_not_equal_varianceObject (readonly)

Degress of freedom (not equal variance)



130
131
132
# File 'lib/statsample/test/t.rb', line 130

def df_not_equal_variance
  @df_not_equal_variance
end

#nameObject

Name of test



126
127
128
# File 'lib/statsample/test/t.rb', line 126

def name
  @name
end

#optsObject

Options



124
125
126
# File 'lib/statsample/test/t.rb', line 124

def opts
  @opts
end

#probability_equal_varianceObject (readonly)

Probability(equal variance)



136
137
138
# File 'lib/statsample/test/t.rb', line 136

def probability_equal_variance
  @probability_equal_variance
end

#probability_not_equal_varianceObject (readonly)

Probability(unequal variance)



138
139
140
# File 'lib/statsample/test/t.rb', line 138

def probability_not_equal_variance
  @probability_not_equal_variance
end

#t_equal_varianceObject (readonly)

Value of t for equal_variance



132
133
134
# File 'lib/statsample/test/t.rb', line 132

def t_equal_variance
  @t_equal_variance
end

#t_not_equal_varianceObject (readonly)

Value of t for non-equal_variance



134
135
136
# File 'lib/statsample/test/t.rb', line 134

def t_not_equal_variance
  @t_not_equal_variance
end

#tailsObject

Tails for probability (:both, :left or :right)



140
141
142
# File 'lib/statsample/test/t.rb', line 140

def tails
  @tails
end

Instance Method Details

#computeObject

Set t and probability for given u



158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/statsample/test/t.rb', line 158

def compute
  @t_equal_variance= T.two_sample_independent(@v1.mean, @v2.mean, @v1.sd, @v2.sd, @v1.n_valid, @v2.n_valid,true)
  
  @t_not_equal_variance= T.two_sample_independent(@v1.mean, @v2.mean, @v1.sd, @v2.sd, @v1.n_valid, @v2.n_valid, false)

  @df_equal_variance=T.df_equal_variance(@v1.n_valid, @v2.n_valid)
  @df_not_equal_variance=T.df_not_equal_variance(@v1.sd, @v2.sd, @v1.n_valid, @v2.n_valid)
  
  @probability_equal_variance = p_using_cdf(Distribution::T.cdf(@t_equal_variance, @df_equal_variance), tails)
  
  @probability_not_equal_variance = p_using_cdf(Distribution::T.cdf(@t_not_equal_variance, @df_not_equal_variance), tails)

end

#report_building(b) ⇒ Object

:nodoc:



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/statsample/test/t.rb', line 176

def report_building(b) # :nodoc:
  b.section(:name=>@name) {|g|
    g.table(:name=>"Mean and standard deviation", :header=>["Variable", "m", "sd","n"]) {|t|
      t.row([1,"%0.4f" % @v1.mean,"%0.4f" % @v1.sd,@v1.n_valid])
      t.row([2,"%0.4f" % @v2.mean,"%0.4f" % @v2.sd, @v2.n_valid])
    }
    g.section(:name=>"Levene Test") {|g1|
      g1.parse_element(Statsample::Test.levene([@v1,@v2]))
    }
    
    g.table(:name=>"T statistics",:header=>["Type","t","df", "p (#{tails} tails)"]) {|t|
      t.row(["Equal variance", "%0.4f" % t_equal_variance, df_equal_variance, "%0.4f" % probability_equal_variance])
      t.row(["Non equal variance", "%0.4f" % t_not_equal_variance, "%0.4f" % df_not_equal_variance, "%0.4f" % probability_not_equal_variance])
    }
  }
end

#summaryObject

Presents summary of analysis



173
174
175
# File 'lib/statsample/test/t.rb', line 173

def summary
  ReportBuilder.new(:no_title=>true).add(self).to_text
end