Run function nestorFit on a list of initial cliques using parallel computation (mclapply)

List.nestorFit(
  cliqueList,
  sigma_O,
  MO,
  SO,
  r,
  alpha = 0.1,
  cores = 1,
  maxIter = 20,
  eps = 0.001,
  trackJ = FALSE
)

Arguments

cliqueList

List containing all initial cliques to be tested.

sigma_O

Result of PLN estimation: variance covariance matrix of observed data.

MO

Result of PLN estimation: means matrix of observed data.

SO

Result of PLN estimation: marginal variances matrix of observed data.

r

Number of hidden variables.

alpha

Tempering parameter.

cores

Number of cores for parallel computation (uses mclapply, not available for Windows).

maxIter

Maximal number of iterations of the algorithm.

eps

Convergence precision parameter.

trackJ

Boolean for the lower bound estimation at each parameter update instead of each step.

Value

A list containing the fit of nestorFit for every clique contained in cliqueList.

Examples

data=generate_missing_data(n=100,p=10,r=1,type="scale-free", plot=FALSE) PLNfit<-norm_PLN(data$Y) MO<-PLNfit$MO SO<-PLNfit$SO sigma_O=PLNfit$sigma_O #-- find a list of initial cliques findcliqueList=boot_FitSparsePCA(MO, B=5, r=1) cliqueList=findcliqueList$cliqueList length(cliqueList)
#> [1] 3
#-- run List.nestorFit fitList=List.nestorFit(cliqueList, sigma_O, MO,SO, r=1) length(fitList)
#> [1] 3
str(fitList[[1]])
#> List of 12 #> $ M : num [1:100, 1:11] 1.099 -0.283 0.442 -0.242 -1.104 ... #> $ S : num [1:100, 1:11] 0.0441 0.124 0.0751 0.1209 0.1907 ... #> $ Pg : num [1:11, 1:11] 0.0 0.0 0.0 3.6e-11 0.0 ... #> $ Wg : num [1:11, 1:11] 0.00 0.00 0.00 1.71e-07 0.00 ... #> $ W : num [1:11, 1:11] 0.00 0.00 0.00 5.82e-07 0.00 ... #> $ Omega : num [1:11, 1:11] 3.664 -0.402 1.341 -0.404 -0.666 ... #> $ lowbound :'data.frame': 21 obs. of 5 variables: #> ..$ J : num [1:21] -638 -613 -571 -546 -540 ... #> ..$ T1 : num [1:21] -984 -958 -912 -885 -877 ... #> ..$ T2 : num [1:21] -1.1597 -0.3514 -0.193 -0.1224 -0.0262 ... #> ..$ T3 : num [1:21] 347 345 342 339 337 ... #> ..$ parameter: chr [1:21] "complete" "complete" "complete" "complete" ... #> $ features :'data.frame': 20 obs. of 4 variables: #> ..$ diffPg : num [1:20] 0.5 0.322 0.687 0.289 0.071 ... #> ..$ diffW : num [1:20] 2430 42547 746791 4198378 33725450 ... #> ..$ diffOmega: num [1:20] 1.357 0.468 0.336 0.388 0.263 ... #> ..$ diffWg : num [1:20] 1.02e+10 5.54e+10 8.84e+13 4.96e+16 4.61e+18 ... #> $ finalIter: num 20 #> $ time : 'difftime' num 0.948529958724976 #> ..- attr(*, "units")= chr "secs" #> $ max.prec : logi FALSE #> $ clique :List of 1 #> ..$ : int [1:7] 1 2 3 5 6 7 10