Learn R Programming

networkTomography (version 0.3)

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

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

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

Run this code
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)

Run the code above in your browser using DataLab