library(ctsmTMB)
In this document we show how to apply functions to the left-hand side of an observation equation.
# Create model object obj = ctsmTMB$new() # Add system equations obj$addSystem( dx ~ theta * (mu-x) * dt + sigma_x*dw )
Let's assume that our observations $y_{t}$ are log-normally distributed conditioned on $x_{t}$ i.e.
$$
\log y_{t_{i}} \sim N(x_{t_{i}},\sigma_{y}^{2})
$$
It is sufficient for the user to provide the data column y
in the provided data.frame
to e.g. estimate
or predict
by adding the following observation equation
obj$addObs( log(y) ~ x, obsnames = "log_y" )
Note that these kind of observation equations, where the left-hand side is a function of one (or more) observed variables must be explicitly named using the obsnames
argument.
The names given with obsnames
are important because they are needed to specify the observation variance. As an example the code below does not work, because the observation was named log_y
obj$setVariance( y ~ sigma_y^2 )
So the correct way to add the observation variance is this:
obj$setVariance( log_y ~ sigma_y^2 )
You must supply multiple obsnames
if you are supplying multiple observation equations, although the name will only be used if the left-hand side is not just a single variable i.e.
obj$addObs( log(y) ~ x, y ~ x, y^2+z^3 ~ x, obsnames = c("log_y", NA, "y2_plus_z3") )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.