class: title-slide, right, top background-image: url(img/hex-xaringan.png), url(img/GTLCColterBay-1920x1280.jpg) background-position: 90% 75%, 75% 75% background-size: 8%, cover <!-- --> .right-column[ # Jackson Lake level Preliminary Assessment ### **Daniel Hintz, Leigh Ann Starcevich, Simon Weller, Ted Owen**<br> April 25, 2023 ] .palegrey[.left[.footnote[Photo by [GrandTetonLodgeCo](https://jacksonhole-traveler-production.s3.amazonaws.com/wp-content/uploads/2014/06/GTLCColterBay-1920x1280.jpg)]]] --- <div class="logo"></div> # Outline (1) - Downstream Variables and Lake level -- - Motivation for SPI -- - Limitations for Long-term forecasting -- - SNIAVE long-term forecasts -- - Bayesian Long Term Forecast -- - Why am I showing you This? -- - Assumptions of our Methods used --- # Outline (2) - Unexplored LTTF Methods -- - What is State of the Art for LTTF -- - Recommendations -- - Successes and Failures -- - References --- <div class="logo"></div> # Downstream Variables and Lake level .panelset[ .panel[.panel-name[Dual Axis Plot] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] .panel[.panel-name[Upstream Is King] > *Because Jackson Lake Dam managers release water from the lake in controlled, consistent increments to prevent significant fluctuations, downstream phenomena is unlikely to be predictive of fluctuations in Lake level.* - Thus, meteorological variables concerning the upper snake river are key (Supply side) ] .panel[.panel-name[Transition] - On the next slide we will see Deficit, SPI and Lake level altogether ] ] --- background-image: url(img/SPI_vs_LakeLevel_vs_Deficit.PNG) background-size: contain background-color: white class: inverse, middle, center <div class="logo"></div> --- <div class="logo"></div> # Motivation for SPI .pull-left[ <div style="text-align: center;"> <h2 style="font-size: 16px;">Wyoming Drought Index</h2> <img src="img/drought_index.PNG" style="width: 600px; height: 500px;" /> </div> ] .pull-right[ <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] --- <div class="logo"></div> # Limitations for Long-term forecasting - Forecasting predictor variables for our overall forecasts -- - Generally, the more stationary a process the more predictable it is. (Lake level is not stationary) -- - Long term forecasts are inherently very noisy -- - For common forecasting methods, if there isn't a persistence in the captured trend and seasonality wane with longer forecasting periods, i.e. they become SNAIVE or a flat line (see example on next slide) -- - For example ARIMA was built for short-time forecasting --- <div class="logo"></div> # SNAIVE long-term forecasts .panelset[ .panel[.panel-name[SNAIVE] <div style="text-align: center;"> <img src="img/SNAIVE_30y.PNG" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[ARIMA] <div style="text-align: center;"> <img src="img/ARIMA_30y_noCov.PNG" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[Sub-Series] <div style="text-align: center;"> <img src="img/Level_subseries.png" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[SNAIVE Sub-Series] <div style="text-align: center;"> <img src="img/SNAIVE_subseries.PNG" style="width: 70%; height: 400px;" /> </div> ] .panel[.panel-name[ARIMA Sub-Series] <div style="text-align: center;"> <img src="img/ARIMA_subseries.PNG" style="width: 70%; height: 400px;" /> </div> ] ] <!-- text immediately below ??? is present note accessible from presenter mode from hitting P--> ??? - Why am I showing you forecasts that are clearly bad? - Because we need covariates that capture information that allows for drift and non-stationary in our forecasts - So what might they those covariates/variables be? - For that we might need your insights <!-- there is no symbol to end presenter comments--> --- <div class="logo"></div> # Bayesian Long Term Forecast .panelset[ .panel[.panel-name[Single Iteration] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] .panel[.panel-name[Multiple Iterations] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] .panel[.panel-name[Bootstrap] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] .panel[.panel-name[Discussion] ### Why am I showing you this? - Bayesian time series allows for information like trend and seasonality to persist - However, a 30 year forecast window allows for A LOT of uncertainty! - So this forecast is not to be trusted! ] .panel[.panel-name[Variables] <div style="text-align: center;"> <img src="img/bsts_inclusion.png" style="width: 70%; height: auto;" /> </div> ] ] --- <div class="logo"></div> # Assumptions of our Methods used - Main Assumptions/use-cases are -- - Stationarity -- - Linearity -- - Classical methods (Autoregressive Moving Average (ARMA) and Auto-regressive Method (AR)) have been shown to perform best on systems with simpler underlying structures -- - Specilised Machine Lerning Methods may be prefered over Classical statisitcs for forecasting meteorological systems --- <div class="logo"></div> # Unexplored LTTF Methods - Error-Correction Model for Co-integrated Time Series -- - Is intended for matrix of covariates that share long-run relationships with the response -- - ECM makes it possible to deal with non- stationary data series -- - ANFIS (Adaptive neuro fuzzy inference system) -- - Tested performance for predicting 1 month ahead Urmia Lake Level in Iran -- - Was able to account for drift in observed series -- - No documented uses of long term forecasting, though I wouldn't rule it out -- - There are in fact, many types of forecasting methods for Time series surfacing in the literature, open source implementation is still lacking for long-term time-series forecasting (LTTF) --- <div class="logo"></div> # What is State of the Art for LTTF <br> <br> <div style="text-align: center;"> <figure> <img src="img/SOTA_LTTF_comp.PNG" style="width: 1500px; height: auto;" /> <figcaption style="text-align: left; font-size: 12px;">See Li, Y., X. Lu, H. Xiong, et al. (2023)</figcaption> </figure> </div> --- <div class="logo"></div> # Recommendations - Find a supply side variable that better captures shocks -- - Try aggregating SPI measures around Upper Snake River Watershed -- - Try ANFIS (Adaptive neuro fuzzy inference system), see Talebizadeh, M. and A. Moridnejad (2011) for short term forecast --- <div class="logo"></div> # Successes and Failures #### Successes: -- - Identified that downstream phenomena are not effective predictors for lake level -- - Identified variables of interest for future work (SPI, PACK, SOIL Rnl_1) -- - Was able to achieve strong back-cast performance for a short term forecasting -- #### Failures: - Was not able to include scenario based climate forecasts ie (rcp's) -- - Was not able to predict changing frequency in shocks -- - Was not able to generate a forecast of acceptable accuracy --- <div class="logo"></div> # References (1) - <p><cite>Box, G. E. and G. M. Jenkins (1976). “Time series analysis: Forecasting and control San Francisco”. In: <em>Calif: Holden-Day</em>.</cite></p> - <p><cite>Durbin, J. and S. J. Koopman (2012). <em>Time Series Analysis by State Space Methods</em>. Oxford University Press. ISBN: 9780199641178. DOI: <a href="https://doi.org/10.1093/acprof:oso/9780199641178.001.0001">10.1093/acprof:oso/9780199641178.001.0001</a>. URL: <a href="https://doi.org/10.1093/acprof:oso/9780199641178.001.0001">https://doi.org/10.1093/acprof:oso/9780199641178.001.0001</a>.</cite></p> - <p><cite>Harvey, A. C. (1993). <em>Forecasting, Structural Time Series Models and the Kalman Filter</em>. Cambridge University Press. DOI: <a href="https://doi.org/10.1017/CBO9781107049994">10.1017/CBO9781107049994</a>.</cite></p> - <p><cite>Hyndman, R. J. and Y. Khandakar (2008). “Automatic time series forecasting: the forecast package for R”. In: <em>Journal of Statistical Software</em> 26.3, pp. 1–22. DOI: <a href="https://doi.org/10.18637/jss.v027.i03">10.18637/jss.v027.i03</a>.</cite></p> --- <div class="logo"></div> # References (2) - <p><cite>Li, Y., X. Lu, H. Xiong, et al. (2023). “Towards Long-Term Time-Series Forecasting: Feature, Pattern, and Distribution”. In: <em>arXiv preprint arXiv:2301.02068</em>.</cite></p> - <p><cite>Makhloufi, S., M. Debbache, and S. Boulahchiche (2018). “Long-term Forecasting of Intermittent Wind and Photovoltaic Resources by using Adaptive Neuro Fuzzy Inference System (ANFIS)”. In: <em>2018 International Conference on Wind Energy and Applications in Algeria (ICWEAA)</em>. , pp. 1-4. DOI: <a href="https://doi.org/10.1109/ICWEAA.2018.8605102">10.1109/ICWEAA.2018.8605102</a>.</cite></p> - <p><cite>Scott, S. L. (2022). <em>Boom: Bayesian Object Oriented Modeling</em>. R package version 0.9.11. URL: <a href="https://CRAN.R-project.org/package=Boom">https://CRAN.R-project.org/package=Boom</a>.</cite></p> - <p><cite>Scott, S. L. (2022). <em>bsts: Bayesian Structural Time Series</em>. R package version 0.9.9. URL: <a href="https://CRAN.R-project.org/package=bsts">https://CRAN.R-project.org/package=bsts</a>.</cite></p> --- <div class="logo"></div> # References (3) - <p><cite>Talebizadeh, M. and A. Moridnejad (2011). “Uncertainty analysis for the forecast of lake level fluctuations using ensembles of ANN and ANFIS models”. In: <em>Expert Systems with Applications</em> 38.4, pp. 4126-4135. ISSN: 0957-4174. DOI: <a href="https://doi.org/https://doi.org/10.1016/j.eswa.2010.09.075">https://doi.org/10.1016/j.eswa.2010.09.075</a>. URL: <a href="https://www.sciencedirect.com/science/article/pii/S0957417410010328">https://www.sciencedirect.com/science/article/pii/S0957417410010328</a>.</cite></p> --- class: center, middle # Material from Last Meeting --- <div class="logo"></div> # Outline - Colter Bay Marina -- - Daily, Monthly and Yearly lags for Lake Level -- - Objectives -- - Short Term -- - Long term -- - System Drivers -- - Missing Information? --- <div class="logo"></div> # Colter Bay Marina .panelset[ .panel[.panel-name[Colter Bay] <div style="text-align: center;"> <img src="img/colterbay_far.PNG" style="width: 50%; height: auto;" /> </div> ] .panel[.panel-name[Colter Bay Ramp] <div style="text-align: center;"> <img src="img/colterbay_close.PNG" style="width: 60%; height: auto;" /> </div> ] .panel[.panel-name[Ramp Diagram] <div style="text-align: center;"> <img src="img/ramp_diagram.PNG" style="width: 60%; height: auto;" /> </div> ] .panel[.panel-name[Level] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] ] --- <div class="logo"></div> # Daily Lag <div style="text-align: center;"> <img src="img/daily_lv_lag.PNG" style="width: 600px; height: 525px;" /> </div> --- <div class="logo"></div> # Monthly Lag <div style="text-align: center;"> <img src="img/monthly_lv_lag.PNG" style="width: 600px; height: 525px;" /> </div> --- <div class="logo"></div> # Yearly Lag <div style="text-align: center;"> <img src="img/yearly_lv_lag.PNG" style="width: 600px; height: 525px;" /> </div> --- <div class="logo"></div> # Objectives - Are we trying to nail prediction on a fine resolution? -- - Are we trying to be able to alert boaters months in advance if we think its going to be a good boating season. -- - Or, ... -- - Are we trying to capture the long term viability of the ramp, monthly point estimates are not so important. Trending up or Down? -- - Or both! --- <div class="logo"></div> # Short Term <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> --- # Short Term with Moran Predictor <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> --- <div class="logo"></div> # Short Term with Moran Predictor ![](Jackson_Lake_Final_Pres_files/figure-html/unnamed-chunk-7-1.png)<!-- --> --- <div class="logo"></div> # Long term .panelset[ .panel[.panel-name[Sub-Series] <div style="text-align: center;"> <img src="img/Level_subseries.png" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[ARIMA] <div style="text-align: center;"> <img src="img/ARIMA_30y_noCov.PNG" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[SNAIVE] <div style="text-align: center;"> <img src="img/SNAIVE_30y.PNG" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[SNAIVE Sub-Series] <div style="text-align: center;"> <img src="img/SNAIVE_subseries.PNG" style="width: 70%; height: 400px;" /> </div> ] .panel[.panel-name[ARIMA Sub-Series] <div style="text-align: center;"> <img src="img/ARIMA_subseries.PNG" style="width: 70%; height: 400px;" /> </div> ] ] <!-- text immediately below ??? is present note accessible from presenter mode from hitting P--> ??? - Why am I showing you forecasts that are clearly bad? - Because we need covariates that capture information that allows for drift and non-stationary in our forecasts - So what might they those covariates/variables be? - For that we might need your insights <!-- there is no symbol to end presenter comments--> --- <div class="logo"></div> # System Drivers .panelset[ .panel[.panel-name[Predictors] - So far, we have looked at: - Deficit - Outflow ] .panel[.panel-name[Deficit vs Outflow] <div style="text-align: center;"> <img src="img/deficit_vs_outflow.jpg" style="width: 70%; height: auto;" /> </div> ] .panel[.panel-name[Level] <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] .panel[.panel-name[ARIMA] <div style="text-align: center;"> <img src="img/ARIMA_30y_noCov.PNG" style="width: 70%; height: auto;" /> </div> ] ] --- <div class="logo"></div> # Missing Information? .pull-left[ <div style="text-align: center;"> <h2 style="font-size: 16px;">Wyoming Drought Index</h2> <img src="img/drought_index.PNG" style="width: 600px; height: 500px;" /> </div> ] .pull-right[ <div id="htmlwidget_container" class="plotly html-widget" style="position: relative; width: 700px; height: 500px;">
</div> ] --- class: center, middle # Thank You