Skip to content

Everything at once, two years ​

match ← All linear growth benchmarks

768 daily rows with automatic changepoints, two seasonal patterns, six events and four regressors.

Input ​

benchmark/inputs/v1/map-mixed-features-automatic-large.json: 768 history rows and 128 forecast rows.

Output ​

Largest difference: 0.018 (0.038% of the input's range).

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2022-02-0746.589346.58520.0041
2022-02-0847.307747.30370.0040
2022-02-0947.541147.53700.0040
2022-02-1047.935747.93170.0040
2022-02-1149.518049.51440.0036
2022-02-1249.594849.59110.0037
2022-02-1350.574850.56910.0057
2022-02-1449.649249.64330.0059
2022-02-1550.378450.37220.0063
2022-02-1649.384149.37950.0046
2022-02-1749.453549.44900.0045
2022-02-1849.299249.29500.0042
2022-02-1948.893748.88950.0042
2022-02-2048.163148.15890.0042
2022-02-2146.170846.16680.0040
2022-02-2248.650048.64410.0060
2022-02-2350.341250.33500.0062
2022-02-2451.068951.06250.0063
2022-02-2549.788449.78380.0045
2022-02-2650.173950.16940.0045
2022-02-2749.927849.92350.0044
2022-02-2849.169149.16490.0042
2022-03-0149.751649.74720.0044
2022-03-0250.850150.84570.0044
2022-03-0353.104753.09900.0057
2022-03-0451.839451.83350.0059
2022-03-0551.957851.95170.0061
2022-03-0649.463149.45850.0046
2022-03-0749.180949.17600.0049
2022-03-0849.931349.92620.0050
2022-03-0951.190551.18540.0051
2022-03-1055.555255.54920.0061
2022-03-1152.145052.14430.00074
2022-03-1255.183555.18850.0051
2022-03-1357.635557.62780.0077
2022-03-1452.385552.37950.0060
2022-03-1551.312251.30770.0045
2022-03-1652.180852.17590.0049
2022-03-1750.883950.87870.0052
2022-03-1850.697750.69260.0052
2022-03-1950.693250.68810.0051
2022-03-2049.406749.40170.0050
2022-03-2150.598050.59150.0065
2022-03-2251.049151.04250.0066
2022-03-2351.198551.19200.0065
2022-03-2449.632849.62820.0047
2022-03-2549.849749.84510.0046
2022-03-2650.094550.08980.0047
2022-03-2749.879949.87500.0049
2022-03-2849.267749.26280.0049
2022-03-2949.948349.94340.0049
2022-03-3050.528150.51760.011
2022-03-3148.807048.78890.018
2022-04-0152.273352.26670.0065
2022-04-0250.208750.20450.0042
2022-04-0349.269849.26560.0043
2022-04-0448.748148.74360.0045
2022-04-0549.344249.33930.0049
2022-04-0650.563950.55870.0052
2022-04-0751.141751.13640.0053
2022-04-0853.706253.69920.0070
2022-04-0953.964853.95800.0068
2022-04-1052.440852.43420.0065
2022-04-1149.756349.75160.0048
2022-04-1250.247150.24240.0048
2022-04-1351.312051.30710.0048
2022-04-1451.648051.64310.0049
2022-04-1551.743051.73800.0050
2022-04-1652.042352.03700.0053
2022-04-1752.858552.85130.0072
2022-04-1851.751751.74440.0073
2022-04-1951.958451.95110.0073
2022-04-2051.706251.70090.0053
2022-04-2152.135452.13010.0053
2022-04-2251.255551.25060.0050
2022-04-2351.279151.27430.0049
2022-04-2450.951550.94650.0050
2022-04-2548.994048.98870.0054
2022-04-2651.722451.71500.0074
2022-04-2753.185053.17740.0076
2022-04-2854.256954.24940.0075
2022-04-2952.843752.83820.0055
2022-04-3053.037253.03180.0053
2022-05-0152.316452.31100.0053
2022-05-0251.716351.71140.0049
2022-05-0352.214852.20980.0050
2022-05-0453.304753.29950.0052
2022-05-0555.608555.60130.0072
2022-05-0656.333856.32640.0074
2022-05-0756.665756.65820.0075
2022-05-0852.920452.91440.0060
2022-05-0952.341552.33560.0060
2022-05-1052.657352.65150.0058
2022-05-1153.715853.71000.0059
2022-05-1255.062355.05680.0055
2022-05-1355.233955.22860.0053
2022-05-1457.437157.43000.0072
2022-05-1556.534256.52690.0074
2022-05-1655.543755.53610.0076
2022-05-1754.025154.01890.0061
2022-05-1855.130455.12400.0064
2022-05-1955.100555.09420.0063
2022-05-2055.109355.10350.0058
2022-05-2153.715553.70960.0059
2022-05-2252.197852.19200.0059
2022-05-2352.918252.91070.0075
2022-05-2453.345553.33790.0076
2022-05-2554.464954.45710.0078
2022-05-2653.545153.53890.0062
2022-05-2753.945853.93960.0062
2022-05-2854.230754.22460.0061
2022-05-2953.556153.55000.0060
2022-05-3053.098453.09250.0059
2022-05-3153.563353.55740.0060
2022-06-0156.242556.23510.0073
2022-06-0256.415056.40780.0072
2022-06-0355.385155.37780.0073
2022-06-0453.558153.55230.0057
2022-06-0552.775452.76940.0060
2022-06-0652.052752.04650.0062
2022-06-0753.109153.10260.0065
2022-06-0854.348554.34200.0066
2022-06-0954.175454.16930.0061
2022-06-1056.082056.07420.0077
2022-06-1157.388157.38060.0076
2022-06-1256.555256.54780.0074
2022-06-1353.834153.82840.0056
2022-06-1454.271654.26570.0058

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows195 µs1.15 ms5.9× faster
Fit14.6 ms38.0 ms2.6× faster
Predict965 µs6.54 ms6.8× faster
Fit and predict11.8 ms44.3 ms3.8× faster
Convert, fit and predict12.1 ms45.5 ms3.8× faster
First forecast in a new process217 ms1.48 s6.8× faster
Save model to JSON37 µs1.75 ms47× faster
Load model from JSON347 µs5.76 ms17× faster
Load and predict in a new process188 ms1.44 s7.6× faster

Settings ​

The case declaration both libraries ran.

json
{
  "kind": "linear-map",
  "comparison": {
    "kind": "equivalent-objective",
    "evidenceId": "linear-output-first-v4"
  },
  "configuration": {
    "effectMap": "omitted",
    "changepoints": {
      "mode": "auto",
      "count": 25,
      "range": 0.8
    },
    "changepointPriorScale": 0.05,
    "seasonalities": [
      {
        "name": "weekly-shared",
        "periodDays": 7,
        "fourierOrder": 2,
        "priorScale": 10
      },
      {
        "name": "monthly-active",
        "periodDays": 30.5,
        "fourierOrder": 3,
        "priorScale": 8,
        "conditionName": "active"
      }
    ],
    "events": [
      {
        "name": "release",
        "date": "2020-04-10",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "release",
        "date": "2020-10-27",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "release",
        "date": "2022-03-11",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "campaign",
        "date": "2020-04-11",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      },
      {
        "name": "campaign",
        "date": "2021-05-15",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      },
      {
        "name": "campaign",
        "date": "2022-03-31",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      }
    ],
    "regressors": [
      {
        "name": "binary-auto",
        "priorScale": 10,
        "standardization": "auto"
      },
      {
        "name": "numeric-auto",
        "priorScale": 10,
        "standardization": "auto"
      },
      {
        "name": "numeric-always",
        "priorScale": 7,
        "standardization": "always"
      },
      {
        "name": "numeric-never",
        "priorScale": 5,
        "standardization": "never"
      }
    ]
  },
  "effectOptimizer": {
    "algorithm": "auto",
    "maxIterations": 10000,
    "fallback": "newton",
    "lbfgs": {
      "historySize": 5,
      "initAlpha": 0.001,
      "tolObj": 1e-12,
      "tolRelObj": 10000,
      "tolGrad": 1e-8,
      "tolRelGrad": 10000000,
      "tolParam": 1e-8
    }
  },
  "pythonOptimizer": {
    "algorithm": "Auto",
    "maxIterations": 10000,
    "newtonFallback": true,
    "sigFigs": 12
  }
}

Inspired by Prophet from Meta. Not affiliated with Meta.