gs4: Resampling Ystar function

View source: R/gs4.R

gs4R Documentation

Resampling Ystar function

Description

This function resamples the distinct Ystar in the semiparametric model.

Usage

gs4(ystar, x, idx, distr.k, sigma.k, distr.p0, mu.p0, sigma.p0)

Details

For internal use.

Examples


## The function is currently defined as
function(ystar, x, idx, distr.k, sigma.k, distr.p0, mu.p0, sigma.p0) {
  r <- length(ystar)
  nstar <- as.numeric(table(idx))
  for (j in seq(r)) {
    id <- which(!is.na(match(idx, j)))
    xj <- x[id]
    xbar <- sum(xj) / nstar[j]
    y2star <- rk(1, distr = distr.k, mu = xbar, sigma = sigma.k / sqrt(nstar[j]))
    f.ratio <- rfyzstar(y2star, ystar[j], xj,
      distr = distr.k, sigma = sigma.k,
      distr.p0 = distr.p0, mu.p0 = mu.p0, sigma.p0 = sigma.p0
    )
    k.ratio <- dk(ystar[j],
      distr = distr.k,
      mu = xbar, sigma = sigma.k / sqrt(nstar[j])
    ) / dk(y2star,
      distr = distr.k, mu = xbar, sigma = sigma.k / sqrt(nstar[j])
    )
    q2 <- min(1, f.ratio * k.ratio)
    ystar[j] <- ifelse(runif(1) <= q2, y2star, ystar[j])
  }
  return(ystar)
}

konkam/BNPdensity documentation built on March 14, 2024, 7:15 a.m.