Skip to content

Commit

Permalink
fixing problem with dorng
Browse files Browse the repository at this point in the history
  • Loading branch information
doserjef committed Dec 13, 2024
1 parent e251a2b commit 5a77298
Show file tree
Hide file tree
Showing 24 changed files with 205 additions and 284 deletions.
3 changes: 1 addition & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ URL: https://www.doserlab.com/files/spoccupancy-web,
https://github.com/biodiverse/spOccupancy
BugReports: https://github.com/biodiverse/spOccupancy/issues
Depends: R (>= 3.5.0)
Imports: stats, coda, abind, RANN, lme4, foreach, doParallel, doRNG,
parallel, spAbundance, methods
Imports: stats, coda, abind, RANN, lme4, foreach, doParallel, spAbundance, methods
Suggests: testthat
NeedsCompilation: yes
2 changes: 0 additions & 2 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,6 @@ importFrom("abind", "abind")
importFrom("RANN", "nn2")
importFrom("lme4", "findbars", "mkReTrms", "nobars")
importFrom("foreach", "foreach", "%do%", "%dopar%")
importFrom("doRNG", "%dorng%")
importFrom("doParallel", "registerDoParallel", "stopImplicitCluster")
importFrom("parallel", "makePSOCKcluster", "stopCluster")
importFrom("methods", "is")
importFrom("spAbundance", "msAbund")
10 changes: 3 additions & 7 deletions R/PGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -785,9 +785,8 @@ if (length(sigma.sq.p.inits) != p.det.re) {
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -986,10 +985,7 @@ if (length(sigma.sq.p.inits) != p.det.re) {
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}
class(out) <- "PGOcc"
out$run.time <- proc.time() - ptm
Expand Down
255 changes: 125 additions & 130 deletions R/intPGOcc.R

Large diffs are not rendered by default.

10 changes: 3 additions & 7 deletions R/lfJSDM.R
Original file line number Diff line number Diff line change
Expand Up @@ -660,9 +660,8 @@ lfJSDM <- function(formula, data, inits, priors, n.factors, n.samples,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
y.fit <- c(y.big[, -curr.set, drop = FALSE])
y.fit <- y.fit[!is.na(y.fit)]
Expand Down Expand Up @@ -797,10 +796,7 @@ lfJSDM <- function(formula, data, inits, priors, n.factors, n.samples,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}

class(out) <- "lfJSDM"
Expand Down
10 changes: 3 additions & 7 deletions R/lfMsPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1113,9 +1113,8 @@ lfMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -1350,10 +1349,7 @@ lfMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}

class(out) <- "lfMsPGOcc"
Expand Down
10 changes: 3 additions & 7 deletions R/msPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1022,9 +1022,8 @@ msPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -1252,10 +1251,7 @@ msPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}
class(out) <- "msPGOcc"
out$run.time <- proc.time() - ptm
Expand Down
10 changes: 3 additions & 7 deletions R/sfJSDM.R
Original file line number Diff line number Diff line change
Expand Up @@ -1247,9 +1247,8 @@ sfJSDM <- function(formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
y.fit <- c(y.big[, -curr.set, drop = FALSE])
y.fit <- y.fit[!is.na(y.fit)]
Expand Down Expand Up @@ -1443,10 +1442,7 @@ sfJSDM <- function(formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}

class(out) <- "sfJSDM"
Expand Down
10 changes: 3 additions & 7 deletions R/sfMsPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1520,9 +1520,8 @@ sfMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J.w)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set.small <- sort(sites.random[sites.k.fold[[i]]])
curr.set <- which(grid.index.r %in% curr.set.small)
if (binom) {
Expand Down Expand Up @@ -1818,10 +1817,7 @@ sfMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}

class(out) <- "sfMsPGOcc"
Expand Down
20 changes: 6 additions & 14 deletions R/spIntPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1241,9 +1241,8 @@ spIntPGOcc <- function(occ.formula, det.formula, data, inits, priors,
sites.random <- sample(1:J)
}
sites.k.fold <- split(sites.random, rep(1:k.fold, length.out = length(sites.random)))
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.k.fold[[i]])
curr.set.pred <- curr.set
# curr.set.fit are the rows of X.fit that are included in the fitted model
Expand Down Expand Up @@ -1589,10 +1588,7 @@ spIntPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}
} else {

Expand Down Expand Up @@ -1917,9 +1913,8 @@ spIntPGOcc <- function(occ.formula, det.formula, data, inits, priors,
sites.random <- sample(1:J)
}
sites.k.fold <- split(sites.random, rep(1:k.fold, length.out = length(sites.random)))
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.k.fold[[i]])
curr.set.pred <- curr.set
# curr.set.fit are the rows of X.fit that are included in the fitted model
Expand Down Expand Up @@ -2289,10 +2284,7 @@ spIntPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
}
}
class(out) <- "spIntPGOcc"
Expand Down
20 changes: 6 additions & 14 deletions R/spMsPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1404,9 +1404,8 @@ spMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -1653,10 +1652,7 @@ spMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # Cross-validation
} else {

Expand Down Expand Up @@ -2042,9 +2038,8 @@ spMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = "+") %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -2317,10 +2312,7 @@ spMsPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # Cross-validation
} # NNGP
class(out) <- "spMsPGOcc"
Expand Down
19 changes: 5 additions & 14 deletions R/spPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1154,9 +1154,8 @@ spPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
if (binom) {
y.indx <- !(1:J %in% curr.set)
Expand Down Expand Up @@ -1373,10 +1372,7 @@ spPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # cross-validation

} else {
Expand Down Expand Up @@ -1705,9 +1701,8 @@ spPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J.w)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set.small <- sort(sites.random[sites.k.fold[[i]]])
curr.set <- which(grid.index.r %in% curr.set.small)
if (binom) {
Expand Down Expand Up @@ -1963,10 +1958,6 @@ spPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
} # cross-validation
} # NNGP or GP
class(out) <- "spPGOcc"
Expand Down
10 changes: 3 additions & 7 deletions R/stPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1365,9 +1365,8 @@ stPGOcc <- function(occ.formula, det.formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J.w)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set.small <- sort(sites.random[sites.k.fold[[i]]])
curr.set <- which(grid.index.r %in% curr.set.small)
y.indx <- !((z.long.site.indx + 1) %in% curr.set)
Expand Down Expand Up @@ -1634,10 +1633,7 @@ stPGOcc <- function(occ.formula, det.formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # cross-validation
} # NNGP
class(out) <- "stPGOcc"
Expand Down
10 changes: 3 additions & 7 deletions R/svcPGBinom.R
Original file line number Diff line number Diff line change
Expand Up @@ -909,9 +909,8 @@ svcPGBinom <- function(formula, data, inits, priors, tuning,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
y.fit <- y[-curr.set]
y.0 <- y[curr.set]
Expand Down Expand Up @@ -1065,10 +1064,7 @@ svcPGBinom <- function(formula, data, inits, priors, tuning,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # cross-validation
} # NNGP or GP
class(out) <- "svcPGBinom"
Expand Down
9 changes: 3 additions & 6 deletions R/svcPGOcc.R
Original file line number Diff line number Diff line change
Expand Up @@ -1296,8 +1296,8 @@ svcPGOcc <- function(occ.formula, det.formula, data, inits, priors, tuning,
sites.random <- sample(1:J.w)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set.small <- sort(sites.random[sites.k.fold[[i]]])
curr.set <- which(grid.index.r %in% curr.set.small)
if (binom) {
Expand Down Expand Up @@ -1560,10 +1560,7 @@ svcPGOcc <- function(occ.formula, det.formula, data, inits, priors, tuning,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # cross-validation
} # NNGP or GP
class(out) <- "svcPGOcc"
Expand Down
10 changes: 3 additions & 7 deletions R/svcTPGBinom.R
Original file line number Diff line number Diff line change
Expand Up @@ -1011,9 +1011,8 @@ svcTPGBinom <- function(formula, data, inits, priors,
# Number of sites in each hold out data set.
sites.random <- sample(1:J)
sites.k.fold <- split(sites.random, sites.random %% k.fold)
par.k <- parallel::makePSOCKcluster(k.fold.threads)
registerDoParallel(par.k)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dorng% {
registerDoParallel(k.fold.threads)
model.deviance <- foreach (i = 1:k.fold, .combine = sum) %dopar% {
curr.set <- sort(sites.random[sites.k.fold[[i]]])
year.indx <- !((z.site.indx + 1) %in% curr.set)
y.fit <- y[year.indx]
Expand Down Expand Up @@ -1200,10 +1199,7 @@ svcTPGBinom <- function(formula, data, inits, priors,
model.deviance <- -2 * model.deviance
# Return objects from cross-validation
out$k.fold.deviance <- model.deviance
parallel::stopCluster(par.k)
# Remove attributes from doRNG
attr(out$k.fold.deviance, 'rng') <- NULL
attr(out$k.fold.deviance, 'doRNG_version') <- NULL
stopImplicitCluster()
} # cross-validation
} # NNGP
class(out) <- "svcTPGBinom"
Expand Down
Loading

0 comments on commit 5a77298

Please sign in to comment.