I tried to do some linear regression.
Code: Select all
private XYDataset createDataset(){
TimeSeriesCollection dataset = new TimeSeriesCollection();
TimeSeries s = new TimeSeries("seria 1", Minute.class);
long t = System.currentTimeMillis();
Random r = new Random(t);
for (int i=0; i<4;i++){
s.add(new Minute(new Date(t)),i+2);
t+=60*1000;
}
dataset.addSeries(s);
TimeSeries sreg = new TimeSeries("Regression", Minute.class);
double[] reg = Regression.getOLSRegression(dataset,0);
System.out.println("Regression parameters: " + reg[0] + ", " + reg[1]);
Iterator i = s.getItems().iterator();
while (i.hasNext()){
TimeSeriesDataItem timeSeriesDataItem = (TimeSeriesDataItem)i.next();
sreg.add(
timeSeriesDataItem.getPeriod(),
reg[0]*timeSeriesDataItem.getValue().doubleValue()+reg[1] );
System.out.println("Adding value " +
(reg[0]*timeSeriesDataItem.getValue().doubleValue()+reg[1]) + " from (" +
timeSeriesDataItem.getValue().doubleValue() + " , " + timeSeriesDataItem.getPeriod() + " ) "
);
}
dataset.addSeries(sreg);
return dataset;
}
Code: Select all
Regression parameters: -1.8389483317314345E7, 1.643510425792021E-5
Adding value -3.6778966634612255E7 from (2.0 , Thu Jun 16 11:44:00 CEST 2005 )
Adding value -5.5168449951926604E7 from (3.0 , Thu Jun 16 11:45:00 CEST 2005 )
Adding value -7.355793326924095E7 from (4.0 , Thu Jun 16 11:46:00 CEST 2005 )
Adding value -9.194741658655529E7 from (5.0 , Thu Jun 16 11:47:00 CEST 2005 )
I'm using jfree1.0.0.rc1