class_docstr: Formal representation of an autoregressive model.
  
  An autoregressive (AR) model posits a latent `level` whose value at each step
  is a noisy linear combination of previous steps:
  
  ```python
  level[t+1] = (sum(coefficients * levels[t:t-order:-1]) +
                Normal(0., level_scale))
  ```
  
  The latent state is `levels[t:t-order:-1]`. We observe a noisy realization of
  the current level: `f[t] = level[t] + Normal(0., observation_noise_scale)` at
  each timestep.
  
  If `coefficients=[1.]`, the AR process is a simple random walk, equivalent to
  a `LocalLevel` model. However, a random walk's variance increases with time,
  while many AR processes (in particular, any first-order process with
  `abs(coefficient) < 1`) are *stationary*, i.e., they maintain a constant
  variance over time. This makes AR processes useful models of uncertainty.
  
  See the [Wikipedia article](
  https://en.wikipedia.org/wiki/Autoregressive_model#Definition) for details on
  stationarity and other mathematical properties of autoregressive processes.
class_docstr_tok: ["Formal","representation","of","an","autoregressive","model",".","An","autoregressive","(","AR",")","model","posits","a","latent","`","level","`","whose","value","at","each","step","is","a","noisy","linear","combination","of","previous","steps",":","``","`","python","level","[","t+1","]","=","(","sum","(","coefficients","*","levels","[","t",":","t-order",":","-1","]",")","+","Normal","(","0.",",","level_scale",")",")","``","`","The","latent","state","is","`","levels","[","t",":","t-order",":","-1","]","`",".","We","observe","a","noisy","realization","of","the","current","level",":","`","f","[","t","]","=","level","[","t","]","+","Normal","(","0.",",","observation_noise_scale",")","`","at","each","timestep",".","If","`","coefficients=","[","1",".","]","`",",","the","AR","process","is","a","simple","random","walk",",","equivalent","to","a","`","LocalLevel","`","model",".","However",",","a","random","walk","'s","variance","increases","with","time",",","while","many","AR","processes","(","in","particular",",","any","first-order","process","with","`","abs","(","coefficient",")","<","1","`",")","are","*","stationary","*",",","i.e.",",","they","maintain","a","constant","variance","over","time",".","This","makes","AR","processes","useful","models","of","uncertainty",".","See","the","[","Wikipedia","article","]","(","https",":","\/\/en.wikipedia.org\/wiki\/Autoregressive_model","#","Definition",")","for","details","on","stationarity","and","other","mathematical","properties","of","autoregressive","processes","."]
code: def initial_state_prior(self):
      return self._initial_state_prior
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.bijectors import tanh
  from tensorflow_probability.python.distributions import linear_gaussian_ssm
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.sts.internal import util
  from tensorflow_probability.python.sts.structural_time_series import Parameter
  from tensorflow_probability.python.sts.structural_time_series import StructuralTimeSeries
label_desc: Use image node_id 2 for calling the Autoregressive obj's underlying member method code with example usage: obj.initial_state_prior() and returns: self