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
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