statsample 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemtest +0 -0
- data/History.txt +14 -0
- data/Manifest.txt +4 -0
- data/README.txt +49 -13
- data/data/locale/es/LC_MESSAGES/statsample.mo +0 -0
- data/lib/statsample.rb +1 -23
- data/lib/statsample/analysis.rb +49 -28
- data/lib/statsample/analysis/suite.rb +18 -5
- data/lib/statsample/analysis/suitereportbuilder.rb +9 -3
- data/lib/statsample/anova.rb +2 -0
- data/lib/statsample/anova/contrast.rb +79 -0
- data/lib/statsample/anova/oneway.rb +39 -5
- data/lib/statsample/converter/csv.rb +2 -5
- data/lib/statsample/converters.rb +1 -0
- data/lib/statsample/dataset.rb +31 -1
- data/lib/statsample/graph/histogram.rb +1 -1
- data/lib/statsample/regression/multiple/baseengine.rb +5 -0
- data/lib/statsample/reliability/multiscaleanalysis.rb +3 -1
- data/lib/statsample/reliability/scaleanalysis.rb +3 -4
- data/lib/statsample/shorthand.rb +41 -1
- data/lib/statsample/test.rb +10 -0
- data/lib/statsample/test/kolmogorovsmirnov.rb +61 -0
- data/lib/statsample/test/t.rb +92 -9
- data/lib/statsample/vector.rb +143 -10
- data/po/es/statsample.mo +0 -0
- data/po/es/statsample.po +109 -110
- data/po/statsample.pot +108 -60
- data/test/helpers_tests.rb +1 -0
- data/test/test_analysis.rb +70 -11
- data/test/test_anova_contrast.rb +36 -0
- data/test/test_anovawithvectors.rb +8 -0
- data/test/test_dataset.rb +12 -0
- data/test/test_factor_pa.rb +1 -3
- data/test/test_test_kolmogorovsmirnov.rb +34 -0
- data/test/test_test_t.rb +16 -0
- data/test/test_vector.rb +40 -2
- metadata +44 -118
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
+
class StatsampleAnovaContrastTestCase < MiniTest::Unit::TestCase
|
3
|
+
context(Statsample::Anova::Contrast) do
|
4
|
+
setup do
|
5
|
+
constant=[12,13,11,12,12].to_scale
|
6
|
+
frequent=[9,10,9,13,14].to_scale
|
7
|
+
infrequent=[15,16,17,16,16].to_scale
|
8
|
+
never=[17,18,12,18,20].to_scale
|
9
|
+
@vectors=[constant, frequent, infrequent, never]
|
10
|
+
@c=Statsample::Anova::Contrast.new(:vectors=>@vectors)
|
11
|
+
end
|
12
|
+
should "return correct value using c" do
|
13
|
+
@c.c([1,-1.quo(3),-1.quo(3),-1.quo(3)])
|
14
|
+
#@c.c([1,-0.333,-0.333,-0.333])
|
15
|
+
assert_in_delta(-2.6667, @c.psi, 0.0001)
|
16
|
+
assert_in_delta(1.0165, @c.se, 0.0001)
|
17
|
+
assert_in_delta(-2.623, @c.t, 0.001)
|
18
|
+
assert_in_delta(-4.82, @c.confidence_interval[0],0.01)
|
19
|
+
assert_in_delta(-0.51, @c.confidence_interval[1],0.01)
|
20
|
+
assert(@c.summary.size>0)
|
21
|
+
end
|
22
|
+
should "return correct values using c_by_index" do
|
23
|
+
@c.c_by_index([0],[1,2,3])
|
24
|
+
assert_in_delta(-2.6667, @c.psi, 0.0001)
|
25
|
+
assert_in_delta(1.0165, @c.se, 0.0001)
|
26
|
+
assert_in_delta(-2.623, @c.t, 0.001)
|
27
|
+
end
|
28
|
+
should "return correct values using incomplete c_by_index" do
|
29
|
+
c1=Statsample::Anova::Contrast.new(:vectors=>@vectors, :c=>[0.5,0.5,-1,0])
|
30
|
+
c2=Statsample::Anova::Contrast.new(:vectors=>@vectors, :c1=>[0,1],:c2=>[2])
|
31
|
+
assert_equal(c1.psi,c2.psi)
|
32
|
+
assert_equal(c1.se,c2.se)
|
33
|
+
assert_equal(c1.t,c2.t)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
2
|
class StatsampleAnovaOneWayWithVectorsTestCase < MiniTest::Unit::TestCase
|
3
3
|
context(Statsample::Anova::OneWayWithVectors) do
|
4
|
+
|
4
5
|
context("when initializing") do
|
5
6
|
setup do
|
6
7
|
@v1=10.times.map {rand(100)}.to_scale
|
@@ -34,6 +35,13 @@ class StatsampleAnovaOneWayWithVectorsTestCase < MiniTest::Unit::TestCase
|
|
34
35
|
@name="Anova testing"
|
35
36
|
@anova=Statsample::Anova::OneWayWithVectors.new(@v1,@v2,@v3, :name=>@name)
|
36
37
|
end
|
38
|
+
should "store correctly contrasts" do
|
39
|
+
c1=Statsample::Anova::Contrast.new(:vectors=>[@v1,@v2,@v3], :c=>[1,-0.5, -0.5])
|
40
|
+
|
41
|
+
c2=@anova.contrast(:c=>[1,-0.5,-0.5])
|
42
|
+
assert_equal(c1.t,c2.t)
|
43
|
+
|
44
|
+
end
|
37
45
|
should "respond to #summary" do
|
38
46
|
assert(@anova.respond_to? :summary)
|
39
47
|
end
|
data/test/test_dataset.rb
CHANGED
@@ -5,6 +5,18 @@ class StatsampleDatasetTestCase < MiniTest::Unit::TestCase
|
|
5
5
|
'city'=>Statsample::Vector.new(['New York','London','London','Paris','Tome']),
|
6
6
|
'a1'=>Statsample::Vector.new(['a,b','b,c','a',nil,'a,b,c'])}, ['id','name','age','city','a1'])
|
7
7
|
end
|
8
|
+
def test_nest
|
9
|
+
ds={
|
10
|
+
'a'=>%w{a a a b b b}.to_vector,
|
11
|
+
'b'=>%w{c c d d e e}.to_vector,
|
12
|
+
'c'=>%w{f g h i j k}.to_vector
|
13
|
+
}.to_dataset
|
14
|
+
nest=ds.nest('a','b')
|
15
|
+
assert_equal([{'c'=>'f'},{'c'=>'g'}], nest['a']['c'])
|
16
|
+
assert_equal([{'c'=>'h'}], nest['a']['d'])
|
17
|
+
assert_equal([{'c'=>'j'},{'c'=>'k'}], nest['b']['e'])
|
18
|
+
|
19
|
+
end
|
8
20
|
def test_should_have_summary
|
9
21
|
assert(@ds.summary.size>0)
|
10
22
|
end
|
data/test/test_factor_pa.rb
CHANGED
@@ -35,7 +35,7 @@ class StatsampleFactorTestCase < MiniTest::Unit::TestCase
|
|
35
35
|
pa2=Statsample::Factor::ParallelAnalysis.with_random_data(samples,variables,:iterations=>iterations,:percentil=>95)
|
36
36
|
3.times do |n|
|
37
37
|
var="ev_0000#{n+1}"
|
38
|
-
assert_in_delta(pa1.ds_eigenvalues[var].mean, pa2.ds_eigenvalues[var].mean,0.
|
38
|
+
assert_in_delta(pa1.ds_eigenvalues[var].mean, pa2.ds_eigenvalues[var].mean,0.05)
|
39
39
|
end
|
40
40
|
else
|
41
41
|
skip("Too slow without GSL")
|
@@ -48,7 +48,5 @@ class StatsampleFactorTestCase < MiniTest::Unit::TestCase
|
|
48
48
|
assert_in_delta(1.1542, pa.ds_eigenvalues['ev_00002'].mean, 0.01)
|
49
49
|
assert_in_delta(1.0836, pa.ds_eigenvalues['ev_00003'].mean, 0.01)
|
50
50
|
assert(pa.summary.size>0)
|
51
|
-
#pa=Statsample::Factor::ParallelAnalysis.with_random_data(305,8,100, 95, true)
|
52
|
-
#puts pa.summary
|
53
51
|
end
|
54
52
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
+
class StatsampleTestKolmogorovSmirnovTestCase < MiniTest::Unit::TestCase
|
3
|
+
context(Statsample::Test::KolmogorovSmirnov) do
|
4
|
+
should "calculate correctly D for two given samples" do
|
5
|
+
a=[1.1,2.5,5.6,9]
|
6
|
+
b=[1,2.3,5.8,10]
|
7
|
+
ks=Statsample::Test::KolmogorovSmirnov.new(a,b)
|
8
|
+
assert_equal(0.25,ks.d)
|
9
|
+
end
|
10
|
+
should "calculate correctly D for a normal sample and Normal Distribution" do
|
11
|
+
a=[0.30022510,-0.36664035,0.08593404,1.29881130,-0.49878633,-0.63056010, 0.28397638, -0.04913700,0.03566644,-1.33414346]
|
12
|
+
ks=Statsample::Test::KolmogorovSmirnov.new(a,Distribution::Normal)
|
13
|
+
assert_in_delta(0.282, ks.d,0.001)
|
14
|
+
end
|
15
|
+
should "calculate correctly D for a variable normal and Normal Distribution" do
|
16
|
+
rng=Distribution::Normal.rng
|
17
|
+
a=100.times.map {rng.call}
|
18
|
+
ks=Statsample::Test::KolmogorovSmirnov.new(a,Distribution::Normal)
|
19
|
+
assert(ks.d<0.15)
|
20
|
+
end
|
21
|
+
|
22
|
+
context(Statsample::Test::KolmogorovSmirnov::EmpiricDistribution) do
|
23
|
+
should "Create a correct empirical distribution for an array" do
|
24
|
+
a=[10,9,8,7,6,5,4,3,2,1]
|
25
|
+
ed=Statsample::Test::KolmogorovSmirnov::EmpiricDistribution.new(a)
|
26
|
+
assert_equal(0, ed.cdf(-2))
|
27
|
+
assert_equal(0.5, ed.cdf(5))
|
28
|
+
assert_equal(0.5, ed.cdf(5.5))
|
29
|
+
assert_equal(0.9, ed.cdf(9))
|
30
|
+
assert_equal(1, ed.cdf(11))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/test/test_test_t.rb
CHANGED
@@ -13,6 +13,22 @@ class StatsampleTestTTestCase < MiniTest::Unit::TestCase
|
|
13
13
|
@n1=@a.n
|
14
14
|
@n2=@b.n
|
15
15
|
end
|
16
|
+
should "calculate correctly standard t" do
|
17
|
+
t=Statsample::Test::T.new(@x1, @s1.quo(Math.sqrt(@a.n)), @a.n-1)
|
18
|
+
assert_equal((@x1).quo(@s1.quo(Math.sqrt(@a.n))), t.t)
|
19
|
+
assert_equal(@a.n-1, t.df)
|
20
|
+
assert(t.summary.size>0)
|
21
|
+
end
|
22
|
+
should "calculate correctly t for one sample" do
|
23
|
+
t1=[6, 4, 6, 7, 4,5,5,12,6,1].to_scale
|
24
|
+
t2=[9, 6, 5,10,10,8,7,10,6,5].to_scale
|
25
|
+
d=t1-t2
|
26
|
+
t=Statsample::Test::T::OneSample.new(d)
|
27
|
+
assert_in_delta(-2.631, t.t, 0.001)
|
28
|
+
assert_in_delta( 0.027, t.probability, 0.001)
|
29
|
+
assert_in_delta( 0.76012, t.se, 0.0001)
|
30
|
+
assert(t.summary.size>0)
|
31
|
+
end
|
16
32
|
should "calculate correctly t for two samples" do
|
17
33
|
assert_in_delta(1.959, T.two_sample_independent(@x1, @x2, @s1, @s2, @n1, @n2),0.001)
|
18
34
|
assert_in_delta(1.959, T.two_sample_independent(@x1, @x2, @s1, @s2, @n1, @n2,true),0.001)
|
data/test/test_vector.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
2
|
|
3
3
|
class StatsampleTestVector < MiniTest::Unit::TestCase
|
4
|
+
include Statsample::Shorthand
|
5
|
+
|
4
6
|
def setup
|
5
7
|
@c = Statsample::Vector.new([5,5,5,5,5,6,6,7,8,9,10,1,2,3,4,nil,-99,-99], :nominal)
|
6
8
|
@c.name="Test Vector"
|
@@ -66,7 +68,7 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
|
|
66
68
|
refute(v.flawed?)
|
67
69
|
|
68
70
|
end
|
69
|
-
|
71
|
+
|
70
72
|
context "using matrix operations" do
|
71
73
|
setup do
|
72
74
|
@a=[1,2,3,4,5].to_scale
|
@@ -164,7 +166,10 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
|
|
164
166
|
assert_counting_tokens(b)
|
165
167
|
end
|
166
168
|
end
|
167
|
-
|
169
|
+
should "return correct median_absolute_deviation" do
|
170
|
+
a=[1, 1, 2, 2, 4, 6, 9].to_scale
|
171
|
+
assert_equal(1, a.median_absolute_deviation)
|
172
|
+
end
|
168
173
|
should "return correct histogram" do
|
169
174
|
a=10.times.map {|v| v}.to_scale
|
170
175
|
hist=a.histogram(2)
|
@@ -287,6 +292,39 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
|
|
287
292
|
@c.type=:ordinal
|
288
293
|
assert_raise(::NoMethodError) { @c.mean }
|
289
294
|
end
|
295
|
+
should "jacknife correctly with named method" do
|
296
|
+
# First example
|
297
|
+
a=[1,2,3,4].to_scale
|
298
|
+
ds=a.jacknife(:mean)
|
299
|
+
assert_equal(a.mean, ds[:mean].mean)
|
300
|
+
ds=a.jacknife([:mean,:sd])
|
301
|
+
assert_equal(a.mean, ds[:mean].mean)
|
302
|
+
assert_equal(a.sd, ds[:mean].sd)
|
303
|
+
end
|
304
|
+
should "jacknife correctly with custom method" do
|
305
|
+
# Second example
|
306
|
+
a=[17.23, 18.71,13.93,18.81,15.78,11.29,14.91,13.39, 18.21, 11.57, 14.28, 10.94, 18.83, 15.52,13.45,15.25].to_scale
|
307
|
+
ds=a.jacknife(:log_s2=>lambda {|v| Math.log(v.variance) })
|
308
|
+
exp=[1.605, 2.972, 1.151, 3.097, 0.998, 3.308, 0.942, 1.393, 2.416, 2.951, 1.043, 3.806, 3.122, 0.958, 1.362, 0.937].to_scale
|
309
|
+
|
310
|
+
assert_similar_vector(exp, ds[:log_s2], 0.001)
|
311
|
+
assert_in_delta(2.00389, ds[:log_s2].mean, 0.00001)
|
312
|
+
assert_in_delta(1.091, ds[:log_s2].variance, 0.001)
|
313
|
+
end
|
314
|
+
should "jacknife correctly with k>1" do
|
315
|
+
a=rnorm(6)
|
316
|
+
ds=a.jacknife(:mean,2)
|
317
|
+
mean=a.mean
|
318
|
+
exp=[3*mean-2*(a[2]+a[3]+a[4]+a[5]) / 4, 3*mean-2*(a[0]+a[1]+a[4]+a[5]) / 4, 3*mean-2*(a[0]+a[1]+a[2]+a[3]) / 4].to_scale
|
319
|
+
assert_similar_vector(exp, ds[:mean], 1e-13)
|
320
|
+
end
|
321
|
+
should "bootstrap should return a vector with mean=mu and sd=se" do
|
322
|
+
a=rnorm(100)
|
323
|
+
ds=a.bootstrap([:mean,:sd],200)
|
324
|
+
se=1/Math.sqrt(a.size)
|
325
|
+
assert_in_delta(0, ds[:mean].mean, 0.3)
|
326
|
+
assert_in_delta(se, ds[:mean].sd, 0.02)
|
327
|
+
end
|
290
328
|
|
291
329
|
|
292
330
|
end
|
metadata
CHANGED
@@ -1,41 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statsample
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
version: 1.0.1
|
4
|
+
prerelease:
|
5
|
+
version: 1.1.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Claudio Bustos
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
|
-
cert_chain:
|
16
|
-
- |
|
17
|
-
-----BEGIN CERTIFICATE-----
|
18
|
-
MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhjbGJ1
|
19
|
-
c3RvczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
20
|
-
MB4XDTEwMDMyOTIxMzg1NVoXDTExMDMyOTIxMzg1NVowPzERMA8GA1UEAwwIY2xi
|
21
|
-
dXN0b3MxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
22
|
-
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf8JVMGqE7m5kYb+PNN
|
23
|
-
neZv2pcXV5fQCi6xkyG8bi2/SIFy/LyxuvLzEeOxBeaz1Be93bayIUquOIqw3dyw
|
24
|
-
/KXWa31FxuNuvAm6CN8fyeRYX/ou4cw3OIUUnIvB7RMNIu4wbgeM6htV/QEsNLrv
|
25
|
-
at1/mh9JpqawPrcjIOVMj4BIp67vmzJCaUf+S/H2uYtSO09F+YQE3tv85TPeRmqU
|
26
|
-
yjyXyTc/oJiw1cXskUL8UtMWZmrwNLHXuZWWIMzkjiz3UNdhJr/t5ROk8S2WPznl
|
27
|
-
0bMy/PMIlAbqWolRn1zl2VFJ3TaXScbqImY8Wf4g62b/1ZSUlGrtnLNsCYXrWiso
|
28
|
-
UPUCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGu9
|
29
|
-
rrJ1H64qRmNNu3Jj/Qjvh0u5MA0GCSqGSIb3DQEBBQUAA4IBAQCV0Unka5isrhZk
|
30
|
-
GjqSDqY/6hF+G2pbFcbWUpjmC8NWtAxeC+7NGV3ljd0e1SLfoyBj4gnFtFmY8qX4
|
31
|
-
K02tgSZM0eDV8TpgFpWXzK6LzHvoanuahHLZEtk/+Z885lFene+nHadkem1n9iAB
|
32
|
-
cs96JO9/JfFyuXM27wFAwmfHCmJfPF09R4VvGHRAvb8MGzSVgk2i06OJTqkBTwvv
|
33
|
-
JHJdoyw3+8bw9RJ+jLaNoQ+xu+1pQdS2bb3m7xjZpufml/m8zFCtjYM/7qgkKR8z
|
34
|
-
/ZZt8lCiKfFArppRrZayE2FVsps4X6WwBdrKTMZ0CKSXTRctbEj1BAZ67eoTvBBt
|
35
|
-
rpP0jjs0
|
36
|
-
-----END CERTIFICATE-----
|
11
|
+
cert_chain: []
|
37
12
|
|
38
|
-
date: 2011-
|
13
|
+
date: 2011-06-02 00:00:00 -04:00
|
39
14
|
default_executable:
|
40
15
|
dependencies:
|
41
16
|
- !ruby/object:Gem::Dependency
|
@@ -46,10 +21,6 @@ dependencies:
|
|
46
21
|
requirements:
|
47
22
|
- - ~>
|
48
23
|
- !ruby/object:Gem::Version
|
49
|
-
segments:
|
50
|
-
- 0
|
51
|
-
- 6
|
52
|
-
- 5
|
53
24
|
version: 0.6.5
|
54
25
|
type: :runtime
|
55
26
|
version_requirements: *id001
|
@@ -61,9 +32,6 @@ dependencies:
|
|
61
32
|
requirements:
|
62
33
|
- - ~>
|
63
34
|
- !ruby/object:Gem::Version
|
64
|
-
segments:
|
65
|
-
- 1
|
66
|
-
- 4
|
67
35
|
version: "1.4"
|
68
36
|
type: :runtime
|
69
37
|
version_requirements: *id002
|
@@ -75,10 +43,6 @@ dependencies:
|
|
75
43
|
requirements:
|
76
44
|
- - ~>
|
77
45
|
- !ruby/object:Gem::Version
|
78
|
-
segments:
|
79
|
-
- 0
|
80
|
-
- 2
|
81
|
-
- 0
|
82
46
|
version: 0.2.0
|
83
47
|
type: :runtime
|
84
48
|
version_requirements: *id003
|
@@ -90,8 +54,6 @@ dependencies:
|
|
90
54
|
requirements:
|
91
55
|
- - ">"
|
92
56
|
- !ruby/object:Gem::Version
|
93
|
-
segments:
|
94
|
-
- 0
|
95
57
|
version: "0"
|
96
58
|
type: :runtime
|
97
59
|
version_requirements: *id004
|
@@ -103,9 +65,6 @@ dependencies:
|
|
103
65
|
requirements:
|
104
66
|
- - ~>
|
105
67
|
- !ruby/object:Gem::Version
|
106
|
-
segments:
|
107
|
-
- 0
|
108
|
-
- 0
|
109
68
|
version: "0.0"
|
110
69
|
type: :runtime
|
111
70
|
version_requirements: *id005
|
@@ -117,10 +76,6 @@ dependencies:
|
|
117
76
|
requirements:
|
118
77
|
- - ~>
|
119
78
|
- !ruby/object:Gem::Version
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
- 3
|
123
|
-
- 1
|
124
79
|
version: 0.3.1
|
125
80
|
type: :runtime
|
126
81
|
version_requirements: *id006
|
@@ -132,8 +87,6 @@ dependencies:
|
|
132
87
|
requirements:
|
133
88
|
- - ">"
|
134
89
|
- !ruby/object:Gem::Version
|
135
|
-
segments:
|
136
|
-
- 0
|
137
90
|
version: "0"
|
138
91
|
type: :runtime
|
139
92
|
version_requirements: *id007
|
@@ -145,10 +98,6 @@ dependencies:
|
|
145
98
|
requirements:
|
146
99
|
- - ~>
|
147
100
|
- !ruby/object:Gem::Version
|
148
|
-
segments:
|
149
|
-
- 0
|
150
|
-
- 2
|
151
|
-
- 5
|
152
101
|
version: 0.2.5
|
153
102
|
type: :runtime
|
154
103
|
version_requirements: *id008
|
@@ -160,10 +109,6 @@ dependencies:
|
|
160
109
|
requirements:
|
161
110
|
- - ~>
|
162
111
|
- !ruby/object:Gem::Version
|
163
|
-
segments:
|
164
|
-
- 0
|
165
|
-
- 4
|
166
|
-
- 0
|
167
112
|
version: 0.4.0
|
168
113
|
type: :runtime
|
169
114
|
version_requirements: *id009
|
@@ -175,9 +120,6 @@ dependencies:
|
|
175
120
|
requirements:
|
176
121
|
- - ~>
|
177
122
|
- !ruby/object:Gem::Version
|
178
|
-
segments:
|
179
|
-
- 0
|
180
|
-
- 3
|
181
123
|
version: "0.3"
|
182
124
|
type: :runtime
|
183
125
|
version_requirements: *id010
|
@@ -189,8 +131,6 @@ dependencies:
|
|
189
131
|
requirements:
|
190
132
|
- - ~>
|
191
133
|
- !ruby/object:Gem::Version
|
192
|
-
segments:
|
193
|
-
- 0
|
194
134
|
version: "0"
|
195
135
|
type: :development
|
196
136
|
version_requirements: *id011
|
@@ -202,8 +142,6 @@ dependencies:
|
|
202
142
|
requirements:
|
203
143
|
- - ~>
|
204
144
|
- !ruby/object:Gem::Version
|
205
|
-
segments:
|
206
|
-
- 0
|
207
145
|
version: "0"
|
208
146
|
type: :development
|
209
147
|
version_requirements: *id012
|
@@ -215,9 +153,6 @@ dependencies:
|
|
215
153
|
requirements:
|
216
154
|
- - ~>
|
217
155
|
- !ruby/object:Gem::Version
|
218
|
-
segments:
|
219
|
-
- 2
|
220
|
-
- 0
|
221
156
|
version: "2.0"
|
222
157
|
type: :development
|
223
158
|
version_requirements: *id013
|
@@ -229,8 +164,6 @@ dependencies:
|
|
229
164
|
requirements:
|
230
165
|
- - ~>
|
231
166
|
- !ruby/object:Gem::Version
|
232
|
-
segments:
|
233
|
-
- 0
|
234
167
|
version: "0"
|
235
168
|
type: :development
|
236
169
|
version_requirements: *id014
|
@@ -242,8 +175,6 @@ dependencies:
|
|
242
175
|
requirements:
|
243
176
|
- - ~>
|
244
177
|
- !ruby/object:Gem::Version
|
245
|
-
segments:
|
246
|
-
- 0
|
247
178
|
version: "0"
|
248
179
|
type: :development
|
249
180
|
version_requirements: *id015
|
@@ -255,8 +186,6 @@ dependencies:
|
|
255
186
|
requirements:
|
256
187
|
- - ~>
|
257
188
|
- !ruby/object:Gem::Version
|
258
|
-
segments:
|
259
|
-
- 0
|
260
189
|
version: "0"
|
261
190
|
type: :development
|
262
191
|
version_requirements: *id016
|
@@ -268,8 +197,6 @@ dependencies:
|
|
268
197
|
requirements:
|
269
198
|
- - ~>
|
270
199
|
- !ruby/object:Gem::Version
|
271
|
-
segments:
|
272
|
-
- 0
|
273
200
|
version: "0"
|
274
201
|
type: :development
|
275
202
|
version_requirements: *id017
|
@@ -281,22 +208,18 @@ dependencies:
|
|
281
208
|
requirements:
|
282
209
|
- - ">="
|
283
210
|
- !ruby/object:Gem::Version
|
284
|
-
|
285
|
-
- 2
|
286
|
-
- 8
|
287
|
-
- 0
|
288
|
-
version: 2.8.0
|
211
|
+
version: 2.9.0
|
289
212
|
type: :development
|
290
213
|
version_requirements: *id018
|
291
214
|
description: |-
|
292
|
-
A suite for basic and advanced statistics on Ruby. Tested on Ruby 1.8.7, 1.9.1, 1.9.2 (April, 2010) and JRuby 1.4 (Ruby 1.8.7 compatible).
|
215
|
+
A suite for basic and advanced statistics on Ruby. Tested on Ruby 1.8.7, 1.9.1, 1.9.2 (April, 2010), ruby-head(June, 2011) and JRuby 1.4 (Ruby 1.8.7 compatible).
|
293
216
|
|
294
217
|
Include:
|
295
218
|
* Descriptive statistics: frequencies, median, mean, standard error, skew, kurtosis (and many others).
|
296
219
|
* Imports and exports datasets from and to Excel, CSV and plain text files.
|
297
220
|
* Correlations: Pearson's r, Spearman's rank correlation (rho), point biserial, tau a, tau b and gamma. Tetrachoric and Polychoric correlation provides by +statsample-bivariate-extension+ gem.
|
298
221
|
* Intra-class correlation
|
299
|
-
* Anova: generic and vector-based One-way ANOVA and Two-way ANOVA
|
222
|
+
* Anova: generic and vector-based One-way ANOVA and Two-way ANOVA, with contrasts for One-way ANOVA.
|
300
223
|
* Tests: F, T, Levene, U-Mannwhitney.
|
301
224
|
* Regression: Simple, Multiple (OLS), Probit and Logit
|
302
225
|
* Factorial Analysis: Extraction (PCA and Principal Axis), Rotation (Varimax, Equimax, Quartimax) and Parallel Analysis and Velicer's MAP test, for estimation of number of factors.
|
@@ -365,6 +288,7 @@ files:
|
|
365
288
|
- lib/statsample/analysis/suite.rb
|
366
289
|
- lib/statsample/analysis/suitereportbuilder.rb
|
367
290
|
- lib/statsample/anova.rb
|
291
|
+
- lib/statsample/anova/contrast.rb
|
368
292
|
- lib/statsample/anova/oneway.rb
|
369
293
|
- lib/statsample/anova/twoway.rb
|
370
294
|
- lib/statsample/bivariate.rb
|
@@ -418,6 +342,7 @@ files:
|
|
418
342
|
- lib/statsample/test/bartlettsphericity.rb
|
419
343
|
- lib/statsample/test/chisquare.rb
|
420
344
|
- lib/statsample/test/f.rb
|
345
|
+
- lib/statsample/test/kolmogorovsmirnov.rb
|
421
346
|
- lib/statsample/test/levene.rb
|
422
347
|
- lib/statsample/test/t.rb
|
423
348
|
- lib/statsample/test/umannwhitney.rb
|
@@ -440,6 +365,7 @@ files:
|
|
440
365
|
- test/fixtures/tetmat_test.txt
|
441
366
|
- test/helpers_tests.rb
|
442
367
|
- test/test_analysis.rb
|
368
|
+
- test/test_anova_contrast.rb
|
443
369
|
- test/test_anovaoneway.rb
|
444
370
|
- test/test_anovatwoway.rb
|
445
371
|
- test/test_anovatwowaywithdataset.rb
|
@@ -472,11 +398,13 @@ files:
|
|
472
398
|
- test/test_stest.rb
|
473
399
|
- test/test_stratified.rb
|
474
400
|
- test/test_test_f.rb
|
401
|
+
- test/test_test_kolmogorovsmirnov.rb
|
475
402
|
- test/test_test_t.rb
|
476
403
|
- test/test_umannwhitney.rb
|
477
404
|
- test/test_vector.rb
|
478
405
|
- test/test_xls.rb
|
479
406
|
- web/Rakefile
|
407
|
+
- .gemtest
|
480
408
|
has_rdoc: true
|
481
409
|
homepage: http://ruby-statsample.rubyforge.org/
|
482
410
|
licenses: []
|
@@ -510,59 +438,57 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
510
438
|
requirements:
|
511
439
|
- - ">="
|
512
440
|
- !ruby/object:Gem::Version
|
513
|
-
segments:
|
514
|
-
- 0
|
515
441
|
version: "0"
|
516
442
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
517
443
|
none: false
|
518
444
|
requirements:
|
519
445
|
- - ">="
|
520
446
|
- !ruby/object:Gem::Version
|
521
|
-
segments:
|
522
|
-
- 0
|
523
447
|
version: "0"
|
524
448
|
requirements: []
|
525
449
|
|
526
450
|
rubyforge_project: ruby-statsample
|
527
|
-
rubygems_version: 1.
|
451
|
+
rubygems_version: 1.5.0
|
528
452
|
signing_key:
|
529
453
|
specification_version: 3
|
530
454
|
summary: A suite for basic and advanced statistics on Ruby
|
531
455
|
test_files:
|
532
|
-
- test/
|
533
|
-
- test/
|
534
|
-
- test/
|
535
|
-
- test/
|
536
|
-
- test/
|
537
|
-
- test/test_anovatwowaywithdataset.rb
|
538
|
-
- test/test_umannwhitney.rb
|
456
|
+
- test/test_analysis.rb
|
457
|
+
- test/test_regression.rb
|
458
|
+
- test/test_stest.rb
|
459
|
+
- test/test_logit.rb
|
460
|
+
- test/test_ggobi.rb
|
539
461
|
- test/test_factor_map.rb
|
540
|
-
- test/
|
541
|
-
- test/
|
542
|
-
- test/
|
462
|
+
- test/test_anovatwoway.rb
|
463
|
+
- test/test_test_f.rb
|
464
|
+
- test/test_multiset.rb
|
465
|
+
- test/test_srs.rb
|
466
|
+
- test/test_codification.rb
|
543
467
|
- test/test_csv.rb
|
544
|
-
- test/
|
545
|
-
- test/
|
468
|
+
- test/test_crosstab.rb
|
469
|
+
- test/test_umannwhitney.rb
|
546
470
|
- test/test_gsl.rb
|
471
|
+
- test/test_anova_contrast.rb
|
472
|
+
- test/test_test_kolmogorovsmirnov.rb
|
547
473
|
- test/test_bartlettsphericity.rb
|
548
|
-
- test/test_mle.rb
|
549
|
-
- test/test_resample.rb
|
550
|
-
- test/test_stratified.rb
|
551
474
|
- test/test_vector.rb
|
552
|
-
- test/test_srs.rb
|
553
|
-
- test/test_ggobi.rb
|
554
|
-
- test/test_xls.rb
|
555
|
-
- test/test_logit.rb
|
556
|
-
- test/test_stest.rb
|
557
|
-
- test/test_statistics.rb
|
558
|
-
- test/test_reliability.rb
|
559
|
-
- test/test_reliability_icc.rb
|
560
|
-
- test/test_anovatwoway.rb
|
561
|
-
- test/test_test_f.rb
|
562
475
|
- test/test_test_t.rb
|
563
|
-
- test/
|
476
|
+
- test/test_reliability.rb
|
477
|
+
- test/test_bivariate.rb
|
478
|
+
- test/test_anovawithvectors.rb
|
479
|
+
- test/test_xls.rb
|
480
|
+
- test/test_anovaoneway.rb
|
564
481
|
- test/test_dataset.rb
|
565
|
-
- test/
|
566
|
-
- test/test_multiset.rb
|
482
|
+
- test/test_rserve_extension.rb
|
567
483
|
- test/test_reliability_skillscale.rb
|
568
|
-
- test/
|
484
|
+
- test/test_histogram.rb
|
485
|
+
- test/test_stratified.rb
|
486
|
+
- test/test_matrix.rb
|
487
|
+
- test/test_dominance_analysis.rb
|
488
|
+
- test/test_anovatwowaywithdataset.rb
|
489
|
+
- test/test_resample.rb
|
490
|
+
- test/test_mle.rb
|
491
|
+
- test/test_statistics.rb
|
492
|
+
- test/test_factor.rb
|
493
|
+
- test/test_factor_pa.rb
|
494
|
+
- test/test_reliability_icc.rb
|