DESCRIPTION:
Conjugated Kalman filter for binomial data assuming logit-link and
partially specified linear latent process. The conjugated prior on the
probability parameter is beta. The specific model is
USAGE:
ckal.fil.bin.beta.logit(ssm)
REQUIRED ARGUMENTS:
- ssm:
- Object of class ssm (state space
model).
The following attributes must be specified in ssm:
- Yt:
- 1 × n vector containing the binomial observations.
- nt:
- 1 × n vector containing the number of trials at each time-point.
- Ft:
- Function returning a p × 1 design vector.
- Gt:
- Function returning a p × p evolution transfer matrix.
- Wt:
- Function returning a p × p evolution variance
matrix.
- m0:
- p × 1 vector (prior mean).
- C0:
- p × p matrix (prior variance).
OPTIONAL ARGUMENTS:
The following attributes of the ssm object might be needed:
- Xt:
- Matrix containing the covariates needed in Ft,
Gt and/or Wt. This matrix must have n rows, such that
row t contains the covariates needed for generating the system
matrices at time t.
- psi:
- Parameter vector must be supplied if it is needed in
the calculation of the system matrices.
The following attributes of the ssm object are optional:
- fam:
- Tacitly assumed to have value binomial.
- link:
- Tacitly assumed to have value identity.
- m.start:
- Not used in the conjugate filter.
VALUE:
Returns an object of class ssm with the same
attributes as the object in the call, but with attribute
filtered updated with:
- mt:
- Posterior means mt given the
observations up to and including time t. These are arranged row-wise in a matrix.
- Ct:
- Posterior variances Ct given the
observations up to and including time t. These are arranged in a
3-dimensional array such that Ct is placed in filtered$Ct[,,t].
- Rt:
- Prior variances for the states arranged in
3-dimensional array such that Rt is placed in
filtered$Rt[,,t]. The reason for returning these is that they
are needed in the Kalman smoother.
The returned object can the be given as argument to the
Kalman smoother.
SIDE EFFECTS:
Global variables ft and qt is generated by the
function. If they already exists, they are overwritten! The function
deletes ft and qt before returning.
DETAILS:
This is the conjugate filter introduced for the class of dynamic
generalized linear models by West, Harrison and Migon (1985).
Instead of approximating the observational model with a Gaussian one
like in the extended Kalman filter, the latent process guides the
choice of the conjugate prior on the natural parameter.
REFERENCES:
Klein, (2003), State Space Models for Exponential Family Data,
Ph.D. Thesis, Department of Statistics, University of Southern Denmark.
West & Harrison, (1997),
Bayesian Forecasting
and Dynamic Models, Springer Series in Statistics.
West, Harrison & Migon, (1985),Dynamic Generalized Linear Models
and Bayesian Forecasting (with discussion), Journal of the American
Statistical association, 80, 73-97.
EXAMPLES:
# Specify a state space model
ss <- ssm(Ft = function(i,x,phi)
{c(1,1)},
Gt = function(i,x,phi)
{matrix(c(1,0,0,0),ncol=2,byrow=T)},
Wt = function(i,x,phi)
{diag(2)/25},
m0 = c(0,0),
C0 = diag(10,2),
nt = rep(10,20),
fam = "binomial",
link = "logit")
# Simulate observations
ss <- simulate.ssm(ss, n=20)
# Apply the conjugated Kalman filter
ss <- ckal.fil.bin.beta.logit(ss)
# Response function
expit <- function(x) exp(x)/(1+exp(x))
# Make plots
plot(expit(apply(ss$filtered$mt,1,sum)),
ylab="mean", lty=1, type="l",
ylim=c(0,1))
lines(expit(ss$simulated$lambda), lty=2)
points(ss$Yt/ss$nt, pch=16)
legend(0,1,legend=c("Filtered probability",
"Simulated probability","Yt/nt"),
lty=c(1,2,-1), marks=c(-1,-1,16))
title("Results from ckal.fil.beta.bin.logit")
|