DESCRIPTION:
Conjugated Kalman filter for binomial data assuming logitlink 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 timepoint.
 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 m_{t} given the
observations up to and including time t. These are arranged rowwise in a matrix.
 Ct:
 Posterior variances C_{t} given the
observations up to and including time t. These are arranged in a
3dimensional array such that C_{t} is placed in filtered$Ct[,,t].
 Rt:
 Prior variances for the states arranged in
3dimensional array such that R_{t} 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, 7397.
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")
