Menu

#1 NPE when using timeseries datasets

open
nobody
None
5
2012-06-23
2012-06-23
ablaszczyk
No

I have:
Exception in thread "main" java.lang.NullPointerException
at net.sourceforge.openforecast.models.WeightedMovingAverageModel.getNumberOfPeriods(WeightedMovingAverageModel.java:222)
at net.sourceforge.openforecast.models.MovingAverageModel.init(MovingAverageModel.java:138)
at net.sourceforge.openforecast.Forecaster.getBestForecast(Forecaster.java:190)
at net.sourceforge.openforecast.Forecaster.getBestForecast(Forecaster.java:70)
at Test.main(Test.java:38)

Mo code is:
DataSet dataSet = new DataSet();
dataSet.setTimeVariable("t");
dataSet.setPeriodsPerYear(4);

// Create Observation for quarter 1
Observation observationQ1 = new Observation(1);
observationQ1.setIndependentValue("t", 1);

// Create Observation for quarter 2
Observation observationQ2 = new Observation(2);
observationQ2.setIndependentValue("t", 2);

// Create Observation for quarter 3
Observation observationQ3 = new Observation(10);
observationQ3.setIndependentValue("t", 3);

// Create Observation for quarter 3
Observation observationQ4 = new Observation(11);
observationQ4.setIndependentValue("t", 4);

// Add Observations to the DataSet
dataSet.add(observationQ1);
dataSet.add(observationQ2);
dataSet.add(observationQ3);
dataSet.add(observationQ4);

ForecastingModel model = Forecaster.getBestForecast(dataSet);
model.init(dataSet);

// Create DataPoint/Observation for quarter 4
DataPoint fcDataPointQ4 = new Observation(0.0);
fcDataPointQ4.setIndependentValue("t", 5);

// Create Observation/DataPoint for quarter 5
DataPoint fcDataPointQ5 = new Observation(0.0);
fcDataPointQ5.setIndependentValue("t", 6);

// Create forecast data set and add these DataPoints
DataSet fcDataSet = new DataSet();
fcDataSet.setTimeVariable("t");
fcDataSet.setPeriodsPerYear(4);
fcDataSet.add(fcDataPointQ4);
fcDataSet.add(fcDataPointQ5);

model.forecast(fcDataSet);
Iterator it = fcDataSet.iterator();

while (it.hasNext()) {
DataPoint dp = (DataPoint) it.next();
double forecastValue = dp.getDependentValue();

// Do something with the forecast value, e.g.
System.out.println(dp);
}

Discussion


Log in to post a comment.