Coder Social home page Coder Social logo

skagit-river-steelhead-forecast's Introduction

Skagit River Steelhead forecast methodology

The code and data provided here will allow anyone to reproduce the analyses and results used to generate annual abundance forecasts for Skagit River Steelhead. The models used are based on methodology described in

Scheuerell MD, Ruff CP, Anderson JH, Beamer EM (2020) An integrated population model for estimating the relative effects of natural and anthropogenic factors on a threatened population of steelhead trout.

skagit-river-steelhead-forecast's People

Contributors

tbuehrens avatar casruff avatar

Stargazers

Jonah Keith avatar Guy Fleischer avatar

Watchers

 avatar  avatar Guy Fleischer avatar

Forkers

tbuehrens

skagit-river-steelhead-forecast's Issues

Approach to model selection?

Hey @casruff, your past approach of calculating model error based on a series of 1-year ahead forecasts was rock solid and is exactly what Mark and I do in another manuscript we're working on. LOOIC is also a defensible fall-back for comparing AR1 with AR1MA1, since the AR1MA1 model was taking 24 hrs to run. I have a couple thoughts though:

  1. Models should be alot faster now that I parallelized them (~75% reduction in run time)
  2. That still doesn't get us to a point where re-running each 5 or 10 times is "fast".
  1. I forgot the other day that the stan group who develop LOOIC also developed "Approximate leave-future-out cross-validation for Bayesian time series models" here: https://mc-stan.org/loo/articles/loo2-lfo.html. Maybe worth comparing? I'd guess it will give us the same results. Do you want me to test this?

Recruitment Process Residual Estimates and Plot affected by parameter labeling issue

res_ln_rec is the recruitment process residuals in the Ar1 model, whereas it is the innovations in the AR1MA1 model...may want to re-label so w(t) are innovations in the AR1MA1 model. The effects are minor since almost all the model weight goes to AR1, but if weights were more equal, this would be a big problem because we are model-averaging to sets of params that don't represent the same thing

Redo Age Comp Prior to improve convergence speed

@casruff after inspecting more summaries, it is clear that the hierarchical dirichlet prior is causing converge issues, particularly for rare age classes. The good news is the effect on the overall model is miniscule because age 8 and age 3 fish (age classes 1 and 6) are really rare. An alternative parameterization could be in terms of the additive log odds ratio:

here, lorc = "log odds ratio component", orc = odds ratio component, and p = proportions by age class...softmax is a function that does the calcs more efficiently but doesn't exist in jags...this would be an easy improvement to implement...Eric, Mark, and I have all started using it independently because it tends to converge better than the dirichlet

for(a in 1:A){
    lorc[a]~normal(0,3)
    orc[a] = exp(lorc[a])
    p[a] = orc[a] /(sum(orc[a]))
}

#p[1:A] = softmax(lorc[1:A]) #if softmax existed in JAGS


Inseason forecast enhancement

Q[t]= Q[t-1] + Q[t-s] โ€“ Q[t-s-1] + eps[t]
log_Catch_mu[t] = Q[t] + log(Effort[t]) + log( State estimate of runsize[y])
eps[t] ~ normal (0, sigma_Q)
Catch ~ neg_bin(Catch_mu[t] , phi)
Phi is overdisperssiomn

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.