%md #Demand Forecasting The objective of this notebook is to illustrate how we might generate a large number of fine-grained forecasts at the store-item level in an efficient manner leveraging the distributed computational power of Databricks. For this exercise, we will make use of an increasingly popular library for demand forecasting, [FBProphet](https://facebook.github.io/prophet/), which we will load into the notebook session associated with a cluster running Databricks 6.0 or higher:
# load fbprophet library dbutils.library.installPyPI('FBProphet', version='0.5') # find latest version of fbprophet here: https://pypi.org/project/fbprophet/ dbutils.library.installPyPI('holidays','0.9.12') # this line is in response to this issue with fbprophet 0.5: https://github.com/facebook/prophet/issues/1293 dbutils.library.restartPython()
%md ## Examine the Data For our training dataset, we will make use of 5-years of store-item unit sales data for 50 items across 10 different stores. This data set is publicly available as part of a past Kaggle competition and can be downloaded [here](https://www.kaggle.com/c/demand-forecasting-kernels-only/data). Once downloaded, we can uzip the *train.csv.zip* file and upload the decompressed CSV to */FileStore/tables/demand_forecast/train/* using the file import steps documented [here](https://docs.databricks.com/data/tables.html#create-table-ui). Please note when performing the file import, you don't need to select the *Create Table with UI* or the *Create Table in Notebook* options to complete the import process. With the dataset accessible within Databricks, we can now explore it in preparation for modeling:
Examine the Data
For our training dataset, we will make use of 5-years of store-item unit sales data for 50 items across 10 different stores. This data set is publicly available as part of a past Kaggle competition and can be downloaded here.
Once downloaded, we can uzip the train.csv.zip file and upload the decompressed CSV to /FileStore/tables/demand_forecast/train/ using the file import steps documented here. Please note when performing the file import, you don't need to select the Create Table with UI or the Create Table in Notebook options to complete the import process.
With the dataset accessible within Databricks, we can now explore it in preparation for modeling:
Last refresh: Never
from pyspark.sql.types import * # structure of the training data set train_schema = StructType([ StructField('date', DateType()), StructField('store', IntegerType()), StructField('item', IntegerType()), StructField('sales', IntegerType()) ]) # read the training file into a dataframe train = spark.read.csv( '/FileStore/tables/demand_forecast/train/train.csv', header=True, schema=train_schema ) # make the dataframe queriable as a temporary view train.createOrReplaceTempView('train')
%md When performing demand forecasting, we are often interested in general trends and seasonality. Let's start our exploration by examing the annual trend in unit sales:
When performing demand forecasting, we are often interested in general trends and seasonality. Let's start our exploration by examing the annual trend in unit sales:
Last refresh: Never
%md It's very clear from the data that there is a generally upward trend in total unit sales across the stores. If we had better knowledge of the markets served by these stores, we might wish to identify whether there is a maximum growth capacity we'd expect to approach over the life of our forecast. But without that knowledge and by just quickly eyeballing this dataset, it feels safe to assume that if our goal is to make a forecast a few days, months or even a year out, we might expect continued linear growth over that time span. Now let's examine seasonality. If we aggregate the data around the individual months in each year, a distinct yearly seasonal pattern is observed which seems to grow in scale with overall growth in sales:
It's very clear from the data that there is a generally upward trend in total unit sales across the stores. If we had better knowledge of the markets served by these stores, we might wish to identify whether there is a maximum growth capacity we'd expect to approach over the life of our forecast. But without that knowledge and by just quickly eyeballing this dataset, it feels safe to assume that if our goal is to make a forecast a few days, months or even a year out, we might expect continued linear growth over that time span.
Now let's examine seasonality. If we aggregate the data around the individual months in each year, a distinct yearly seasonal pattern is observed which seems to grow in scale with overall growth in sales:
Last refresh: Never
%md Aggregating the data at a weekday level, a pronounced weekly seasonal pattern is observed with a peak on Sunday (weekday 0), a hard drop on Monday (weekday 1) and then a steady pickup over the week heading back to the Sunday high. This pattern seems to be pretty stable across the five years of observations:
Aggregating the data at a weekday level, a pronounced weekly seasonal pattern is observed with a peak on Sunday (weekday 0), a hard drop on Monday (weekday 1) and then a steady pickup over the week heading back to the Sunday high. This pattern seems to be pretty stable across the five years of observations:
Last refresh: Never
%sql SELECT YEAR(date) as year, CAST(DATE_FORMAT(date, 'u') as Integer) % 7 as weekday, --CONCAT(DATE_FORMAT(date, 'u'), '-', DATE_FORMAT(date, 'EEEE')) as weekday, AVG(sales) as sales FROM ( SELECT date, SUM(sales) as sales FROM train GROUP BY date ) x GROUP BY year, CAST(DATE_FORMAT(date, 'u') as Integer) --, CONCAT(DATE_FORMAT(date, 'u'), '-', DATE_FORMAT(date, 'EEEE')) ORDER BY year, weekday;
%md ###Build a Forecast Before attempting to generate forecasts for individual combinations of stores and items, it might be helpful to build a single forecast for no other reason than to orient ourselves to the use of FBProphet. Our first step is to assemble the historical dataset on which we will train the model:
Build a Forecast
Before attempting to generate forecasts for individual combinations of stores and items, it might be helpful to build a single forecast for no other reason than to orient ourselves to the use of FBProphet.
Our first step is to assemble the historical dataset on which we will train the model:
Last refresh: Never
# query to aggregate data to date (ds) level sql_statement = ''' SELECT CAST(date as date) as ds, sales as y FROM train WHERE store=1 AND item=1 ORDER BY ds ''' # assemble dataset in Pandas dataframe history_pd = spark.sql(sql_statement).toPandas() # drop any missing records history_pd = history_pd.dropna()
%md Now, we will import the fbprophet library, but because it can be a bit verbose when in use, we will need to fine-tune the logging settings in our environment:
Now, we will import the fbprophet library, but because it can be a bit verbose when in use, we will need to fine-tune the logging settings in our environment:
Last refresh: Never
from fbprophet import Prophet import logging # disable informational messages from fbprophet logging.getLogger('py4j').setLevel(logging.ERROR)
%md Based on our review of the data, it looks like we should set our overall growth pattern to linear and enable the evaluation of weekly and yearly seasonal patterns. We might also wish to set our seasonality mode to multiplicative as the seasonal pattern seems to grow with overall growth in sales:
Based on our review of the data, it looks like we should set our overall growth pattern to linear and enable the evaluation of weekly and yearly seasonal patterns. We might also wish to set our seasonality mode to multiplicative as the seasonal pattern seems to grow with overall growth in sales:
Last refresh: Never
# set model parameters model = Prophet( interval_width=0.95, growth='linear', daily_seasonality=False, weekly_seasonality=True, yearly_seasonality=True, seasonality_mode='multiplicative' ) # fit the model to historical data model.fit(history_pd)
# define a dataset including both historical dates & 90-days beyond the last available date future_pd = model.make_future_dataframe( periods=90, freq='d', include_history=True ) # predict over the dataset forecast_pd = model.predict(future_pd) display(forecast_pd)
2013-01-01T00:00:00.000+0000 | 15.603139715768306 | 2.085387161289203 | 18.273892927661862 | 15.603139715768306 | 15.603139715768306 | -0.356023317327815 | -0.356023317327815 | -0.356023317327815 | -0.08884753072620905 | -0.08884753072620905 | -0.08884753072620905 | -0.2671757866016059 | -0.2671757866016059 | -0.2671757866016059 | 0 | 0 | 0 | 10.048058153431093 |
2013-01-02T00:00:00.000+0000 | 15.608836236487353 | 2.2230315759141375 | 18.749048837890946 | 15.608836236487353 | 15.608836236487353 | -0.3256699666337138 | -0.3256699666337138 | -0.3256699666337138 | -0.05903196920294723 | -0.05903196920294723 | -0.05903196920294723 | -0.26663799743076655 | -0.26663799743076655 | -0.26663799743076655 | 0 | 0 | 0 | 10.525507060159415 |
2013-01-03T00:00:00.000+0000 | 15.614532757206398 | 2.3667411783747325 | 18.72099338063095 | 15.614532757206398 | 15.614532757206398 | -0.29230176164020893 | -0.29230176164020893 | -0.29230176164020893 | -0.025389716700157106 | -0.025389716700157106 | -0.025389716700157106 | -0.26691204494005183 | -0.26691204494005183 | -0.26691204494005183 | 0 | 0 | 0 | 11.050377325086219 |
2013-01-04T00:00:00.000+0000 | 15.620229277925446 | 3.670415348255938 | 20.695542146647234 | 15.620229277925446 | 15.620229277925446 | -0.21629242102190085 | -0.21629242102190085 | -0.21629242102190085 | 0.051666147212591815 | 0.051666147212591815 | 0.051666147212591815 | -0.26795856823449266 | -0.26795856823449266 | -0.26795856823449266 | 0 | 0 | 0 | 12.241692070485774 |
2013-01-05T00:00:00.000+0000 | 15.625925798644491 | 4.7541852072535 | 23.41394269871954 | 15.625925798644491 | 15.625925798644491 | -0.11826586296454089 | -0.11826586296454089 | -0.11826586296454089 | 0.1514484894828309 | 0.1514484894828309 | 0.1514484894828309 | -0.2697143524473718 | -0.2697143524473718 | -0.2697143524473718 | 0 | 0 | 0 | 13.777912199447918 |
2013-01-06T00:00:00.000+0000 | 15.631622319363538 | 4.958893916273169 | 22.20727635865601 | 15.631622319363538 | 15.631622319363538 | -0.08027841922546172 | -0.08027841922546172 | -0.08027841922546172 | 0.19181657092891044 | 0.19181657092891044 | 0.19181657092891044 | -0.27209499015437216 | -0.27209499015437216 | -0.27209499015437216 | 0 | 0 | 0 | 14.376740389635588 |
2013-01-07T00:00:00.000+0000 | 15.637318840082584 | -0.2241130770412625 | 16.82252260291041 | 15.637318840082584 | 15.637318840082584 | -0.4966600410582783 | -0.4966600410582783 | -0.4966600410582783 | -0.2216619909945789 | -0.2216619909945789 | -0.2216619909945789 | -0.27499805006369943 | -0.27499805006369943 | -0.27499805006369943 | 0 | 0 | 0 | 7.870887422925779 |
2013-01-08T00:00:00.000+0000 | 15.643015360801632 | 1.2830289483808546 | 18.877347024828413 | 15.643015360801632 | 15.643015360801632 | -0.3671541874581153 | -0.3671541874581153 | -0.3671541874581153 | -0.08884753072617603 | -0.08884753072617603 | -0.08884753072617603 | -0.2783066567319393 | -0.2783066567319393 | -0.2783066567319393 | 0 | 0 | 0 | 9.899616766611693 |
2013-01-09T00:00:00.000+0000 | 15.64871188152068 | 1.1620372315887662 | 19.098682690391993 | 15.64871188152068 | 15.64871188152068 | -0.3409253446436948 | -0.3409253446436948 | -0.3409253446436948 | -0.05903196920326247 | -0.05903196920326247 | -0.05903196920326247 | -0.2818933754404323 | -0.2818933754404323 | -0.2818933754404323 | 0 | 0 | 0 | 10.313669390083358 |
2013-01-10T00:00:00.000+0000 | 15.654408402239724 | 2.3204207182651704 | 19.059403068538927 | 15.654408402239724 | 15.654408402239724 | -0.3110140064594736 | -0.3110140064594736 | -0.3110140064594736 | -0.02538971670085523 | -0.02538971670085523 | -0.02538971670085523 | -0.2856242897586183 | -0.2856242897586183 | -0.2856242897586183 | 0 | 0 | 0 | 10.785668126306302 |
2013-01-11T00:00:00.000+0000 | 15.660104922958773 | 2.622295030658818 | 20.442532535473433 | 15.660104922958773 | 15.660104922958773 | -0.23769700865302526 | -0.23769700865302526 | -0.23769700865302526 | 0.05166614721231678 | 0.05166614721231678 | 0.05166614721231678 | -0.28936315586534206 | -0.28936315586534206 | -0.28936315586534206 | 0 | 0 | 0 | 11.937744827578959 |
2013-01-12T00:00:00.000+0000 | 15.665801443677818 | 5.025531736431303 | 21.521271149792696 | 15.665801443677818 | 15.665801443677818 | -0.14152702797717923 | -0.14152702797717923 | -0.14152702797717923 | 0.1514484894826124 | 0.1514484894826124 | 0.1514484894826124 | -0.2929755174597916 | -0.2929755174597916 | -0.2929755174597916 | 0 | 0 | 0 | 13.448667124473493 |
2013-01-13T00:00:00.000+0000 | 15.671497964396867 | 5.593470449655708 | 22.810651041590152 | 15.671497964396867 | 15.671497964396867 | -0.10451609710904568 | -0.10451609710904568 | -0.10451609710904568 | 0.19181657092928034 | 0.19181657092928034 | 0.19181657092928034 | -0.29633266803832603 | -0.29633266803832603 | -0.29633266803832603 | 0 | 0 | 0 | 14.033574161305753 |
2013-01-14T00:00:00.000+0000 | 15.677194485115912 | -0.9169195736361728 | 15.55661271842918 | 15.677194485115912 | 15.677194485115912 | -0.5209773443231122 | -0.5209773443231122 | -0.5209773443231122 | -0.22166199099439837 | -0.22166199099439837 | -0.22166199099439837 | -0.29931535332871384 | -0.29931535332871384 | -0.29931535332871384 | 0 | 0 | 0 | 7.509731335823284 |
2013-01-15T00:00:00.000+0000 | 15.682891005834959 | 1.168700821693326 | 17.22630817467275 | 15.682891005834959 | 15.682891005834959 | -0.39066464628314507 | -0.39066464628314507 | -0.39066464628314507 | -0.08884753072614303 | -0.08884753072614303 | -0.08884753072614303 | -0.301817115557002 | -0.301817115557002 | -0.301817115557002 | 0 | 0 | 0 | 9.556139938343327 |
2013-01-16T00:00:00.000+0000 | 15.688587526554008 | 1.0368695023664503 | 18.27337914966954 | 15.688587526554008 | 15.688587526554008 | -0.3627791619002906 | -0.3627791619002906 | -0.3627791619002906 | -0.059031969203577714 | -0.059031969203577714 | -0.059031969203577714 | -0.30374719269671285 | -0.30374719269671285 | -0.30374719269671285 | 0 | 0 | 0 | 9.997094892271392 |
2013-01-17T00:00:00.000+0000 | 15.694284047273053 | 2.1433343151248816 | 19.456224222265362 | 15.694284047273053 | 15.694284047273053 | -0.33042261627094044 | -0.33042261627094044 | -0.33042261627094044 | -0.025389716700458746 | -0.025389716700458746 | -0.025389716700458746 | -0.3050328995704817 | -0.3050328995704817 | -0.3050328995704817 | 0 | 0 | 0 | 10.508537651873805 |
2013-01-18T00:00:00.000+0000 | 15.6999805679921 | 2.584981842221033 | 20.478811197566955 | 15.6999805679921 | 15.6999805679921 | -0.2539552860204286 | -0.2539552860204286 | -0.2539552860204286 | 0.05166614721221609 | 0.05166614721221609 | 0.05166614721221609 | -0.3056214332326447 | -0.3056214332326447 | -0.3056214332326447 | 0 | 0 | 0 | 11.712887512332495 |
2013-01-19T00:00:00.000+0000 | 15.705677088711145 | 4.458896701675468 | 21.892591122587906 | 15.705677088711145 | 15.705677088711145 | -0.15403257252457903 | -0.15403257252457903 | -0.15403257252457903 | 0.15144848948259937 | 0.15144848948259937 | 0.15144848948259937 | -0.3054810620071784 | -0.3054810620071784 | -0.3054810620071784 | 0 | 0 | 0 | 13.286491243496625 |
2013-01-20T00:00:00.000+0000 | 15.711373609430193 | 5.103793740998615 | 22.85119784847798 | 15.711373609430193 | 15.711373609430193 | -0.11278510447241799 | -0.11278510447241799 | -0.11278510447241799 | 0.1918165709289561 | 0.1918165709289561 | 0.1918165709289561 | -0.30460167540137406 | -0.30460167540137406 | -0.30460167540137406 | 0 | 0 | 0 | 13.939364695485418 |
2013-01-21T00:00:00.000+0000 | 15.71707013014924 | -0.9296792848083225 | 16.767125763964742 | 15.71707013014924 | 15.71707013014924 | -0.5246566813502829 | -0.5246566813502829 | -0.5246566813502829 | -0.22166199099444836 | -0.22166199099444836 | -0.22166199099444836 | -0.30299469035583454 | -0.30299469035583454 | -0.30299469035583454 | 0 | 0 | 0 | 7.471004275115481 |
2013-01-22T00:00:00.000+0000 | 15.722766650868286 | 0.781948566256983 | 17.93392212869392 | 15.722766650868286 | 15.722766650868286 | -0.3895398581385614 | -0.3895398581385614 | -0.3895398581385614 | -0.08884753072581252 | -0.08884753072581252 | -0.08884753072581252 | -0.3006923274127489 | -0.3006923274127489 | -0.3006923274127489 | 0 | 0 | 0 | 9.59812236014335 |
2013-01-23T00:00:00.000+0000 | 15.728463171587334 | 1.8532158682247377 | 18.596601436632735 | 15.728463171587334 | 15.728463171587334 | -0.35677825708802763 | -0.35677825708802763 | -0.35677825708802763 | -0.059031969203084345 | -0.059031969203084345 | -0.059031969203084345 | -0.2977462878849433 | -0.2977462878849433 | -0.2977462878849433 | 0 | 0 | 0 | 10.116889494555174 |
2013-01-24T00:00:00.000+0000 | 15.73415969230638 | 1.5965693398466247 | 19.344131412759666 | 15.73415969230638 | 15.73415969230638 | -0.31961559620595204 | -0.31961559620595204 | -0.31961559620595204 | -0.025389716700465095 | -0.025389716700465095 | -0.025389716700465095 | -0.29422587950548695 | -0.29422587950548695 | -0.29422587950548695 | 0 | 0 | 0 | 10.705276861450217 |
2013-01-25T00:00:00.000+0000 | 15.739856213025426 | 3.455908707239105 | 20.147039320123113 | 15.739856213025426 | 15.739856213025426 | -0.23854950567553268 | -0.23854950567553268 | -0.23854950567553268 | 0.051666147212458435 | 0.051666147212458435 | 0.051666147212458435 | -0.2902156528879911 | -0.2902156528879911 | -0.2902156528879911 | 0 | 0 | 0 | 11.98512129400425 |
2013-01-26T00:00:00.000+0000 | 15.745552733744471 | 4.92167345076873 | 21.76101645320136 | 15.745552733744471 | 15.745552733744471 | -0.13436413455088358 | -0.13436413455088358 | -0.13436413455088358 | 0.15144848948258638 | 0.15144848948258638 | 0.15144848948258638 | -0.28581262403346996 | -0.28581262403346996 | -0.28581262403346996 | 0 | 0 | 0 | 13.629915167649596 |
2013-01-27T00:00:00.000+0000 | 15.75124925446352 | 5.566761204486785 | 22.703162223893642 | 15.75124925446352 | 15.75124925446352 | -0.0893065978148497 | -0.0893065978148497 | -0.0893065978148497 | 0.19181657092898458 | 0.19181657092898458 | 0.19181657092898458 | -0.28112316874383425 | -0.28112316874383425 | -0.28112316874383425 | 0 | 0 | 0 | 14.344558772213695 |
2013-01-28T00:00:00.000+0000 | 15.756945775182569 | 0.24755564434894925 | 16.845085978169845 | 15.756945775182569 | 15.756945775182569 | -0.49792167386713804 | -0.49792167386713804 | -0.49792167386713804 | -0.2216619909942679 | -0.2216619909942679 | -0.2216619909942679 | -0.2762596828728701 | -0.2762596828728701 | -0.2762596828728701 | 0 | 0 | 0 | 7.911220959769935 |
2013-01-29T00:00:00.000+0000 | 15.762642295901614 | 1.4408200205016697 | 18.61530149628682 | 15.762642295901614 | 15.762642295901614 | -0.3601846383945885 | -0.3601846383945885 | -0.3601846383945885 | -0.08884753072605686 | -0.08884753072605686 | -0.08884753072605686 | -0.27133710766853164 | -0.27133710766853164 | -0.27133710766853164 | 0 | 0 | 0 | 10.085180680409046 |
2013-01-30T00:00:00.000+0000 | 15.76833881662066 | 1.7350851689803108 | 19.90271500330975 | 15.76833881662066 | 15.76833881662066 | -0.3255013911221756 | -0.3255013911221756 | -0.3255013911221756 | -0.05903196920339958 | -0.05903196920339958 | -0.05903196920339958 | -0.266469421918776 | -0.266469421918776 | -0.266469421918776 | 0 | 0 | 0 | 10.635722596124836 |
2013-01-31T00:00:00.000+0000 | 15.774035337339706 | 2.4737241169696307 | 19.26797824230749 | 15.774035337339706 | 15.774035337339706 | -0.2871559188716555 | -0.2871559188716555 | -0.2871559188716555 | -0.025389716700068614 | -0.025389716700068614 | -0.025389716700068614 | -0.26176620217158686 | -0.26176620217158686 | -0.26176620217158686 | 0 | 0 | 0 | 11.244427725731958 |
2013-02-01T00:00:00.000+0000 | 15.779731858058755 | 4.115864412142008 | 21.842099605905997 | 15.779731858058755 | 15.779731858058755 | -0.20566320179520312 | -0.20566320179520312 | -0.20566320179520312 | 0.051666147212700776 | 0.051666147212700776 | 0.051666147212700776 | -0.2573293490079039 | -0.2573293490079039 | -0.2573293490079039 | 0 | 0 | 0 | 12.534421680660621 |
2013-02-02T00:00:00.000+0000 | 15.7854283787778 | 5.502471388929614 | 22.61893268377232 | 15.7854283787778 | 15.7854283787778 | -0.10180158184612709 | -0.10180158184612709 | -0.10180158184612709 | 0.15144848948295836 | 0.15144848948295836 | 0.15144848948295836 | -0.25325007132908545 | -0.25325007132908545 | -0.25325007132908545 | 0 | 0 | 0 | 14.178446799699474 |
2013-02-03T00:00:00.000+0000 | 15.791124899496847 | 6.757829332312258 | 23.770269712004833 | 15.791124899496847 | 15.791124899496847 | -0.057789641153088545 | -0.057789641153088545 | -0.057789641153088545 | 0.19181657092917812 | 0.19181657092917812 | 0.19181657092917812 | -0.24960621208226666 | -0.24960621208226666 | -0.24960621208226666 | 0 | 0 | 0 | 14.878561458151323 |
2013-02-04T00:00:00.000+0000 | 15.796821420215895 | -0.38341748790283187 | 16.880307820943315 | 15.796821420215895 | 15.796821420215895 | -0.4681219790543056 | -0.4681219790543056 | -0.4681219790543056 | -0.2216619909943851 | -0.2216619909943851 | -0.2216619909943851 | -0.24645998805992045 | -0.24645998805992045 | -0.24645998805992045 | 0 | 0 | 0 | 8.401982114216983 |
2013-02-05T00:00:00.000+0000 | 15.80251794093494 | 2.6643862439267725 | 19.13083345443433 | 15.80251794093494 | 15.80251794093494 | -0.33270373443041257 | -0.33270373443041257 | -0.33270373443041257 | -0.08884753072602387 | -0.08884753072602387 | -0.08884753072602387 | -0.24385620370438874 | -0.24385620370438874 | -0.24385620370438874 | 0 | 0 | 0 | 10.544961208582292 |
2013-02-06T00:00:00.000+0000 | 15.808214461653987 | 2.4290594201183104 | 19.46369351331568 | 15.808214461653987 | 15.808214461653987 | -0.3008529538125736 | -0.3008529538125736 | -0.3008529538125736 | -0.05903196920324601 | -0.05903196920324601 | -0.05903196920324601 | -0.2418209846093276 | -0.2418209846093276 | -0.2418209846093276 | 0 | 0 | 0 | 11.052266446362742 |
2013-02-07T00:00:00.000+0000 | 15.813910982373033 | 4.11686778077407 | 19.722395815247218 | 15.813910982373033 | 15.813910982373033 | -0.26575077775851114 | -0.26575077775851114 | -0.26575077775851114 | -0.025389716700766736 | -0.025389716700766736 | -0.025389716700766736 | -0.24036106105774438 | -0.24036106105774438 | -0.24036106105774438 | 0 | 0 | 0 | 11.61135183940354 |
2013-02-08T00:00:00.000+0000 | 15.819607503092081 | 5.0725986136647 | 21.499618322195918 | 15.819607503092081 | 15.819607503092081 | -0.18779746870803457 | -0.18779746870803457 | -0.18779746870803457 | 0.05166614721208272 | 0.05166614721208272 | 0.05166614721208272 | -0.2394636159201173 | -0.2394636159201173 | -0.2394636159201173 | 0 | 0 | 0 | 12.848725258056756 |
2013-02-09T00:00:00.000+0000 | 15.825304023811126 | 5.753688954781704 | 22.43965317543095 | 15.825304023811126 | 15.825304023811126 | -0.08764820553609508 | -0.08764820553609508 | -0.08764820553609508 | 0.15144848948235484 | 0.15144848948235484 | 0.15144848948235484 | -0.2390966950184499 | -0.2390966950184499 | -0.2390966950184499 | 0 | 0 | 0 | 14.438244524060936 |
2013-02-10T00:00:00.000+0000 | 15.831000544530175 | 5.546675054395409 | 23.864594563023594 | 15.831000544530175 | 15.831000544530175 | -0.04739359117484124 | -0.04739359117484124 | -0.04739359117484124 | 0.19181657092937165 | 0.19181657092937165 | 0.19181657092937165 | -0.2392101621042129 | -0.2392101621042129 | -0.2392101621042129 | 0 | 0 | 0 | 15.080712576834024 |
2013-02-11T00:00:00.000+0000 | 15.836697065249222 | -0.3842589222921448 | 17.272440005958316 | 15.836697065249222 | 15.836697065249222 | -0.46139915634646367 | -0.46139915634646367 | -0.46139915634646367 | -0.22166199099450232 | -0.22166199099450232 | -0.22166199099450232 | -0.23973716535196135 | -0.23973716535196135 | -0.23973716535196135 | 0 | 0 | 0 | 8.529658400028714 |
2013-02-12T00:00:00.000+0000 | 15.842393585968267 | 2.3892570455153095 | 18.94141674616899 | 15.842393585968267 | 15.842393585968267 | -0.3294435988836599 | -0.3294435988836599 | -0.3294435988836599 | -0.08884753072599086 | -0.08884753072599086 | -0.08884753072599086 | -0.2405960681576691 | -0.2405960681576691 | -0.2405960681576691 | 0 | 0 | 0 | 10.62321842807547 |
2013-02-13T00:00:00.000+0000 | 15.848090106687316 | 2.5342384912906986 | 19.591343557675508 | 15.848090106687316 | 15.848090106687316 | -0.3007247536444713 | -0.3007247536444713 | -0.3007247536444713 | -0.059031969203092435 | -0.059031969203092435 | -0.059031969203092435 | -0.24169278444137887 | -0.24169278444137887 | -0.24169278444137887 | 0 | 0 | 0 | 11.08217711361839 |
2013-02-14T00:00:00.000+0000 | 15.853786627406361 | 3.2915038436622184 | 19.892207333195348 | 15.853786627406361 | 15.853786627406361 | -0.2683131646241628 | -0.2683131646241628 | -0.2683131646241628 | -0.025389716700298017 | -0.025389716700298017 | -0.025389716700298017 | -0.2429234479238648 | -0.2429234479238648 | -0.2429234479238648 | 0 | 0 | 0 | 11.600006966130728 |
2013-02-15T00:00:00.000+0000 | 15.859483148125408 | 4.012113882467118 | 21.653477849352058 | 15.859483148125408 | 15.859483148125408 | -0.19251118904858494 | -0.19251118904858494 | -0.19251118904858494 | 0.05166614721284244 | 0.05166614721284244 | 0.05166614721284244 | -0.24417733626142737 | -0.24417733626142737 | -0.24417733626142737 | 0 | 0 | 0 | 12.806355189583792 |
2013-02-16T00:00:00.000+0000 | 15.865179668844457 | 5.929808883630637 | 22.938299377924547 | 15.865179668844457 | 15.865179668844457 | -0.09389147521449032 | -0.09389147521449032 | -0.09389147521449032 | 0.15144848948272682 | 0.15144848948272682 | 0.15144848948272682 | -0.24533996469721714 | -0.24533996469721714 | -0.24533996469721714 | 0 | 0 | 0 | 14.375574545193711 |
2013-02-17T00:00:00.000+0000 | 15.870876189563502 | 7.104328258421074 | 23.765352876628874 | 15.870876189563502 | 15.870876189563502 | -0.05447968924031418 | -0.05447968924031418 | -0.05447968924031418 | 0.19181657092922377 | 0.19181657092922377 | 0.19181657092922377 | -0.24629626016953796 | -0.24629626016953796 | -0.24629626016953796 | 0 | 0 | 0 | 15.00623578678458 |
2013-02-18T00:00:00.000+0000 | 15.876572710282549 | -0.16792196056383019 | 17.399588584598032 | 15.876572710282549 | 15.876572710282549 | -0.46859571667783595 | -0.46859571667783595 | -0.46859571667783595 | -0.22166199099461956 | -0.22166199099461956 | -0.22166199099461956 | -0.24693372568321645 | -0.24693372568321645 | -0.24693372568321645 | 0 | 0 | 0 | 8.436878742719925 |
2013-02-19T00:00:00.000+0000 | 15.882269231001594 | 1.7844789256802338 | 18.83029047475347 | 15.882269231001594 | 15.882269231001594 | -0.3359930369212351 | -0.3359930369212351 | -0.3359930369212351 | -0.08884753072593776 | -0.08884753072593776 | -0.08884753072593776 | -0.24714550619529735 | -0.24714550619529735 | -0.24714550619529735 | 0 | 0 | 0 | 10.545937358876678 |
2013-02-20T00:00:00.000+0000 | 15.887965751720643 | 3.0647429364405046 | 19.551113539540193 | 15.887965751720643 | 15.887965751720643 | -0.30586524042350594 | -0.30586524042350594 | -0.30586524042350594 | -0.05903196920306788 | -0.05903196920306788 | -0.05903196920306788 | -0.24683327122043805 | -0.24683327122043805 | -0.24683327122043805 | 0 | 0 | 0 | 11.02838928723018 |
2013-02-21T00:00:00.000+0000 | 15.893662272439688 | 3.1275264441030868 | 20.127704485278436 | 15.893662272439688 | 15.893662272439688 | -0.27129955237496595 | -0.27129955237496595 | -0.27129955237496595 | -0.025389716699901536 | -0.025389716699901536 | -0.025389716699901536 | -0.24590983567506441 | -0.24590983567506441 | -0.24590983567506441 | 0 | 0 | 0 | 11.581718812327916 |
2013-02-22T00:00:00.000+0000 | 15.899358793158736 | 4.634748779438026 | 21.378987310355438 | 15.899358793158736 | 15.899358793158736 | -0.1926353017325368 | -0.1926353017325368 | -0.1926353017325368 | 0.05166614721256741 | 0.05166614721256741 | 0.05166614721256741 | -0.24430144894510422 | -0.24430144894510422 | -0.24430144894510422 | 0 | 0 | 0 | 12.83658101468474 |
2013-02-23T00:00:00.000+0000 | 15.905055313877783 | 5.749529231574477 | 22.672741487890395 | 15.905055313877783 | 15.905055313877783 | -0.0905012030227745 | -0.0905012030227745 | -0.0905012030227745 | 0.1514484894827138 | 0.1514484894827138 | 0.1514484894827138 | -0.2419496925054883 | -0.2419496925054883 | -0.2419496925054883 | 0 | 0 | 0 | 14.465628673828071 |
2013-02-24T00:00:00.000+0000 | 15.910751834596828 | 7.213813914425146 | 23.394241820084613 | 15.910751834596828 | 15.910751834596828 | -0.046996367393893554 | -0.046996367393893554 | -0.046996367393893554 | 0.19181657092959364 | 0.19181657092959364 | 0.19181657092959364 | -0.2388129383234872 | -0.2388129383234872 | -0.2388129383234872 | 0 | 0 | 0 | 15.16300429586505 |
2013-02-25T00:00:00.000+0000 | 15.916448355315877 | -0.5232154042922903 | 17.540137309030396 | 15.916448355315877 | 15.916448355315877 | -0.4565293243713464 | -0.4565293243713464 | -0.4565293243713464 | -0.2216619909944391 | -0.2216619909944391 | -0.2216619909944391 | -0.23486733337690735 | -0.23486733337690735 | -0.23486733337690735 | 0 | 0 | 0 | 8.650122941272093 |
2013-02-26T00:00:00.000+0000 | 15.922144876034922 | 3.1131751972194297 | 19.336037718131564 | 15.922144876034922 | 15.922144876034922 | -0.3189548202497031 | -0.3189548202497031 | -0.3189548202497031 | -0.08884753072620223 | -0.08884753072620223 | -0.08884753072620223 | -0.2301072895235009 | -0.2301072895235009 | -0.2301072895235009 | 0 | 0 | 0 | 10.843700019109471 |
2013-02-27T00:00:00.000+0000 | 15.92784139675397 | 3.0556892480665905 | 19.94001567516917 | 15.92784139675397 | 15.92784139675397 | -0.283577441460522 | -0.283577441460522 | -0.283577441460522 | -0.05903196920351214 | -0.05903196920351214 | -0.05903196920351214 | -0.22454547225700985 | -0.22454547225700985 | -0.22454547225700985 | 0 | 0 | 0 | 11.411064885473492 |
2013-02-28T00:00:00.000+0000 | 15.933537917473018 | 3.8177384240076875 | 20.989564070884246 | 15.933537917473018 | 15.933537917473018 | -0.24360201286548663 | -0.24360201286548663 | -0.24360201286548663 | -0.025389716700599658 | -0.025389716700599658 | -0.025389716700599658 | -0.218212296164887 | -0.218212296164887 | -0.218212296164887 | 0 | 0 | 0 | 12.052096008708036 |
2013-03-01T00:00:00.000+0000 | 15.939234439025956 | 4.786542605008825 | 22.116688913074256 | 15.939234439025956 | 15.939234439025956 | -0.15948880153657358 | -0.15948880153657358 | -0.15948880153657358 | 0.05166614721280975 | 0.05166614721280975 | 0.05166614721280975 | -0.21115494874938334 | -0.21115494874938334 | -0.21115494874938334 | 0 | 0 | 0 | 13.397105040935227 |
2013-03-02T00:00:00.000+0000 | 15.944930960578896 | 6.721230907524406 | 23.535768971332853 | 15.944930960578896 | 15.944930960578896 | -0.051987487815955725 | -0.051987487815955725 | -0.051987487815955725 | 0.15144848948249529 | 0.15144848948249529 | 0.15144848948249529 | -0.203435977298451 | -0.203435977298451 | -0.203435977298451 | 0 | 0 | 0 | 15.115994056539545 |
2013-03-03T00:00:00.000+0000 | 15.950627482131836 | 7.925802564374922 | 24.23686538372871 | 15.950627482131836 | 15.950627482131836 | -0.0033149143993382035 | -0.0033149143993382035 | -0.0033149143993382035 | 0.19181657092944576 | 0.19181657092944576 | 0.19181657092944576 | -0.19513148532878397 | -0.19513148532878397 | -0.19513148532878397 | 0 | 0 | 0 | 15.897752517412838 |
2013-03-04T00:00:00.000+0000 | 15.956324003684774 | 1.3190070024697613 | 17.63070813051863 | 15.956324003684774 | 15.956324003684774 | -0.4079909864440093 | -0.4079909864440093 | -0.4079909864440093 | -0.22166199099448908 | -0.22166199099448908 | -0.22166199099448908 | -0.1863289954495202 | -0.1863289954495202 | -0.1863289954495202 | 0 | 0 | 0 | 9.4462876334012 |
2013-03-05T00:00:00.000+0000 | 15.962020525237714 | 2.8827457764167495 | 20.294899504518316 | 15.962020525237714 | 15.962020525237714 | -0.26597257475708436 | -0.26597257475708436 | -0.26597257475708436 | -0.08884753072587175 | -0.08884753072587175 | -0.08884753072587175 | -0.1771250440312126 | -0.1771250440312126 | -0.1771250440312126 | 0 | 0 | 0 | 11.716560827814812 |
2013-03-06T00:00:00.000+0000 | 15.967717046790654 | 3.738962030057559 | 20.65979593278844 | 15.967717046790654 | 15.967717046790654 | -0.2266545487968697 | -0.2266545487968697 | -0.2266545487968697 | -0.05903196920335857 | -0.05903196920335857 | -0.05903196920335857 | -0.16762257959351112 | -0.16762257959351112 | -0.16762257959351112 | 0 | 0 | 0 | 12.348561344234234 |
2013-03-07T00:00:00.000+0000 | 15.973413568343592 | 3.7640670797574014 | 21.656253660034974 | 15.973413568343592 | 15.973413568343592 | -0.18331795788370597 | -0.18331795788370597 | -0.18331795788370597 | -0.02538971670013094 | -0.02538971670013094 | -0.02538971670013094 | -0.15792824118357504 | -0.15792824118357504 | -0.15792824118357504 | 0 | 0 | 0 | 13.045200012562963 |
2013-03-08T00:00:00.000+0000 | 15.979110089896531 | 5.376762211975108 | 23.02923057490391 | 15.979110089896531 | 15.979110089896531 | -0.09648344790146991 | -0.09648344790146991 | -0.09648344790146991 | 0.05166614721219169 | 0.05166614721219169 | 0.05166614721219169 | -0.1481495951136616 | -0.1481495951136616 | -0.1481495951136616 | 0 | 0 | 0 | 14.437390454026147 |
2013-03-09T00:00:00.000+0000 | 15.984806611449473 | 8.194245216930046 | 24.997366231318143 | 15.984806611449473 | 15.984806611449473 | 0.013056081251544907 | 0.013056081251544907 | 0.013056081251544907 | 0.15144848948227674 | 0.15144848948227674 | 0.15144848948227674 | -0.13839240823073184 | -0.13839240823073184 | -0.13839240823073184 | 0 | 0 | 0 | 16.193505545358793 |
2013-03-10T00:00:00.000+0000 | 15.990503133002413 | 8.661108798303141 | 25.18067560236102 | 15.990503133002413 | 15.990503133002413 | 0.06305853748499557 | 0.06305853748499557 | 0.06305853748499557 | 0.19181657092912155 | 0.19181657092912155 | 0.19181657092912155 | -0.12875803344412598 | -0.12875803344412598 | -0.12875803344412598 | 0 | 0 | 0 | 16.998840874218782 |
2013-03-11T00:00:00.000+0000 | 15.996199654555351 | 2.2892145466766745 | 19.645583055293287 | 15.996199654555351 | 15.996199654555351 | -0.34100296963863064 | -0.34100296963863064 | -0.34100296963863064 | -0.2216619909946735 | -0.2216619909946735 | -0.2216619909946735 | -0.1193409786439571 | -0.1193409786439571 | -0.1193409786439571 | 0 | 0 | 0 | 10.54144806941954 |
2013-03-12T00:00:00.000+0000 | 16.00189617610829 | 4.717959205921108 | 21.627038713709013 | 16.00189617610829 | 16.00189617610829 | -0.1990742542931827 | -0.1990742542931827 | -0.1990742542931827 | -0.08884753072583874 | -0.08884753072583874 | -0.08884753072583874 | -0.11022672356734396 | -0.11022672356734396 | -0.11022672356734396 | 0 | 0 | 0 | 12.816330627572599 |
2013-03-13T00:00:00.000+0000 | 16.00759269766123 | 5.432451648628197 | 22.204676701113772 | 16.00759269766123 | 16.00759269766123 | -0.16052181003844454 | -0.16052181003844454 | -0.16052181003844454 | -0.059031969203334006 | -0.059031969203334006 | -0.059031969203334006 | -0.10148984083511053 | -0.10148984083511053 | -0.10148984083511053 | 0 | 0 | 0 | 13.438024943474462 |
2013-03-14T00:00:00.000+0000 | 16.01328921921417 | 5.3837670710136205 | 22.648677507561754 | 16.01328921921417 | 16.01328921921417 | -0.1185821842560364 | -0.1185821842560364 | -0.1185821842560364 | -0.025389716700281756 | -0.025389716700281756 | -0.025389716700281756 | -0.09319246755575462 | -0.09319246755575462 | -0.09319246755575462 | 0 | 0 | 0 | 14.114398406476113 |
2013-03-15T00:00:00.000+0000 | 16.018985740767107 | 6.987166946432663 | 24.830451457486333 | 16.018985740767107 | 16.018985740767107 | -0.03371701567577938 | -0.03371701567577938 | -0.03371701567577938 | 0.051666147212951416 | 0.051666147212951416 | 0.051666147212951416 | -0.0853831628887308 | -0.0853831628887308 | -0.0853831628887308 | 0 | 0 | 0 | 15.478873347435577 |
2013-03-16T00:00:00.000+0000 | 16.02468226232005 | 8.900058503741286 | 25.24436658159975 | 16.02468226232005 | 16.02468226232005 | 0.07335231437138579 | 0.07335231437138579 | 0.07335231437138579 | 0.15144848948264872 | 0.15144848948264872 | 0.15144848948264872 | -0.07809617511126293 | -0.07809617511126293 | -0.07809617511126293 | 0 | 0 | 0 | 17.200129793327317 |
2013-03-17T00:00:00.000+0000 | 16.030378783872987 | 8.977889696214106 | 26.706691839737378 | 16.030378783872987 | 16.030378783872987 | 0.12046544152199384 | 0.12046544152199384 | 0.12046544152199384 | 0.19181657092915 | 0.19181657092915 | 0.19181657092915 | -0.07135112940715617 | -0.07135112940715617 | -0.07135112940715617 | 0 | 0 | 0 | 17.96148544183705 |
2013-03-18T00:00:00.000+0000 | 16.03607530542593 | 3.6369595487880453 | 20.040956753142137 | 16.03607530542593 | 16.03607530542593 | -0.2868151261504682 | -0.2868151261504682 | -0.2868151261504682 | -0.22166199099449302 | -0.22166199099449302 | -0.22166199099449302 | -0.0651531351559752 | -0.0651531351559752 | -0.0651531351559752 | 0 | 0 | 0 | 11.436686343741782 |
2013-03-19T00:00:00.000+0000 | 16.041771826978866 | 4.73170539616972 | 22.060049593867088 | 16.041771826978866 | 16.041771826978866 | -0.1483408300439927 | -0.1483408300439927 | -0.1483408300439927 | -0.08884753072608309 | -0.08884753072608309 | -0.08884753072608309 | -0.05949329931790963 | -0.05949329931790963 | -0.05949329931790963 | 0 | 0 | 0 | 13.662122078788485 |
2013-03-20T00:00:00.000+0000 | 16.047468348531808 | 5.87065714349783 | 22.26171082305501 | 16.047468348531808 | 16.047468348531808 | -0.1133815901384021 | -0.1133815901384021 | -0.1133815901384021 | -0.05903196920318045 | -0.05903196920318045 | -0.05903196920318045 | -0.05434962093522166 | -0.05434962093522166 | -0.05434962093522166 | 0 | 0 | 0 | 14.227980869479595 |
2013-03-21T00:00:00.000+0000 | 16.053164870084746 | 6.177254639123655 | 23.321389905520547 | 16.053164870084746 | 16.053164870084746 | -0.07507794783854334 | -0.07507794783854334 | -0.07507794783854334 | -0.02538971670043258 | -0.02538971670043258 | -0.02538971670043258 | -0.04968823113811075 | -0.04968823113811075 | -0.04968823113811075 | 0 | 0 | 0 | 14.847926195324987 |
2013-03-22T00:00:00.000+0000 | 16.058861391637684 | 7.3208063160604 | 24.580784104622044 | 16.058861391637684 | 16.058861391637684 | 0.0062012135622672646 | 0.0062012135622672646 | 0.0062012135622672646 | 0.051666147212676365 | 0.051666147212676365 | 0.051666147212676365 | -0.0454649336504091 | -0.0454649336504091 | -0.0454649336504091 | 0 | 0 | 0 | 16.15844582069408 |
2013-03-23T00:00:00.000+0000 | 16.064557913190626 | 9.196126957693654 | 26.34074163825717 | 16.064557913190626 | 16.064557913190626 | 0.10982149658810966 | 0.10982149658810966 | 0.10982149658810966 | 0.15144848948243017 | 0.15144848948243017 | 0.15144848948243017 | -0.0416269928943205 | -0.0416269928943205 | -0.0416269928943205 | 0 | 0 | 0 | 17.82879170524358 |
2013-03-24T00:00:00.000+0000 | 16.070254434743564 | 9.93795082220859 | 27.452346239218723 | 16.070254434743564 | 16.070254434743564 | 0.1537014603217598 | 0.1537014603217598 | 0.1537014603217598 | 0.19181657092934357 | 0.19181657092934357 | 0.19181657092934357 | -0.03811511060758378 | -0.03811511060758378 | -0.03811511060758378 | 0 | 0 | 0 | 18.540276009105884 |
2013-03-25T00:00:00.000+0000 | 16.075950956296502 | 3.4370471474226765 | 20.238849749101647 | 16.075950956296502 | 16.075950956296502 | -0.25652751855726996 | -0.25652751855726996 | -0.25652751855726996 | -0.22166199099461026 | -0.22166199099461026 | -0.22166199099461026 | -0.03486552756265973 | -0.03486552756265973 | -0.03486552756265973 | 0 | 0 | 0 | 11.952027149029389 |
2013-03-26T00:00:00.000+0000 | 16.081647477849444 | 5.612497473132405 | 22.3423404738951 | 16.081647477849444 | 16.081647477849444 | -0.1206597153442743 | -0.1206597153442743 | -0.1206597153442743 | -0.08884753072632748 | -0.08884753072632748 | -0.08884753072632748 | -0.031812184617946826 | -0.031812184617946826 | -0.031812184617946826 | 0 | 0 | 0 | 14.141240470905162 |
2013-03-27T00:00:00.000+0000 | 16.087343999402385 | 5.678948963583491 | 23.584067417435023 | 16.087343999402385 | 16.087343999402385 | -0.08792084617657114 | -0.08792084617657114 | -0.08792084617657114 | -0.05903196920349568 | -0.05903196920349568 | -0.05903196920349568 | -0.028888876973075454 | -0.028888876973075454 | -0.028888876973075454 | 0 | 0 | 0 | 14.672931102241343 |
2013-03-28T00:00:00.000+0000 | 16.093040520955324 | 6.866249777387334 | 24.21155921211673 | 16.093040520955324 | 16.093040520955324 | -0.05142105382327396 | -0.05142105382327396 | -0.05142105382327396 | -0.025389716700583403 | -0.025389716700583403 | -0.025389716700583403 | -0.026031337122690557 | -0.026031337122690557 | -0.026031337122690557 | 0 | 0 | 0 | 15.26551941814715 |
2013-03-29T00:00:00.000+0000 | 16.09873704250826 | 8.496516939104456 | 25.0038398393033 | 16.09873704250826 | 16.09873704250826 | 0.028486961686289378 | 0.028486961686289378 | 0.028486961686289378 | 0.05166614721205832 | 0.05166614721205832 | 0.05166614721205832 | -0.02317918552576894 | -0.02317918552576894 | -0.02317918552576894 | 0 | 0 | 0 | 16.55734114783584 |
2013-03-30T00:00:00.000+0000 | 16.104433564061203 | 9.570681257349731 | 26.950700102393732 | 16.104433564061203 | 16.104433564061203 | 0.13117079618700656 | 0.13117079618700656 | 0.13117079618700656 | 0.15144848948241724 | 0.15144848948241724 | 0.15144848948241724 | -0.02027769329541065 | -0.02027769329541065 | -0.02027769329541065 | 0 | 0 | 0 | 18.216864936799862 |
2013-03-31T00:00:00.000+0000 | 16.11013008561414 | 10.36645988609637 | 27.773187205953935 | 16.11013008561414 | 16.11013008561414 | 0.17453726284945476 | 0.17453726284945476 | 0.17453726284945476 | 0.19181657092919568 | 0.19181657092919568 | 0.19181657092919568 | -0.017279308079740922 | -0.017279308079740922 | -0.017279308079740922 | 0 | 0 | 0 | 18.921948094905886 |
2013-04-01T00:00:00.000+0000 | 16.11582660716708 | 3.9543302208761135 | 20.709534681815015 | 16.11582660716708 | 16.11582660716708 | -0.2358068935107037 | -0.2358068935107037 | -0.2358068935107037 | -0.22166199099472747 | -0.22166199099472747 | -0.22166199099472747 | -0.014144902515976235 | -0.014144902515976235 | -0.014144902515976235 | 0 | 0 | 0 | 12.315603598573867 |
2013-04-02T00:00:00.000+0000 | 16.12152312872002 | 5.4571986660782725 | 23.020400762372923 | 16.12152312872002 | 16.12152312872002 | -0.0996922446574312 | -0.0996922446574312 | -0.0996922446574312 | -0.08884753072599696 | -0.08884753072599696 | -0.08884753072599696 | -0.010844713931434238 | -0.010844713931434238 | -0.010844713931434238 | 0 | 0 | 0 | 14.514332300721229 |
2013-04-03T00:00:00.000+0000 | 16.12721965027296 | 6.432754868591755 | 23.835961176525426 | 16.12721965027296 | 16.12721965027296 | -0.06639092323839184 | -0.06639092323839184 | -0.06639092323839184 | -0.0590319692030023 | -0.0590319692030023 | -0.0590319692030023 | -0.0073589540353895325 | -0.0073589540353895325 | -0.0073589540353895325 | 0 | 0 | 0 | 15.056518648423003 |
2013-04-04T00:00:00.000+0000 | 16.132916171825897 | 7.092857389797747 | 24.541695683365383 | 16.132916171825897 | 16.132916171825897 | -0.02906779458410507 | -0.02906779458410507 | -0.02906779458410507 | -0.02538971670011468 | -0.02538971670011468 | -0.02538971670011468 | -0.003678077883990388 | -0.003678077883990388 | -0.003678077883990388 | 0 | 0 | 0 | 15.663967878500676 |
2013-04-05T00:00:00.000+0000 | 16.13861269337884 | 8.088629608229157 | 25.713929387324235 | 16.13861269337884 | 16.13861269337884 | 0.0518634351403284 | 0.0518634351403284 | 0.0518634351403284 | 0.05166614721281804 | 0.05166614721281804 | 0.05166614721281804 | 0.00019728792751036797 | 0.00019728792751036797 | 0.00019728792751036797 | 0 | 0 | 0 | 16.975616586056773 |
2013-04-06T00:00:00.000+0000 | 16.14430921493178 | 10.090028712855121 | 26.902182322085086 | 16.14430921493178 | 16.14430921493178 | 0.15570523688241822 | 0.15570523688241822 | 0.15570523688241822 | 0.15144848948240425 | 0.15144848948240425 | 0.15144848948240425 | 0.004256747400013975 | 0.004256747400013975 | 0.004256747400013975 | 0 | 0 | 0 | 18.658062705545742 |
2013-04-07T00:00:00.000+0000 | 16.15000573648472 | 10.9632233942525 | 28.1829294134523 | 16.15000573648472 | 16.15000573648472 | 0.20029741809466095 | 0.20029741809466095 | 0.20029741809466095 | 0.19181657092904775 | 0.19181657092904775 | 0.19181657092904775 | 0.00848084716561319 | 0.00848084716561319 | 0.00848084716561319 | 0 | 0 | 0 | 19.384810187716575 |
2013-04-08T00:00:00.000+0000 | 16.155702258037657 | 4.704541416917461 | 20.75140041143997 | 16.155702258037657 | 16.155702258037657 | -0.2088199221887736 | -0.2088199221887736 | -0.2088199221887736 | -0.22166199099484468 | -0.22166199099484468 | -0.22166199099484468 | 0.01284206880607109 | 0.01284206880607109 | 0.01284206880607109 | 0 | 0 | 0 | 12.782069769609238 |
2013-04-09T00:00:00.000+0000 | 16.1613987795906 | 6.258365029541153 | 23.62768527802988 | 16.1613987795906 | 16.1613987795906 | -0.0715414670065356 | -0.0715414670065356 | -0.0715414670065356 | -0.08884753072594387 | -0.08884753072594387 | -0.08884753072594387 | 0.01730606371940825 | 0.01730606371940825 | 0.01730606371940825 | 0 | 0 | 0 | 15.005188602021052 |
2013-04-10T00:00:00.000+0000 | 16.167095301143537 | 7.04505306924809 | 23.90162974792955 | 16.167095301143537 | 16.167095301143537 | -0.0371988832273351 | -0.0371988832273351 | -0.0371988832273351 | -0.05903196920331756 | -0.05903196920331756 | -0.05903196920331756 | 0.021833085975982464 | 0.021833085975982464 | 0.021833085975982464 | 0 | 0 | 0 | 15.5656974109111 |
ds | trend | yhat_lower | yhat_upper | trend_lower | trend_upper | multiplicative_terms | multiplicative_terms_lower | multiplicative_terms_upper | weekly | weekly_lower | weekly_upper | yearly | yearly_lower | yearly_upper | additive_terms | additive_terms_lower | additive_terms_upper | yhat |
---|
Showing the first 1000 rows.
Last refresh: Never
%md And here, we can see how our actual and predicted data line up as well as a forecast for the future, though we will limit our graph to the last year of historical data just to keep it readable:
And here, we can see how our actual and predicted data line up as well as a forecast for the future, though we will limit our graph to the last year of historical data just to keep it readable:
Last refresh: Never
predict_fig = model.plot( forecast_pd, xlabel='date', ylabel='sales') # adjust figure to display dates from last year + the 90 day forecast xlim = predict_fig.axes[0].get_xlim() new_xlim = ( xlim[1]-(180.0+365.0), xlim[1]-90.0) predict_fig.axes[0].set_xlim(new_xlim) display(predict_fig)
Last refresh: Never
%md **NOTE** This visualization is a bit busy. Bartosz Mikulski provides [an excellent breakdown](https://www.mikulskibartosz.name/prophet-plot-explained/) of it that is well worth checking out. In a nutshell, the black dots represent our actuals with the darker blue line representing our predictions and the lighter blue band representing our (95%) uncertainty interval.
NOTE This visualization is a bit busy. Bartosz Mikulski provides an excellent breakdown of it that is well worth checking out. In a nutshell, the black dots represent our actuals with the darker blue line representing our predictions and the lighter blue band representing our (95%) uncertainty interval.
Last refresh: Never
%md Visual inspection is useful, but a better way to evaulate the forecast is to calculate Mean Absolute Error, Mean Squared Error and Root Mean Squared Error values for the predicted relative to the actual values in our set:
Visual inspection is useful, but a better way to evaulate the forecast is to calculate Mean Absolute Error, Mean Squared Error and Root Mean Squared Error values for the predicted relative to the actual values in our set:
Last refresh: Never
Demand Forecasting
The objective of this notebook is to illustrate how we might generate a large number of fine-grained forecasts at the store-item level in an efficient manner leveraging the distributed computational power of Databricks. For this exercise, we will make use of an increasingly popular library for demand forecasting, FBProphet, which we will load into the notebook session associated with a cluster running Databricks 6.0 or higher:
Last refresh: Never