inst/doc/pulsar.R

## ----echo = FALSE, eval=TRUE--------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  cache=TRUE,
  comment = "#"
)
library(pulsar)
pulsarchunks = FALSE
getconfig    = TRUE
README       = FALSE

## ----eval=FALSE, echo=README--------------------------------------------------
#  library(devtools)
#  install_github("zdk123/pulsar")
#  library(pulsar)

## ----eval=FALSE, echo=!README-------------------------------------------------
#  # install.packages('pulsar')
#  ## uncomment below for the dev version
#  # library(devtools)
#  # install_github("zdk123/pulsar")
#  library(pulsar)

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  library(huge)
#  set.seed(10010)
#  p <- 40 ; n <- 3000
#  dat  <- huge.generator(n, p, "hub", verbose=FALSE, v=.1, u=.5)
#  lmax <- getMaxCov(dat$sigmahat)
#  lams <- getLamPath(lmax, lmax*.05, len=40)

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  hugeargs <- list(lambda=lams, verbose=FALSE)
#  time1    <- system.time(
#  out.p    <- pulsar(dat$data, fun=huge, fargs=hugeargs, rep.num=20,
#                     criterion='stars', seed=10010))
#  fit.p    <- refit(out.p)
#  
#  ## Inspect the output ##
#  out.p
#  fit.p

## ----eval=pulsarchunks--------------------------------------------------------
#  time2 <- system.time(
#  out.b <- pulsar(dat$data, fun=huge, fargs=hugeargs, rep.num=20,
#            criterion='stars', lb.stars=TRUE, ub.stars=TRUE, seed=10010))

## ----eval=pulsarchunks--------------------------------------------------------
#  time2[[3]] < time1[[3]]
#  opt.index(out.p, 'stars') == opt.index(out.b, 'stars')

## ----eval=pulsarchunks--------------------------------------------------------
#  library(BigQuic)
#  quicr <- function(data, lambda, seed=NULL) {
#      est  <- BigQuic::BigQuic(data, lambda=lambda, epsilon=1e-2, use_ram=TRUE, seed=seed)
#      est <- setNames(lapply(ls(envir=est), mget, envir=attr(unclass(est), '.xData')), ls(envir=est))
#      path <-  lapply(seq(length(lambda)), function(i) {
#                  tmp <- est$precision_matrices[[1]][[i]]; diag(tmp) <- 0
#                  as(tmp!=0, "lgCMatrix")
#      })
#      est$path <- path
#      est
#  }

## ----eval=pulsarchunks--------------------------------------------------------
#  quicargs <- list(lambda=lams)
#  nc    <- if (.Platform$OS.type == 'unix') 2 else 1
#  out.q <- pulsar(dat$data, fun=quicr, fargs=quicargs, rep.num=100,
#                  criterion='stars', lb.stars=TRUE, ub.stars=TRUE,
#                  ncores=nc, seed=10010)

## ----eval=pulsarchunks--------------------------------------------------------
#  out.q2 <- update(out.q, criterion=c('stars', 'gcd'))
#  opt.index(out.q2, 'gcd') <- get.opt.index(out.q2, 'gcd')
#  fit.q2 <- refit(out.q2)

## ----eval=pulsarchunks, fig.width=12, fig.height=6, message=FALSE-------------
#  plot(out.q2, scale=TRUE)

## ----eval=pulsarchunks, fig.width=18, fig.height=6, message=FALSE-------------
#  starserr <- sum(fit.q2$refit$stars != dat$theta)/p^2
#  gcderr   <- sum(fit.q2$refit$gcd   != dat$theta)/p^2
#  gcderr < starserr
#  
#  ## install.packages('network')
#  truenet  <- network::network(as.matrix(dat$theta))
#  starsnet <- network::network(summary(fit.q2$refit$stars))
#  gcdnet   <- network::network(summary(fit.q2$refit$gcd))
#  par(mfrow=c(1,3))
#  coords <- plot(truenet, usearrows=FALSE, main="TRUE")
#  plot(starsnet, coord=coords, usearrows=FALSE, main="StARS")
#  plot(gcdnet, coord=coords, usearrows=FALSE, main="gcd+StARS")

## ----eval=getconfig-----------------------------------------------------------
conffile <- pulsar::findConfFile()

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  ## uncomment below if batchtools is not already installed
#  # install.packages('batchtools')
#  library(batchtools)
#  options(batchtools.progress=TRUE, batchtools.verbose=FALSE)
#  out.batch <- batch.pulsar(dat$data, fun=quicr, fargs=quicargs, rep.num=100,
#                            criterion='stars', seed=10010 #, cleanup=TRUE
#                           )

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  opt.index(out.q, 'stars') == opt.index(out.batch, 'stars')

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  out.bbatch <- update(out.batch, criterion=c('stars', 'gcd'),
#                       lb.stars=TRUE, ub.stars=TRUE)

## ----eval=pulsarchunks, message=FALSE-----------------------------------------
#  opt.index(out.bbatch, 'stars') == opt.index(out.batch, 'stars')

Try the pulsar package in your browser

Any scripts or data that you put into this service are public.

pulsar documentation built on Sept. 25, 2023, 1:08 a.m.