R/fsamplt.r

Defines functions fSampLT

Documented in fSampLT

#' @export
#' @title sample the latent thresholds
#' @param my matrix with the data (lhs)
#' @param amX matrix with rhs of data
#' @param amG2inv volatility
#' @param vd  vector with current treshold
#' @param vdc vector with candidate thresholds
#' @param mp ar-coefficient

fSampLT <- function(my,amX,mp,amG2inv,vd,vdc){
  ns <- nrow(mp)
  nk <- ncol(mp)
  vdo <- vd

  for(ii in 1:nk){
    vdn <- vdo
    vdn[ii] <- runif(1) * vdc[ii]
    mdn <- mp
    mdo <- mp

    for(jj in 1:ns){

      if(abs(mp[jj,ii]) < vdn[ii] ){ mdn[jj,ii] <- 0 }
      if(abs(mp[jj,ii]) < vdo[ii] ){ mdo[jj,ii] <- 0 }

    }

    dlo <- 0
    dln <- 0

    for(jj in 1:ns){

      ve  <- my[jj,] - mdn[jj,] %*% amX[jj,,]
      dln <- dln + ve %*% amG2inv[jj,,] %*% t(ve)

      ve  <- my[jj,] - mdo[jj,] %*% amX[jj,,]
      dlo <- dlo + ve %*% amG2inv[jj,,] %*% t(ve)

    }

    if(runif(1)<exp(-0.5*(dln-dlo))){

      vdo <- vdn

    }

  }
  return(vdo)
}
joergrieger/ltvar documentation built on Sept. 11, 2019, 10:21 a.m.