EMlab-generation Documentation  1.0
Documentation of the EMLab-Generation model.
GeometricTrendRegression.java
1 /*******************************************************************************
2  * Copyright 2012 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 package emlab.gen.util;
17 
18 import org.apache.commons.math.stat.regression.SimpleRegression;
19 
28 public class GeometricTrendRegression extends SimpleRegression {
29 
30  public void addData(double x, double y) {
31  super.addData(x, Math.log(y));
32  }
33 
34  public void removeData(double x, double y) {
35  super.removeData(x, Math.log(y));
36  }
37 
38  public void addData(double[][] data) {
39  for (double[] d : data) {
40  addData(d[0], d[1]);
41  }
42  }
43 
44  public void removeData(double[][] data) {
45  for (int i = 0; i < data.length && super.getN() > 0; i++) {
46  removeData(data[i][0], Math.log(data[i][1]));
47  }
48  }
49 
50  public double predict(double x) {
51  return Math.exp(super.predict(x));
52  }
53 
54 }