Learn R Programming

surveillance (version 1.2-1)

algo.hhh.grid: Function to try multiple starting values

Description

Tries multiple starting values in algo.hhh. Starting values are provided in a matrix with gridSize rows, the grid search is conducted until either all starting values are used or a time limit maxTime is exceeded. The result with the highest likelihood is returned.

Usage

algo.hhh.grid(disProgObj, control=list(lambda=TRUE, neighbours=FALSE, 
   linear=FALSE, nseason=0,
   negbin=c("none", "single", "multiple"), 
   proportion=c("none", "single", "multiple"),lag.range=NULL), 
   thetastartMatrix, maxTime=1800, verbose=FALSE)

Arguments

disProgObj
object of class disProg
control
control object:
  • lambda
{If TRUE an autoregressive parameter $\lambda$ is included, if lambda is a vector of logicals, unit-specific parameters $\lambda_i$ are included.

Value

  • ahgReturns an object of class ahg with elements
    • best
    {result of a call to algo.hhh with highest likelihood } allLoglik{values of loglikelihood for all starting values used} gridSize{number of different starting values in thetastartMatrix} gridUsed{number of used starting values} time{elapsed time} convergence{if false algo.hhh did not converge for all (used) starting values}

encoding

latin1

item

  • thetastartMatrix
  • verbose
  • maxTime

code

true

source

Held, L., H�hle{Hoehle}, M., Hofmann, M. (2005) A statistical framework for the analysis of multivariate infectious disease surveillance counts. Statistical Modelling, 5, p. 187--199.

See Also

meanResponse,create.grid,algo.hhh

Examples

Run this code
## monthly counts of menigococcal infections in France
data(meningo.age)
				
# specify model for algo.hhh.grid
model1 <- list(lambda=TRUE)

# create grid of inital values
grid1 <- create.grid(meningo.age, model1, 
                     params = list(epidemic=c(0.1,0.9,5)))
							
# try multiple starting values, print progress information
algo.hhh.grid(meningo.age, control=model1, thetastartMatrix=grid1,
               verbose=TRUE)

# specify model
model2 <- list(lambda=TRUE, neighbours=TRUE, negbin="single",
               nseason=1)
grid2 <- create.grid(meningo.age, model2, 
                     params = list(epidemic=c(0.1,0.9,3), 
                                   endemic=c(-0.5,0.5,3), 
                                   negbin = c(0.3, 12, 10)))
											
# run algo.hhh.grid, search time is limited to 30 sec
algo.hhh.grid(meningo.age, control=model2, thetastartMatrix=grid2,
              maxTime=30)
              
## weekly counts of influenza and meningococcal infections in Germany, 2001-2006
data(influMen)

# specify model with two autoregressive parameters lambda_i, overdispersion
# parameters psi_i, an autoregressive parameter phi for meningococcal infections
# (i.e. nu_flu,t = lambda_flu * y_flu,t-1  
#  and  nu_men,t = lambda_men * y_men,t-1 + phi_men*y_flu,t-1 )
# and S=(3,1) Fourier frequencies
model <- list(lambda=c(TRUE,TRUE), neighbours=c(FALSE,TRUE),
              linear=FALSE, nseason=c(3,1),negbin="multiple")
              
# create grid of initial values
grid <- create.grid(influMen,model, list(epidemic=c(.1,.9,3),
              endemic=c(-.5,.5,3), negbin=c(.3,15,10)))
# run algo.hhh.grid, search time is limited to 30 sec
algo.hhh.grid(influMen, control=model, thetastartMatrix=grid, maxTime=30)

# now meningococcal infections in the same week should enter as covariates
# (i.e. nu_flu,t = lambda_flu * y_flu,t-1  
#  and  nu_men,t = lambda_men * y_men,t-1 + phi_men*y_flu,t )
model2 <- list(lambda=c(1,1), neighbours=c(NA,0),
              linear=FALSE,nseason=c(3,1),negbin="multiple")
              
algo.hhh.grid(influMen, control=model2, thetastartMatrix=grid, maxTime=30)

Run the code above in your browser using DataLab