From 7f91a1f0b34c511652f9d8af3d23f5596407b8ca Mon Sep 17 00:00:00 2001 From: Hughes Date: Thu, 13 Feb 2025 13:24:04 -0500 Subject: [PATCH] More accurate naming of survival model option --- R/caribouBayesianPM.R | 26 +++++++++++++------------ R/runScnSet.R | 4 ++-- man/caribouBayesianPM.Rd | 4 ++-- man/runScnSet.Rd | 4 ++-- tests/testthat/test-caribouBayesianPM.R | 8 ++++---- 5 files changed, 24 insertions(+), 22 deletions(-) diff --git a/R/caribouBayesianPM.R b/R/caribouBayesianPM.R index d317839..dc9ac96 100644 --- a/R/caribouBayesianPM.R +++ b/R/caribouBayesianPM.R @@ -41,7 +41,7 @@ #' @param Nthin Thinning rate for the MCMC algorithm. #' @param N0 Initial population size. #' @param survAnalysisMethod Survival analysis method either "KaplanMeier" or -#' "Exponential". The exponential method is only recommended when the number of collared animals (in survData) is small. +#' "Binomial". The KaplanMeier method yields slightly biased survival estimates. #' @param assessmentYrs Number of years over which to assess population growth rate lambda. #' @param inputList an optional list of inputs with names matching the above. If #' an argument is included in this list it will override the named argument. @@ -92,12 +92,12 @@ caribouBayesianPM <- function(survData = system.file("extdata/simSurvData.csv", betaPriors = "default", startYear = NULL, endYear = NULL, Nchains = 4, Niter = 15000, Nburn = 10000, Nthin = 2, N0 = 1000, - survAnalysisMethod = "Exponential", + survAnalysisMethod = "Binomial", assessmentYrs = 1, inputList = list(), saveJAGStxt = tempdir(), quiet = TRUE) { # survData=oo$simSurvObs;ageRatio=oo$ageRatioOut;disturbance=oo$simDisturbance; - # betaPriors="default";startYear = NULL;endYear=NULL;N0=1000;survAnalysisMethod = "KaplanMeier" + # betaPriors="default";startYear = NULL;endYear=NULL;N0=1000;survAnalysisMethod = "Binomial" # Nchains = 2;Niter = 20000;Nburn = 10000;Nthin = 1;assessmentYrs = 3;inputList=list();saveJAGStxt=tempdir();quiet=F # combine defaults in function with inputs from input list @@ -212,18 +212,19 @@ caribouBayesianPM <- function(survData = system.file("extdata/simSurvData.csv", if (nrow(dSubset) == 0) { warning("Collars not present at the start of a year are omitted from survival ", "analysis in that year. There are no years with collars in the first month.") - inp$survAnalysisMethod <- "Exponential" - survData = merge(data.frame(X1=0,X2=0,X3=0,X4=0,X5=0,X6=0,X7=0,X8=0,X9=0,X10=0,X11=0,X12=0,X13=0),data) + inp$survAnalysisMethod <- "Binomial" + survData = merge(data.frame(X1=0,X2=0,X3=0,X4=0,X5=0,X6=0,X7=0,X8=0,X9=0,X10=0,X11=0,X12=0,X13=0),data) %>% relocate(Year,.after=X13) + survData$event=NA;survData$enter=NA }else{ if (nrow(dSubset) == 1) { - warning("Switching to exponential survival analysis method because there is", + warning("Switching to binomial survival analysis method because there is", " only one collared animal.") - inp$survAnalysisMethod <- "Exponential" + inp$survAnalysisMethod <- "Binomial" } if (sum(dSubset$event, na.rm = T) == 0) { - warning("Switching to exponential survival analysis method because there ", + warning("Switching to binomial survival analysis method because there ", "are no recorded deaths.") - inp$survAnalysisMethod <- "Exponential" + inp$survAnalysisMethod <- "Binomial" } if (inp$survAnalysisMethod == "KaplanMeier") { @@ -237,9 +238,9 @@ caribouBayesianPM <- function(survData = system.file("extdata/simSurvData.csv", warning("Years with less than 12 months of collar data are omitted from", " survival analysis. Please ensure there is 12 months of collar ", "data in at least one year.") - warning("Switching to exponential survival analysis method because there ", + warning("Switching to binomial survival analysis method because there ", "are no years with 12 months of collar data.") - inp$survAnalysisMethod <- "Exponential" + inp$survAnalysisMethod <- "Binomial" } } if (inp$survAnalysisMethod == "KaplanMeier") { @@ -287,13 +288,14 @@ caribouBayesianPM <- function(survData = system.file("extdata/simSurvData.csv", } } else { - message("expanding survival record") + message("using Binomial survival model") dExpand <- apply(subset(dSubset, select = c("id", "Year", "event", "enter", "exit")), 1, expandSurvivalRecord) survData <- do.call(rbind, dExpand) survData <- survData %>% group_by(Year) %>% summarise(X1=sum(X1),X2=sum(X2),X3=sum(X3),X4=sum(X4),X5=sum(X5),X6=sum(X6),X7=sum(X7),X8=sum(X8), X9=sum(X9),X10=sum(X10),X11=sum(X11),X12=sum(X12),X13=sum(X13)) %>% relocate(Year,.after=X13) + survData$event=NA;survData$enter=NA } } diff --git a/R/runScnSet.R b/R/runScnSet.R index 153a454..955f19b 100644 --- a/R/runScnSet.R +++ b/R/runScnSet.R @@ -33,11 +33,11 @@ #' Niter = 10, Nburn = 2) -runScnSet <- function(scns, ePars, simNational, survAnalysisMethod = "Exponential", +runScnSet <- function(scns, ePars, simNational, survAnalysisMethod = "Binomial", getKSDists = TRUE, printProgress = FALSE, Niter = formals(caribouBayesianPM)$Niter, Nburn = formals(caribouBayesianPM)$Nburn) { - # ePars=eParsIn;survAnalysisMethod="Exponential";simNational=simBig;getKSDists=T;printProgress=F;Niter = formals(caribouBayesianPM)$Niter;Nburn = formals(caribouBayesianPM)$Nburn + # ePars=eParsIn;survAnalysisMethod="Binomial";simNational=simBig;getKSDists=T;printProgress=F;Niter = formals(caribouBayesianPM)$Niter;Nburn = formals(caribouBayesianPM)$Nburn scns <- getScenarioDefaults(scns) errorLog <- list() for (p in 1:nrow(scns)) { diff --git a/man/caribouBayesianPM.Rd b/man/caribouBayesianPM.Rd index ac051b7..2274cb9 100644 --- a/man/caribouBayesianPM.Rd +++ b/man/caribouBayesianPM.Rd @@ -16,7 +16,7 @@ caribouBayesianPM( Nburn = 10000, Nthin = 2, N0 = 1000, - survAnalysisMethod = "Exponential", + survAnalysisMethod = "Binomial", assessmentYrs = 1, inputList = list(), saveJAGStxt = tempdir(), @@ -52,7 +52,7 @@ period and the end of the projection period.} \item{N0}{Initial population size.} \item{survAnalysisMethod}{Survival analysis method either "KaplanMeier" or -"Exponential". The exponential method is only recommended when the number of collared animals (in survData) is small.} +"Binomial". The KaplanMeier method yields slightly biased survival estimates.} \item{assessmentYrs}{Number of years over which to assess population growth rate lambda.} diff --git a/man/runScnSet.Rd b/man/runScnSet.Rd index 11536d5..bcebb9f 100644 --- a/man/runScnSet.Rd +++ b/man/runScnSet.Rd @@ -8,7 +8,7 @@ runScnSet( scns, ePars, simNational, - survAnalysisMethod = "Exponential", + survAnalysisMethod = "Binomial", getKSDists = TRUE, printProgress = FALSE, Niter = formals(caribouBayesianPM)$Niter, @@ -26,7 +26,7 @@ runScnSet( \code{\link[=getSimsNational]{getSimsNational()}}} \item{survAnalysisMethod}{Survival analysis method either "KaplanMeier" or -"Exponential". The exponential method is only recommended when the number of collared animals (in survData) is small.} +"Binomial". The KaplanMeier method yields slightly biased survival estimates.} \item{getKSDists}{logical. Should Kolmogorov–Smirnov distances be calculated?} diff --git a/tests/testthat/test-caribouBayesianPM.R b/tests/testthat/test-caribouBayesianPM.R index 289d833..4ef9713 100644 --- a/tests/testthat/test-caribouBayesianPM.R +++ b/tests/testthat/test-caribouBayesianPM.R @@ -110,18 +110,18 @@ test_that("input tables are as expected",{ test_that("survAnalysisMethod works", { expect_message(out1 <- caribouBayesianPM(startYear = 2009, Nchains = 1, Niter = 100, Nburn = 10, Nthin = 2), - "using Kaplan-Meier survival model") + "using Binomial survival model") expect_s3_class(out1$result, "rjags") expect_message(out2 <- caribouBayesianPM(startYear = 2009, Nchains = 1, Niter = 100, Nburn = 10, - Nthin = 2, survAnalysisMethod = "Exponential"), - "expanding survival record") + Nthin = 2, survAnalysisMethod = "KaplanMeier"), + "using Kaplan-Meier survival model") expect_s3_class(out2$result, "rjags") expect_message(out3 <- caribouBayesianPM(startYear = 2009, Nchains = 1, Niter = 100, Nburn = 10, Nthin = 2, survAnalysisMethod = "other"), - "expanding survival record") + "using Binomial survival model") expect_s3_class(out3$result, "rjags") })