JNbbTools > Use cases

Tramo-Seats processing

The processing of Tramo(-Seats) requires the creation of specifications objects that describes the parameters (TramoSpecification / SeatsSpecification) and the creation of monitoring entities that execute the processing and that store the results (Tramo, Seats, TramoSeats). The relationships between those objects is summarized in the class libraries guide.

It should be noted that the monitoring objects propose several ways for the execution of the algorithm. The proposed solutions can slightly differ from one monitoring object to another.
For example, the execution of Tramo can follow the following solutions:

Solution A.

(See for instance the code in the Outliers detection use case).

Solution B.

(See below)

The solution A allows some modifications of the controlling object after the setting of the specification, while the solution B is shorter and available for Tramo, Seats and Tramo-Seats.

The code below shows some very basic uses of the library.

C#:

References:

Code:

using Nbb.TimeSeries.SimpleTS;
using Nbb.TramoSeats;
using Nbb.Arima;
using Nbb.UCArima;
 

...

// External trade statistics: exports
double[] data =
{
    9568.3,9920.3,11353.5,9247.5,10114.2,10763.1,8456.1,8071.6,10328,10551.4,10186.1,8821.6,
    9841.3,10233.6,10794.6,10289.3,10513.4,10607.6,9707.4,8103.5,10982.6,11836.9,10517.5,9810.5,
    10374.8,10855.3,11671.3,11901.2,10846.4,11917.5,11362.8,9314.5,12605.9,12815.1,11254.5,11111.8,
    11282.9,11554.5,12935.6,12146.3,11615.3,13214.8,11735.5,9522.3,12694.8,12317.6,11450,11380.9,
    10604.6,10972.2,13331.5,11733.1,11284.7,13295.8,11881.4,10374.2,13828,13490.5,13092.2,13184.4,
    12398.4,13882.3,15861.5,13286.1,15634.9,14211,13646.8,12224.6,15916.4,16535.9,15796,14418.6,
    15044.5,14944.2,16754.8,14254,15454.9,15644.8,14568.3,12520.2,14803,15873.2,14755.3,12875.1,
    14291.1,14205.3,15859.4,15258.9,15498.6,15106.5,15023.6,12083,15761.3,16943,15070.3,13659.6,
    14768.9,14725.1,15998.1,15370.6,14956.9,15469.7,15101.8,11703.7,16283.6,16726.5,14968.9,14861,
    14583.3,15305.8,17903.9,16379.4,15420.3,17870.5,15912.8,13866.5,17823.2,17872,17420.4,16704.4,
    15991.5,16583.6,19123.4,17838.8,17335.3,19026.9,16428.6,15337.4,19379.8,18070.5,19563,18190.6,
    17658,18437.9,21510.4,17111,19732.7,20221.8
};

TS series = new TS(TSFrequency.Monthly, 1995, 0, data);

// TRAMO

// default tramo specification.
TramoSpecification tspec = new TramoSpecification();
// monitoring object for the tramo processing
Tramo tramo = new Tramo();
// processing, with the given specification ...
tramo.Process(series, tspec);
// getting back some results (airline model)
IArimaModel estimatedmodel = tramo.Estimation.Model;
double theta = estimatedmodel[0], btheta = estimatedmodel[1];

// SEATS

// default seats specification
SeatsSpecification sspec = new SeatsSpecification();
// monitoring object for the seats processing
Seats seats = new Seats();
// processing, with the given specification ...
seats.Process(series, sspec);
// getting back some results
UCModel ucm = seats.UCModel;
// ARIMA model for the trend...
IArimaModel tmodel = ucm.Component(0);
MessageBox.Show(tmodel.ToString());

// TRAMO-SEATS

// monitoring object for the tramo-seats processing
TramoSeats tramoseats = new TramoSeats();
// processing, with the given specification ...
tramoseats.Process(series, tspec, sspec);
// getting back some results
TS sa = tramoseats.FinalComponent(CmpType.SeasonallyAdjusted);