class Statsample::Anova::TwoWay
Generic Anova two-way.¶ ↑
You could enter the sum of squares or the mean squares for a, b, axb and within. You should enter the degrees of freedom for a,b and within, because #df_axb=df_a*df_b
Usage¶ ↑
anova=Statsample::Anova::TwoWay(:ss_a=>10,:ss_b=>20,:ss_axb=>10, :ss_within=>20, :df_a=>2, :df_b=>3,df_within=100 @name=>"ANOVA for....")
Generic Anova two-way.¶ ↑
You could enter the sum of squares or the mean squares for a, b, axb and within. You should enter the degrees of freedom for a,b and within, because #df_axb=df_a*df_b
Usage¶ ↑
anova=Statsample::Anova::TwoWay(:ss_a=>10,:ss_b=>20,:ss_axb=>10, :ss_within=>20, :df_a=>2, :df_b=>3,df_within=100 @name=>"ANOVA for....")
Attributes
df_a[R]
df_axb[R]
df_b[R]
df_total[R]
df_within[R]
f_a_object[R]
f_axb_object[R]
f_b_object[R]
ms_a[R]
ms_axb[R]
ms_b[R]
ms_total[R]
ms_within[R]
name[RW]
Name of ANOVA Analisys
name_a[RW]
Name of a factor
name_b[RW]
Name of b factor
name_within[RW]
Name of within factor
ss_a[R]
ss_axb[R]
ss_b[R]
ss_total[R]
ss_within[R]
Public Class Methods
new(opts=Hash.new)
click to toggle source
# File lib/statsample/anova/twoway.rb, line 23 def initialize(opts=Hash.new) # First see if sum of squares or mean squares are entered raise ArgumentError, "You should set all d.f." unless [:df_a, :df_b, :df_within].all? {|v| opts.has_key? v} @df_a=opts.delete :df_a @df_b=opts.delete :df_b @df_axb=@df_a*@df_b @df_within=opts.delete :df_within @df_total=@df_a+@df_b+@df_axb+@df_within if [:ss_a, :ss_b, :ss_axb, :ss_within].all? {|v| opts.has_key? v} @ss_a = opts.delete :ss_a @ss_b = opts.delete :ss_b @ss_axb = opts.delete :ss_axb @ss_within = opts.delete :ss_within @ms_a =@ss_a.quo(@df_a) @ms_b =@ss_b.quo(@df_b) @ms_axb =@ss_axb.quo(@df_axb) @ms_within =@ss_within.quo(@df_within) elsif [:ms_a, :ms_b, :ms_axb, :ms_within].all? {|v| opts.has_key? v} @ms_a = opts.delete :ms_a @ms_b = opts.delete :ms_b @ms_axb = opts.delete :ms_axb @ms_within = opts.delete :ms_within @ss_a =@ms_a*@df_a @ss_b =@ms_b*@df_b @ss_axb =@ms_axb*@df_axb @ss_within =@ms_within*@df_within else raise "You should set all ss or ss" end @ss_total=@ss_a+@ss_b+@ss_axb+@ss_within @ms_total=@ms_a+@ms_b+@ms_axb+@ms_within opts_default={:name=>_("ANOVA Two-Way"), :name_a=>_("A"), :name_b=>_("B"), :name_within=>_("Within") } @opts=opts_default.merge(opts) opts_default.keys.each {|k| send("#{k}=", @opts[k]) } @f_a_object=Statsample::Test::F.new(@ms_a,@ms_within,@df_a,@df_within) @f_b_object=Statsample::Test::F.new(@ms_b,@ms_within,@df_b,@df_within) @f_axb_object=Statsample::Test::F.new(@ms_axb,@ms_within,@df_axb,@df_within) end
Public Instance Methods
f_a()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 72 def f_a @f_a_object.f end
f_a_probability()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 81 def f_a_probability @f_a_object.probability end
f_axb()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 78 def f_axb @f_axb_object.f end
f_axb_probability()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 87 def f_axb_probability @f_axb_object.probability end
f_b()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 75 def f_b @f_b_object.f end
f_b_probability()
click to toggle source
# File lib/statsample/anova/twoway.rb, line 84 def f_b_probability @f_b_object.probability end