statsample 1.1.0 → 1.2.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.
Binary file
@@ -1,3 +1,10 @@
1
+ === 1.2.0 / 2011-12-15
2
+
3
+ * Added support for time series (TimeSeries object): MA, EMA, MACD, acf, lag and delta. [Rob Britton]
4
+ * Changed summary attribute to properly display 'b' value for simple linear regression [hstove]
5
+ * Merge pull request #6 from hstove/patch-1Changed summary attribute to properly display 'b' value for simple linear regression [Claudio Bustos]
6
+ * fix example code for CovariateMatrix [James Kebinger]
7
+
1
8
  === 1.1.0 / 2011-06-02
2
9
 
3
10
  * New Statsample::Anova::Contrast
@@ -102,6 +102,7 @@ lib/statsample/test/kolmogorovsmirnov.rb
102
102
  lib/statsample/test/levene.rb
103
103
  lib/statsample/test/t.rb
104
104
  lib/statsample/test/umannwhitney.rb
105
+ lib/statsample/timeseries.rb
105
106
  lib/statsample/vector.rb
106
107
  lib/statsample/vector/gsl.rb
107
108
  po/es/statsample.mo
@@ -114,6 +115,7 @@ test/fixtures/correlation_matrix.rb
114
115
  test/fixtures/crime.txt
115
116
  test/fixtures/hartman_23.matrix
116
117
  test/fixtures/repeated_fields.csv
118
+ test/fixtures/stock_data.csv
117
119
  test/fixtures/test_binomial.csv
118
120
  test/fixtures/test_csv.csv
119
121
  test/fixtures/test_xls.xls
@@ -156,6 +158,7 @@ test/test_stratified.rb
156
158
  test/test_test_f.rb
157
159
  test/test_test_kolmogorovsmirnov.rb
158
160
  test/test_test_t.rb
161
+ test/test_tseries.rb
159
162
  test/test_umannwhitney.rb
160
163
  test/test_vector.rb
161
164
  test/test_xls.rb
data/README.txt CHANGED
@@ -17,6 +17,7 @@ Include:
17
17
  * Regression: Simple, Multiple (OLS), Probit and Logit
18
18
  * 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.
19
19
  * Reliability analysis for simple scale and a DSL to easily analyze multiple scales using factor analysis and correlations, if you want it.
20
+ * Basic time series support
20
21
  * Dominance Analysis, with multivariate dependent and bootstrap (Azen & Budescu)
21
22
  * Sample calculation related formulas
22
23
  * Structural Equation Modeling (SEM), using R libraries +sem+ and +OpenMx+
@@ -89,6 +90,7 @@ Include:
89
90
  * Statsample::Graph::Boxplot
90
91
  * Statsample::Graph::Histogram
91
92
  * Statsample::Graph::Scatterplot
93
+ * Module Statsample::TimeSeries provides basic support for time series.
92
94
  * Gem +statsample-sem+ provides a DSL to R libraries +sem+ and +OpenMx+
93
95
  * Close integration with gem <tt>reportbuilder</tt>, to easily create reports on text, html and rtf formats.
94
96
 
data/Rakefile CHANGED
@@ -6,8 +6,10 @@ $:.unshift(File.dirname(__FILE__)+'/lib/')
6
6
  require 'rubygems'
7
7
  require 'statsample'
8
8
  require 'hoe'
9
- Hoe.plugin :git
9
+ require 'rdoc'
10
10
 
11
+ Hoe.plugin :git
12
+ Hoe.plugin :doofus
11
13
  desc "Ruby Lint"
12
14
  task :lint do
13
15
  executable=Config::CONFIG['RUBY_INSTALL_NAME']
@@ -22,6 +24,9 @@ task :release do
22
24
  system %{git push origin master}
23
25
  end
24
26
 
27
+ task "clobber_docs" do
28
+ # Only to omit warnings
29
+ end
25
30
  desc "Update pot/po files."
26
31
  task "gettext:updatepo" do
27
32
  require 'gettext/tools'
@@ -40,7 +45,7 @@ h=Hoe.spec('statsample') do
40
45
  #self.testlib=:minitest
41
46
  self.rubyforge_name = "ruby-statsample"
42
47
  self.developer('Claudio Bustos', 'clbustos@gmail.com')
43
- self.extra_deps << ["spreadsheet","~>0.6.5"] << ["reportbuilder", "~>1.4"] << ["minimization", "~>0.2.0"] << ["fastercsv", ">0"] << ["dirty-memoize", "~>0.0"] << ["extendmatrix","~>0.3.1"] << ["statsample-bivariate-extension", ">0"] << ["rserve-client", "~>0.2.5"] << ["rubyvis", "~>0.4.0"] << ["distribution", "~>0.3"]
48
+ self.extra_deps << ["spreadsheet","~>0.6.5"] << ["reportbuilder", "~>1.4"] << ["minimization", "~>0.2.0"] << ["fastercsv", ">0"] << ["dirty-memoize", "~>0.0"] << ["extendmatrix","~>0.3.1"] << ["statsample-bivariate-extension", ">0"] << ["rserve-client", "~>0.2.5"] << ["rubyvis", "~>0.5"] << ["distribution", "~>0.6"]
44
49
 
45
50
  self.extra_dev_deps << ["hoe","~>0"] << ["shoulda","~>0"] << ["minitest", "~>2.0"] << ["rserve-client", "~>0"] << ["gettext", "~>0"] << ["mocha", "~>0"] << ["hoe-git", "~>0"]
46
51
 
@@ -67,6 +72,7 @@ source code first.
67
72
  self.need_rdoc=false
68
73
  end
69
74
 
75
+ if Rake.const_defined?(:RDocTask)
70
76
  Rake::RDocTask.new(:docs) do |rd|
71
77
  rd.main = h.readme_file
72
78
  rd.options << '-d' if (`which dot` =~ /\/dot/) unless
@@ -91,7 +97,7 @@ Rake::RDocTask.new(:docs) do |rd|
91
97
  end
92
98
  end
93
99
 
94
-
100
+ end
95
101
  desc 'Publish rdocs with analytics support'
96
102
  task :publicar_docs => [:clean, :docs] do
97
103
  ruby %{agregar_adsense_a_doc.rb}
@@ -2,6 +2,7 @@
2
2
  require 'reportbuilder'
3
3
  refs=[]
4
4
  Dir.glob "**/*.rb" do |f|
5
+ next if f=~/pkg/
5
6
  reference=false
6
7
  File.open(f).each_line do |l|
7
8
 
@@ -134,7 +134,7 @@ module Statsample
134
134
 
135
135
  create_has_library :gsl
136
136
 
137
- VERSION = '1.1.0'
137
+ VERSION = '1.2.0'
138
138
  SPLIT_TOKEN = ","
139
139
  autoload(:Analysis, 'statsample/analysis')
140
140
  autoload(:Database, 'statsample/converters')
@@ -161,6 +161,7 @@ module Statsample
161
161
  autoload(:Test, 'statsample/test')
162
162
  autoload(:Factor, 'statsample/factor')
163
163
  autoload(:Graph, 'statsample/graph')
164
+ autoload(:TimeSeries, 'statsample/timeseries')
164
165
 
165
166
 
166
167
  class << self
@@ -266,16 +266,16 @@ module Statsample
266
266
  # a=Matrix[[1.0, 0.3, 0.2],
267
267
  # [0.3, 1.0, 0.5],
268
268
  # [0.2, 0.5, 1.0]]
269
- # a.extends CovariateMatrix
270
- # a.labels=%w{a b c}
271
- # a.submatrix(%{c a}, %w{b})
269
+ # a.extend CovariateMatrix
270
+ # a.fields=%w{a b c}
271
+ # a.submatrix(%w{c a}, %w{b})
272
272
  # => Matrix[[0.5],[0.3]]
273
- # a.submatrix(%{c a})
273
+ # a.submatrix(%w{c a})
274
274
  # => Matrix[[1.0, 0.2] , [0.2, 1.0]]
275
275
  def submatrix(rows,columns=nil)
276
276
  raise ArgumentError, "rows shouldn't be empty" if rows.respond_to? :size and rows.size==0
277
277
  columns||=rows
278
- # Convert all labels on index
278
+ # Convert all fields on index
279
279
  row_index=rows.collect {|v|
280
280
  r=v.is_a?(Numeric) ? v : fields_x.index(v)
281
281
  raise "Index #{v} doesn't exists on matrix" if r.nil?
@@ -110,7 +110,7 @@ module Statsample
110
110
  t.row [_("r"), f % r]
111
111
  t.row [_("r^2"), f % r2]
112
112
  t.row [_("a"), f % a]
113
- t.row [_("b"), f % a]
113
+ t.row [_("b"), f % b]
114
114
  t.row [_("s.e"), f % standard_error]
115
115
  end
116
116
  end
@@ -0,0 +1,169 @@
1
+ module Statsample::TimeSeriesShorthands
2
+ # Creates a new Statsample::TimeSeries object
3
+ # Argument should be equal to TimeSeries.new
4
+ def to_time_series(*args)
5
+ Statsample::TimeSeries::TimeSeries.new(self, :scale, *args)
6
+ end
7
+
8
+ alias :to_ts :to_time_series
9
+ end
10
+
11
+ class Array
12
+ include Statsample::TimeSeriesShorthands
13
+ end
14
+
15
+ module Statsample
16
+ module TimeSeries
17
+ # Collection of data indexed by time.
18
+ # The order goes from earliest to latest.
19
+ class TimeSeries < Statsample::Vector
20
+ # Calculates the autocorrelation coefficients of the series.
21
+ #
22
+ # The first element is always 1, since that is the correlation
23
+ # of the series with itself.
24
+ #
25
+ # Usage:
26
+ #
27
+ # ts = (1..100).map { rand }.to_time_series
28
+ #
29
+ # ts.acf # => array with first 21 autocorrelations
30
+ # ts.acf 3 # => array with first 3 autocorrelations
31
+ #
32
+ def acf maxlags = nil
33
+ maxlags ||= (10 * Math.log10(size)).to_i
34
+
35
+ (0..maxlags).map do |i|
36
+ if i == 0
37
+ 1.0
38
+ else
39
+ m = self.mean
40
+
41
+ # can't use Pearson coefficient since the mean for the lagged series should
42
+ # be the same as the regular series
43
+ ((self - m) * (self.lag(i) - m)).sum / self.variance_sample / (self.size - 1)
44
+ end
45
+ end
46
+ end
47
+
48
+ # Lags the series by k periods.
49
+ #
50
+ # The convention is to set the oldest observations (the first ones
51
+ # in the series) to nil so that the size of the lagged series is the
52
+ # same as the original.
53
+ #
54
+ # Usage:
55
+ #
56
+ # ts = (1..10).map { rand }.to_time_series
57
+ # # => [0.69, 0.23, 0.44, 0.71, ...]
58
+ #
59
+ # ts.lag # => [nil, 0.69, 0.23, 0.44, ...]
60
+ # ts.lag 2 # => [nil, nil, 0.69, 0.23, ...]
61
+ #
62
+ def lag k = 1
63
+ return self if k == 0
64
+
65
+ dup.tap do |lagged|
66
+ (lagged.size - 1).downto k do |i|
67
+ lagged[i] = lagged[i - k]
68
+ end
69
+
70
+ (0...k).each do |i|
71
+ lagged[i] = nil
72
+ end
73
+ lagged.set_valid_data
74
+ end
75
+ end
76
+
77
+ # Performs a first difference of the series.
78
+ #
79
+ # The convention is to set the oldest observations (the first ones
80
+ # in the series) to nil so that the size of the diffed series is the
81
+ # same as the original.
82
+ #
83
+ # Usage:
84
+ #
85
+ # ts = (1..10).map { rand }.to_ts
86
+ # # => [0.69, 0.23, 0.44, 0.71, ...]
87
+ #
88
+ # ts.diff # => [nil, -0.46, 0.21, 0.27, ...]
89
+ #
90
+ def diff
91
+ self - self.lag
92
+ end
93
+
94
+ # Calculates a moving average of the series using the provided
95
+ # lookback argument. The lookback defaults to 10 periods.
96
+ #
97
+ # Usage:
98
+ #
99
+ # ts = (1..100).map { rand }.to_ts
100
+ # # => [0.69, 0.23, 0.44, 0.71, ...]
101
+ #
102
+ # # first 9 observations are nil
103
+ # ts.ma # => [ ... nil, 0.484... , 0.445... , 0.513 ... , ... ]
104
+ def ma n = 10
105
+ return mean if n >= size
106
+
107
+ ([nil] * (n - 1) + (0..(size - n)).map do |i|
108
+ self[i...(i + n)].inject(&:+) / n
109
+ end).to_time_series
110
+ end
111
+
112
+ # Calculates an exponential moving average of the series using a
113
+ # specified parameter. If wilder is false (the default) then the EMA
114
+ # uses a smoothing value of 2 / (n + 1), if it is true then it uses the
115
+ # Welles Wilder smoother of 1 / n.
116
+ #
117
+ # Warning for EMA usage: EMAs are unstable for small series, as they
118
+ # use a lot more than n observations to calculate. The series is stable
119
+ # if the size of the series is >= 3.45 * (n + 1)
120
+ #
121
+ # Usage:
122
+ #
123
+ # ts = (1..100).map { rand }.to_ts
124
+ # # => [0.69, 0.23, 0.44, 0.71, ...]
125
+ #
126
+ # # first 9 observations are nil
127
+ # ts.ema # => [ ... nil, 0.509... , 0.433..., ... ]
128
+ def ema n = 10, wilder = false
129
+ smoother = wilder ? 1.0 / n : 2.0 / (n + 1)
130
+
131
+ # need to start everything from the first non-nil observation
132
+ start = self.data.index { |i| i != nil }
133
+
134
+ # first n - 1 observations are nil
135
+ base = [nil] * (start + n - 1)
136
+
137
+ # nth observation is just a moving average
138
+ base << self[start...(start + n)].inject(0.0) { |s, a| a.nil? ? s : s + a } / n
139
+
140
+ (start + n).upto size - 1 do |i|
141
+ base << self[i] * smoother + (1 - smoother) * base.last
142
+ end
143
+
144
+ base.to_time_series
145
+ end
146
+
147
+ # Calculates the MACD (moving average convergence-divergence) of the time
148
+ # series - this is a comparison of a fast EMA with a slow EMA.
149
+ def macd fast = 12, slow = 26, signal = 9
150
+ series = ema(fast) - ema(slow)
151
+ [series, series.ema(signal)]
152
+ end
153
+
154
+ # Borrow the operations from Vector, but convert to time series
155
+ def + series
156
+ super.to_a.to_ts
157
+ end
158
+
159
+ def - series
160
+ super.to_a.to_ts
161
+ end
162
+
163
+ def to_s
164
+ sprintf("Time Series(type:%s, n:%d)[%s]", @type.to_s, @data.size,
165
+ @data.collect{|d| d.nil? ? "nil":d}.join(","))
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,500 @@
1
+ 17.66
2
+ 17.65
3
+ 17.68
4
+ 17.66
5
+ 17.68
6
+ 17.67
7
+ 17.68
8
+ 17.68
9
+ 17.67
10
+ 17.67
11
+ 17.68
12
+ 17.71
13
+ 17.74
14
+ 17.72
15
+ 17.73
16
+ 17.76
17
+ 17.74
18
+ 17.69
19
+ 17.69
20
+ 17.67
21
+ 17.66
22
+ 17.67
23
+ 17.69
24
+ 17.69
25
+ 17.68
26
+ 17.65
27
+ 17.65
28
+ 17.64
29
+ 17.63
30
+ 17.64
31
+ 17.67
32
+ 17.68
33
+ 17.7
34
+ 17.68
35
+ 17.69
36
+ 17.69
37
+ 17.72
38
+ 17.71
39
+ 17.71
40
+ 17.71
41
+ 17.69
42
+ 17.69
43
+ 17.71
44
+ 17.72
45
+ 17.71
46
+ 17.68
47
+ 17.68
48
+ 17.68
49
+ 17.69
50
+ 17.68
51
+ 17.68
52
+ 17.69
53
+ 17.67
54
+ 17.69
55
+ 17.71
56
+ 17.7
57
+ 17.7
58
+ 17.71
59
+ 17.73
60
+ 17.74
61
+ 17.74
62
+ 17.74
63
+ 17.76
64
+ 17.77
65
+ 17.55
66
+ 17.55
67
+ 17.5
68
+ 17.46
69
+ 17.49
70
+ 17.54
71
+ 17.51
72
+ 17.54
73
+ 17.57
74
+ 17.54
75
+ 17.52
76
+ 17.53
77
+ 17.56
78
+ 17.55
79
+ 17.55
80
+ 17.54
81
+ 17.55
82
+ 17.55
83
+ 17.55
84
+ 17.54
85
+ 17.52
86
+ 17.53
87
+ 17.51
88
+ 17.52
89
+ 17.5
90
+ 17.5
91
+ 17.5
92
+ 17.49
93
+ 17.46
94
+ 17.47
95
+ 17.48
96
+ 17.45
97
+ 17.41
98
+ 17.39
99
+ 17.38
100
+ 17.43
101
+ 17.44
102
+ 17.43
103
+ 17.43
104
+ 17.46
105
+ 17.46
106
+ 17.47
107
+ 17.47
108
+ 17.45
109
+ 17.48
110
+ 17.49
111
+ 17.5
112
+ 17.49
113
+ 17.48
114
+ 17.49
115
+ 17.47
116
+ 17.47
117
+ 17.44
118
+ 17.44
119
+ 17.43
120
+ 17.45
121
+ 17.42
122
+ 17.43
123
+ 17.43
124
+ 17.44
125
+ 17.44
126
+ 17.43
127
+ 17.41
128
+ 17.41
129
+ 17.38
130
+ 17.38
131
+ 17.37
132
+ 17.37
133
+ 17.37
134
+ 17.3
135
+ 17.28
136
+ 17.27
137
+ 17.19
138
+ 16.41
139
+ 16.44
140
+ 16.48
141
+ 16.53
142
+ 16.51
143
+ 16.57
144
+ 16.54
145
+ 16.59
146
+ 16.64
147
+ 16.6
148
+ 16.65
149
+ 16.69
150
+ 16.69
151
+ 16.68
152
+ 16.64
153
+ 16.65
154
+ 16.66
155
+ 16.64
156
+ 16.61
157
+ 16.65
158
+ 16.67
159
+ 16.66
160
+ 16.65
161
+ 16.61
162
+ 16.59
163
+ 16.57
164
+ 16.55
165
+ 16.55
166
+ 16.57
167
+ 16.54
168
+ 16.6
169
+ 16.62
170
+ 16.6
171
+ 16.59
172
+ 16.61
173
+ 16.66
174
+ 16.69
175
+ 16.67
176
+ 16.65
177
+ 16.66
178
+ 16.65
179
+ 16.65
180
+ 16.68
181
+ 16.68
182
+ 16.67
183
+ 16.64
184
+ 16.73
185
+ 16.76
186
+ 16.75
187
+ 16.79
188
+ 16.8
189
+ 16.77
190
+ 16.74
191
+ 16.76
192
+ 16.83
193
+ 16.84
194
+ 16.82
195
+ 16.89
196
+ 16.93
197
+ 16.94
198
+ 16.9
199
+ 16.92
200
+ 16.88
201
+ 16.85
202
+ 16.87
203
+ 16.8
204
+ 16.79
205
+ 16.85
206
+ 16.85
207
+ 16.8
208
+ 16.82
209
+ 16.85
210
+ 16.9
211
+ 16.86
212
+ 16.79
213
+ 16.75
214
+ 16.78
215
+ 17.06
216
+ 17.05
217
+ 17.04
218
+ 17.02
219
+ 17.01
220
+ 17.02
221
+ 17.05
222
+ 17.07
223
+ 17.08
224
+ 17.09
225
+ 17.1
226
+ 17.11
227
+ 17.09
228
+ 17.1
229
+ 17.1
230
+ 17.12
231
+ 17.17
232
+ 17.16
233
+ 17.17
234
+ 17.18
235
+ 17.18
236
+ 17.18
237
+ 17.17
238
+ 17.15
239
+ 17.14
240
+ 17.13
241
+ 17.14
242
+ 17.13
243
+ 17.12
244
+ 17.12
245
+ 17.09
246
+ 17.09
247
+ 17.11
248
+ 17.06
249
+ 17.07
250
+ 17.06
251
+ 17.07
252
+ 17.06
253
+ 17.09
254
+ 17.05
255
+ 17.04
256
+ 17.04
257
+ 16.99
258
+ 17
259
+ 17.03
260
+ 17
261
+ 16.97
262
+ 16.96
263
+ 16.98
264
+ 16.98
265
+ 16.98
266
+ 17.03
267
+ 17
268
+ 17
269
+ 17
270
+ 17.02
271
+ 17
272
+ 17.02
273
+ 17.01
274
+ 17.02
275
+ 17.03
276
+ 17.03
277
+ 17.01
278
+ 17.03
279
+ 17.03
280
+ 17.03
281
+ 17.01
282
+ 17.03
283
+ 17.05
284
+ 17.05
285
+ 17.08
286
+ 17.04
287
+ 17.01
288
+ 17.03
289
+ 17.02
290
+ 17.03
291
+ 17.04
292
+ 17.05
293
+ 17.37
294
+ 17.35
295
+ 17.34
296
+ 17.32
297
+ 17.29
298
+ 17.29
299
+ 17.22
300
+ 17.26
301
+ 17.3
302
+ 17.34
303
+ 17.33
304
+ 17.39
305
+ 17.4
306
+ 17.39
307
+ 17.48
308
+ 17.5
309
+ 17.47
310
+ 17.43
311
+ 17.4
312
+ 17.42
313
+ 17.46
314
+ 17.48
315
+ 17.48
316
+ 17.46
317
+ 17.46
318
+ 17.45
319
+ 17.43
320
+ 17.44
321
+ 17.48
322
+ 17.43
323
+ 17.45
324
+ 17.47
325
+ 17.46
326
+ 17.46
327
+ 17.48
328
+ 17.48
329
+ 17.48
330
+ 17.46
331
+ 17.5
332
+ 17.55
333
+ 17.58
334
+ 17.57
335
+ 17.56
336
+ 17.59
337
+ 17.61
338
+ 17.62
339
+ 17.63
340
+ 17.62
341
+ 17.61
342
+ 17.61
343
+ 17.62
344
+ 17.64
345
+ 17.65
346
+ 17.61
347
+ 17.62
348
+ 17.66
349
+ 17.65
350
+ 17.64
351
+ 17.63
352
+ 17.64
353
+ 17.64
354
+ 17.64
355
+ 17.63
356
+ 17.61
357
+ 17.61
358
+ 17.62
359
+ 17.63
360
+ 17.64
361
+ 17.65
362
+ 17.66
363
+ 17.68
364
+ 17.69
365
+ 17.69
366
+ 17.69
367
+ 17.66
368
+ 17.69
369
+ 17.69
370
+ 17.62
371
+ 17.68
372
+ 17.64
373
+ 17.65
374
+ 17.61
375
+ 17.52
376
+ 17.56
377
+ 17.55
378
+ 17.55
379
+ 17.48
380
+ 17.45
381
+ 17.46
382
+ 17.46
383
+ 17.44
384
+ 17.47
385
+ 17.5
386
+ 17.49
387
+ 17.5
388
+ 17.53
389
+ 17.53
390
+ 17.54
391
+ 17.51
392
+ 17.51
393
+ 17.53
394
+ 17.53
395
+ 17.53
396
+ 17.55
397
+ 17.55
398
+ 17.54
399
+ 17.56
400
+ 17.59
401
+ 17.57
402
+ 17.58
403
+ 17.58
404
+ 17.57
405
+ 17.59
406
+ 17.57
407
+ 17.55
408
+ 17.51
409
+ 17.51
410
+ 17.52
411
+ 17.52
412
+ 17.53
413
+ 17.55
414
+ 17.59
415
+ 17.61
416
+ 17.61
417
+ 17.6
418
+ 17.6
419
+ 17.62
420
+ 17.65
421
+ 17.62
422
+ 17.6
423
+ 17.6
424
+ 17.62
425
+ 17.61
426
+ 17.62
427
+ 17.63
428
+ 17.64
429
+ 17.65
430
+ 17.61
431
+ 17.62
432
+ 17.64
433
+ 17.63
434
+ 17.62
435
+ 17.6
436
+ 17.57
437
+ 17.57
438
+ 17.6
439
+ 17.59
440
+ 17.6
441
+ 17.61
442
+ 17.61
443
+ 17.63
444
+ 17.63
445
+ 17.59
446
+ 17.58
447
+ 17.76
448
+ 17.79
449
+ 17.76
450
+ 17.73
451
+ 17.74
452
+ 17.73
453
+ 17.67
454
+ 17.66
455
+ 17.66
456
+ 17.64
457
+ 17.63
458
+ 17.62
459
+ 17.61
460
+ 17.6
461
+ 17.61
462
+ 17.61
463
+ 17.6
464
+ 17.6
465
+ 17.64
466
+ 17.65
467
+ 17.65
468
+ 17.63
469
+ 17.61
470
+ 17.6
471
+ 17.63
472
+ 17.63
473
+ 17.62
474
+ 17.63
475
+ 17.64
476
+ 17.62
477
+ 17.63
478
+ 17.65
479
+ 17.64
480
+ 17.6
481
+ 17.59
482
+ 17.59
483
+ 17.58
484
+ 17.58
485
+ 17.6
486
+ 17.6
487
+ 17.6
488
+ 17.6
489
+ 17.6
490
+ 17.58
491
+ 17.59
492
+ 17.6
493
+ 17.6
494
+ 17.6
495
+ 17.59
496
+ 17.59
497
+ 17.58
498
+ 17.58
499
+ 17.65
500
+ 17.65