class Statsample::Anova::Contrast

Attributes

msw[R]
psi[R]

Public Class Methods

new(opts=Hash.new) click to toggle source
# File lib/statsample/anova/contrast.rb, line 8
def initialize(opts=Hash.new)
  raise "Should set at least vectors options" if opts[:vectors].nil?
  @vectors=opts[:vectors]
  @c=opts[:c]
  @c1,@c2=opts[:c1], opts[:c2]
  @t_options=opts[:t_options] || {:estimate_name=>_("Psi estimate")}
  @name=opts[:name] || _("Contrast")
  @psi=nil
  @anova=Statsample::Anova::OneWayWithVectors.new(@vectors)
  @msw=@anova.msw
end

Public Instance Methods

c(args=nil) click to toggle source

Hypothesis contrast, using custom values Every parameter is a contrast value. You should use the same number of contrast as vectors on class and the sum of constrast should be 0.

# File lib/statsample/anova/contrast.rb, line 44
def c(args=nil)
  
  return @c if args.nil?
  @c=args
  raise "contrast number!=vector number" if args.size!=@vectors.size
  #raise "Sum should be 0" if args.inject(0) {|ac,v| ac+v}!=0
  @psi=args.size.times.inject(0) {|ac,i| ac+(args[i]*@vectors[i].mean)}
end
c_by_index(c1,c2) click to toggle source

Hypothesis contrast, selecting index for each constrast For example, if you want to contrast x_0 against x_1 and x_2 you should use c.contrast(,[1,2])

# File lib/statsample/anova/contrast.rb, line 23
def c_by_index(c1,c2)
  contrast=[0]*@vectors.size
  c1.each {|i| contrast[i]=1.quo(c1.size)}
  c2.each {|i| contrast[i]=-1.quo(c2.size)}
  @c=contrast
  c(contrast)
end
confidence_interval(cl=nil) click to toggle source
# File lib/statsample/anova/contrast.rb, line 37
def confidence_interval(cl=nil)
  t_object.confidence_interval(cl)
end
df() click to toggle source
# File lib/statsample/anova/contrast.rb, line 59
def df
  @vectors.inject(0) {|ac,v| ac+v.size}-@vectors.size
end
probability() click to toggle source
# File lib/statsample/anova/contrast.rb, line 68
def probability
  t_object.probability
end
report_building(builder) click to toggle source
# File lib/statsample/anova/contrast.rb, line 71
def report_building(builder)
   builder.section(:name=>@name) do |s|
     s.text _("Contrast:%s") % c.join(",")
     s.parse_element(t_object)
   end
end
se()
Alias for: standard_error
standard_error() click to toggle source
# File lib/statsample/anova/contrast.rb, line 52
def standard_error
  sum=@vectors.size.times.inject(0) {|ac,i|
    ac+((@c[i].rationalize**2).quo(@vectors[i].size))
  } 
  Math.sqrt(@msw*sum)
end
Also aliased as: se, se
t() click to toggle source
# File lib/statsample/anova/contrast.rb, line 65
def t
  t_object.t
end
t_object() click to toggle source
# File lib/statsample/anova/contrast.rb, line 62
def t_object
  Statsample::Test::T.new(psi, se, df, @t_options)
end