def test_non_seasonal_arima18(self):
     ts_data = self.getData4()
     f_name = 'non_seasonal_arima18.pmml'
     model = ARIMA(ts_data, order=(9, 2, 0))
     result = model.fit(trend='c', method='css', solver='ncg')
     ArimaToPMML(result, f_name)
     self.assertEqual(os.path.isfile(f_name), True)
 def test_varmax_without_intercept(self):
     ts_data = self.get_data_for_varmax()
     f_name = 'varmax_without_intercept.pmml'
     model = VARMAX(ts_data, order=(1, 1), trend=None)
     result = model.fit()
     ArimaToPMML(result, f_name)
     self.assertEqual(os.path.isfile(f_name), True)
 def test_non_seasonal_arima5(self):
     ts_data = self.getData4()
     f_name = 'non_seasonal_arima5.pmml'
     model = StateSpaceARIMA(ts_data, order=(1, 1, 1))
     result = model.fit()
     ArimaToPMML(result, f_name, description="A test model")
     self.assertEqual(os.path.isfile(f_name), True)
Пример #4
0
 def test_non_seasonal_arima18(self):
     ts_data = self.statsmodels_data_helper.getData4()
     f_name = 'non_seasonal_arima18.pmml'
     model = ARIMA(ts_data, order=(9, 2, 0))
     result = model.fit(trend='c', method='css', solver='ncg')
     ArimaToPMML(ts_data, model, result, f_name)
     self.assertEqual(self.schema.is_valid(f_name), True)
Пример #5
0
 def test_varmax_without_intercept(self):
     ts_data = self.statsmodels_data_helper.get_data_for_varmax()
     f_name = 'varmax_without_intercept.pmml'
     model = VARMAX(ts_data, order=(1, 1), trend=None)
     result = model.fit()
     ArimaToPMML(result, f_name)
     self.assertEqual(self.schema.is_valid(f_name), True)
 def test_non_seasonal_arima3(self):
     ts_data = self.getData4()
     f_name = 'non_seasonal_arima3.pmml'
     model = ARIMA(ts_data, order=(1, 0, 1))
     result = model.fit(trend='c', method='css-mle')
     ArimaToPMML(result, f_name, description="A test model")
     self.assertEqual(os.path.isfile(f_name), True)
Пример #7
0
 def test_non_seasonal_arima8(self):
     ts_data = self.statsmodels_data_helper.get_non_seasonal_data()
     f_name = 'non_seasonal_arima8.pmml'
     model = ARIMA(ts_data, order=(5, 1, 2))
     result = model.fit(trend='c', method='mle')
     ArimaToPMML(result, f_name, conf_int=[80, 95])
     self.assertEqual(self.schema.is_valid(f_name), True)
Пример #8
0
 def test_non_seasonal_arima2(self):
     ts_data = self.statsmodels_data_helper.get_non_seasonal_data()
     f_name = 'non_seasonal_arima1.pmml'
     model = StateSpaceARIMA(ts_data, order=(3, 1, 2), trend='c')
     result = model.fit()
     ArimaToPMML(result, f_name)
     self.assertEqual(self.schema.is_valid(f_name), True)
Пример #9
0
 def test_seasonal_arima2(self):
     ts_data = self.statsmodels_data_helper.get_seasonal_data()
     f_name = 'seasonal_arima2.pmml'
     model = SARIMAX(endog=ts_data,
                     exog=None,
                     order=(3, 1, 1),
                     seasonal_order=(3, 1, 1, 12))
     result = model.fit()
     ArimaToPMML(result, f_name, conf_int=[80])
     self.assertEqual(self.schema.is_valid(f_name), True)
 def test_seasonal_arima4(self):
     ts_data = self.getData5()
     f_name = 'seasonal_arima4.pmml'
     model = SARIMAX(
         endog=ts_data,
         order=(1, 0, 1),
         seasonal_order=(1, 0, 1, 12),
     )
     result = model.fit(disp=False)
     ArimaToPMML(result, f_name)
     self.assertEqual(os.path.isfile(f_name), True)
Пример #11
0
    def test_01(self):
        ts_data = getData()
        f_name='arima201_c_car_sold.pmml'
        model = ARIMA(ts_data,order=(2,0,1))
        result = model.fit(trend = 'c', method = 'css')
        ArimaToPMML(result, f_name)

        model_name = self.adapaUtilities.upload_to_zserver(f_name)
        z_pred = self.adapaUtilities.score_single_record(model_name)
        model_pred = result.forecast()[0][0]
        self.assertEqual(model_pred, z_pred['predicted_cars_sold'])

        z_pred = self.adapa_utility.score_in_zserver(model_name, 'nyoka/tests/test_car_sold.csv','TS')
        model_pred = result.forecast(5)[0][-1]
        self.assertEqual(model_pred, z_pred)
    def test_03(self):
        ts_data = self.getData()
        f_name='arima212_c_car_sold.pmml'
        model = ARIMA(ts_data,order=(2,1,2))
        result = model.fit(trend = 'c', method = 'mle')
        ArimaToPMML(result, f_name)

        model_name = self.adapa_utility.upload_to_zserver(f_name)
        z_pred = self.adapa_utility.score_single_record(model_name)
        model_pred = result.forecast()[0][0]
        self.assertEqual("{:.9f}".format(model_pred), "{:.9f}".format(z_pred['predicted_cars_sold']))

        z_pred = self.adapa_utility.score_in_zserver(model_name, 'nyoka/tests/test_car_sold.csv','TS')
        model_pred = result.forecast(5)[0][-1]
        self.assertEqual("{:.9f}".format(z_pred), "{:.9f}".format(model_pred))
    def test_02(self):
        data=pd.read_csv("nyoka/tests/JohnsonJohnsonWithDate.csv")
        data['index']=pd.to_datetime(data['index'], format='%Y-%m-%d')
        data.set_index(['index'], inplace=True)
        
        mod = SARIMAX(data,order=(1,1,1),seasonal_order=(1,1,1, 4))
        result = mod.fit(disp=False)

        ArimaToPMML(result, 'jnj_seasonal_arima.pmml')
        model_name = self.adapa_utility.upload_to_zserver('jnj_seasonal_arima.pmml')
        z_pred = self.adapa_utility.score_single_record(model_name)
        model_pred = result.forecast()[0]
        self.assertEqual("{:.9f}".format(model_pred), "{:.9f}".format(z_pred['predicted_value']))

        z_pred = self.adapa_utility.score_in_zserver(model_name, 'nyoka/tests/test_jnj.csv','TS')
        model_pred = result.forecast(5)[-1]
        self.assertEqual("{:.9f}".format(z_pred), "{:.9f}".format(model_pred))
 def test_seasonal_arima7(self):
     ts_data = self.getData5()
     f_name = 'seasonal_arima7.pmml'
     model = sarimax.SARIMAX(endog=ts_data,
                             exog=None,
                             order=(3, 1, 1),
                             seasonal_order=(3, 1, 1, 12),
                             trend='t',
                             measurement_error=False,
                             time_varying_regression=False,
                             mle_regression=True,
                             simple_differencing=True,
                             enforce_stationarity=False,
                             enforce_invertibility=False,
                             hamilton_representation=True,
                             concentrate_scale=False)
     result = model.fit(disp=False)
     ArimaToPMML(result, f_name)
     self.assertEqual(os.path.isfile(f_name), True)
Пример #15
0
 def test_seasonal_arima8(self):
     ts_data = self.statsmodels_data_helper.getData5()
     f_name = 'seasonal_arima8.pmml'
     model = SARIMAX(endog=ts_data,
                     exog=None,
                     order=(3, 1, 1),
                     seasonal_order=(3, 1, 1, 12),
                     trend='t',
                     measurement_error=False,
                     time_varying_regression=False,
                     mle_regression=True,
                     simple_differencing=False,
                     enforce_stationarity=False,
                     enforce_invertibility=False,
                     hamilton_representation=False,
                     concentrate_scale=False)
     result = model.fit()
     ArimaToPMML(ts_data, model, result, f_name)
     self.assertEqual(self.schema.is_valid(f_name), True)
    def test_non_seasonal_arima(self):

        fit_combin = [['c', 'css-mle', 'lbfgs'], ['c', 'css-mle', 'nm'],
                      ['c', 'css-mle', 'bfgs'], ['c', 'css-mle', 'powell'],
                      ['c', 'css-mle', 'cg'], ['c', 'css-mle', 'ncg'],
                      ['c', 'mle', 'lbfgs'], ['c', 'mle', 'nm'],
                      ['c', 'mle', 'bfgs'], ['c', 'mle', 'powell'],
                      ['c', 'mle', 'cg'], ['c', 'mle', 'ncg'],
                      ['c', 'css', 'lbfgs'], ['c', 'css', 'nm'],
                      ['c', 'css', 'bfgs'], ['c', 'css', 'powell'],
                      ['c', 'css', 'cg'], ['c', 'css', 'ncg']]

        # no of cars sold
        data = [
            266, 146, 183, 119, 180, 169, 232, 225, 193, 123, 337, 186, 194,
            150, 210, 273, 191, 287, 226, 304, 290, 422, 265, 342, 340, 440,
            316, 439, 401, 390, 490, 408, 490, 420, 520, 480
        ]
        index = pd.DatetimeIndex(start='2016-01-01',
                                 end='2018-12-01',
                                 freq='MS')
        ts_data = pd.Series(data, index)
        ts_data.index.name = 'date_index'
        ts_data.name = 'cars_sold'

        c = 0
        for x in fit_combin:
            try:
                model = ARIMA(ts_data, order=(9, 2, 0))
                result = model.fit(trend=x[0], method=x[1], solver=x[2])
                try:
                    c = c + 1
                    file_name = 'non_seasonal_arima' + str(c) + '.pmml'
                    ArimaToPMML(ts_data, model, result, file_name)
                except:
                    continue
                finally:
                    exported = os.path.isfile(file_name)
                    self.assertEqual(exported, True)
                    if (not exported):
                        break
            except:
                continue
    def test_seasonal_arima(self):

        model_combin = [[(3, 1, 1), (3, 1, 1, 12), 't', True, True, False,
                         True, False, False, True, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', True, True, False,
                         False, False, False, False, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', True, False, True,
                         True, False, False, True, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', True, False, True,
                         False, False, False, False, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', False, True, False,
                         True, False, False, True, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', False, True, False,
                         False, False, False, False, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', False, False, True,
                         True, False, False, True, False],
                        [(3, 1, 1), (3, 1, 1, 12), 't', False, False, True,
                         False, False, False, False, False]]

        # no of cars sold
        data = [
            112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118, 115,
            126, 141, 135, 125, 149, 170, 170, 158, 133, 114, 140, 145, 150,
            178, 163, 172, 178, 199, 199, 184, 162, 146, 166, 171, 180, 193,
            181, 183, 218, 230, 242, 209, 191, 172, 194, 196, 196, 236, 235,
            229, 243, 264, 272, 237, 211, 180, 201, 204, 188, 235, 227, 234,
            264, 302, 293, 259, 229, 203, 229, 242, 233, 267, 269, 270, 315,
            364, 347, 312, 274, 237, 278, 284, 277, 317, 313, 318, 374, 413,
            405, 355, 306, 271, 306, 315, 301, 356, 348, 355, 422, 465, 467,
            404, 347, 305, 336, 340, 318, 362, 348, 363, 435, 491, 505, 404,
            359, 310, 337, 360, 342, 406, 396, 420, 472, 548, 559, 463, 407,
            362, 405, 417, 391, 419, 461, 472, 535, 622, 606, 508, 461, 390,
            432
        ]

        index = pd.DatetimeIndex(start='1949-01-01',
                                 end='1960-12-01',
                                 freq='MS')
        ts_data = pd.Series(data, index)
        ts_data.index.name = 'datetime_index'
        ts_data.name = 'n_passengers'

        c = 0
        for x in model_combin:
            try:
                model = sarimax.SARIMAX(endog=ts_data,
                                        exog=None,
                                        order=x[0],
                                        seasonal_order=x[1],
                                        trend=x[2],
                                        measurement_error=x[3],
                                        time_varying_regression=x[4],
                                        mle_regression=x[5],
                                        simple_differencing=x[6],
                                        enforce_stationarity=x[7],
                                        enforce_invertibility=x[8],
                                        hamilton_representation=x[9],
                                        concentrate_scale=x[10])

                result = model.fit()
                try:
                    c = c + 1
                    file_name = 'seasonal_arima' + str(c) + '.pmml'
                    ArimaToPMML(ts_data, model, result, file_name)
                except:
                    continue
                finally:
                    exported = os.path.isfile(file_name)
                    self.assertEqual(exported, True)
                    if (not exported):
                        break
            except:
                continue