Estimation for the linear SSM calibration model of Blocker & Airoldi (2011)

Share:

Description

Maximum likelihood estimation of the parameters of the calibration model from Blocker & Airoldi (2011) via direct numerical maximization of the marginal log-likelihood. This relies upon efficient Kalman smoothing to evaluate the marginal likelihood, which is provided here by the KFAS package.

Usage

1
2
3
4
calibration_ssm(tme, y, A, Ft, Rt, lambda0, phihat0, tau = 2, w = 11,
  initScale = 1/(1 - diag(Ft)^2), nugget = sqrt(.Machine$double.eps),
  verbose = FALSE, logTrans = TRUE, method = "L-BFGS-B",
  optimArgs = list())

Arguments

tme

integer time at which to center moving window for estimation

y

matrix (n x m) of observed link loads from all times (not just the window used for estimation; one observation per row

A

routing matrix (m x k) for network; should be full row rank

Ft

matrix (k x k) containing fixed autoregressive parameters for state evolution equation; upper-left block of overall matrix for expanded state

Rt

covariance matrix for observation equation; typically small and fixed

lambda0

matrix (n x k) of initial estimates for lambda (e.g. obtained via IPFP)

phihat0

numeric vector (length n) of initial estimates for phi

tau

numeric power parameter for mean-variance relationship

w

number of observations to use for rolling-window estimation; handles boundary cases cleanly

initScale

numeric inflation factor for time-zero state covariance; defaults to steady-state variance setting

nugget

small positive value to add to diagonal of state evolution covariance matrix to ensure numerical stability

verbose

logical to select verbose output from algorithm

logTrans

logical whether to log-transform parameters for optimization. If FALSE, sets method to "L-BFGS-B".

method

optimization method to use (in optim calls)

optimArgs

list of arguments to append to control argument for optim. Can include all arguments except for fnscale, which is automatically set

Value

list containing lambdahat, a numeric vector (length k) containing the MLE for lambda; phihat, the MLE for phi; xhat, the smoothed estimates of the OD flows for the window used as a k x w matrix; and varhat, a k x w matrix containing the diagonal of the estimated covariance for each OD flow in the window

References

A.W. Blocker and E.M. Airoldi. Deconvolution of mixing time series on a graph. Proceedings of the Twenty-Seventh Conference Annual Conference on Uncertainty in Artificial Intelligence (UAI-11) 51-60, 2011.

See Also

Other calibrationModel: llCalibration; mle_filter

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
data(bell.labs)

lambda0 <- matrix(1, nrow(bell.labs$Y), ncol(bell.labs$A))
lambda0[100,] <- ipfp(y=bell.labs$Y[100,], A=bell.labs$A,
                      x0=rep(1, ncol(bell.labs$A)))
phihat0 <- rep(1, nrow(bell.labs$Y))
Ft <- 0.5 * diag_mat(rep(1, ncol(bell.labs$A)))
Rt <- 0.01 * diag_mat(rep(1, nrow(bell.labs$A)))

# Not run
#fit.calibration <- calibration_ssm(tme=100, y=bell.labs$Y, A=bell.labs$A,
#                                   Ft=Ft, Rt=Rt, lambda0=lambda0,
#                                   phihat0=phihat0, w=23)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.