impute.boot()
, impute.Lubin()
: Adjusted no-covariate bootstrap
imputation to reflect changes in downstreamed survival::survreg()
.
(thanks, @moosterwegel, #3)
survival::survreg()
ignores intercept for no-covariate bootstrap
imputation; no changes made to covariate bootstrap imputation.verbose = TRUE
in the functions.impute.univariate.bayesian.mi: Changed example so CRAN can run the example faster. Reduced # of chemicals to 4, chain (T) to 100, n.burn to 20
DESCRIPTION FILE
Removed period after “et al.” in description field
Changed required versions of downstream packages to reflect their changes
Updated the email address of the author to match maintenance address.
Rebuilt vignette to remove CRAN error
Check: re-building of vignette outputs
Result: ERROR
Error(s) in re-building vignettes: --- re-building 'README.Rmd' using rmarkdown
ERROR - Error: Found biblatex control file version 3.9, expected version 3.7. This means that your biber (2.16) and biblatex (3.18b) versions are incompatible. See compat matrix in biblatex or biber PDF documentation.
DESCRIPTION
.make.quantile.matrix()
: Adjusted quantile function by adding
optional argument digits = 7
to reflect change in quantile version
in CRAN version 4.0.5. The change does not affect CRAN version 4.0.4
or below.The names of quantile()’s result no longer depend on the global getOption(“digits”), but quantile() gets a new optional argument digits = 7 instead.
estimate
and chemical
from environment in plot.wqs()
.impute.multivariate.bayesian()
: Removed empty details sectionestimate.wqs()
: Can now compare training and validation datasets,
which is commonly done in WQS analysis.plot.wqs()
: Removed defunct filename
argument. Plots are no longer
saved automatically; please save manually using ().impute.multivariate.regress()
: imputes all chemicals jointly
using a multivariate Bayesian regression.do.many.wqs()
:
B
argument to the ...
argument. Should not
impact any code, as it is called within estimate.wqs()
.estimate.wqs()
:
summarize.compare()
and
make.descriptive.tables()
.impute.sub()
: replaced for-loop with much faster
tidyr::replace_na()
.impute.boot()
and impute.Lubin()
: Now uses the survival routines
that have been updated in version 3.plot.wqs()
:
tidyr::pivot_longer()
instead of tidyr::gather()
in
response to update in tidyr package from v. 0.8 to v. 1.0.0. See
vignette("pivot")
and vignette("in-packages")
in tidyr
documentation for more information.ggplot2
layer to make x-axis smaller so you can read
labels on weights histogramcheck_constants()
: Fixed bug that returns error if the
number of bootstraps (B), imputed datasets (K), or length of
chain (T) is 0 imp_cond_MVN
: An accessory function used to impute
conditional truncated multivariate normal used in
impute.multivariate.regress()
. Added condMVNorm & tmvtnorm
packages to DESCRIPTION.formatMedianIQR
: Changed format of median and IQR to
“median[Q1, Q3]”.is.even()
, is.odd()
– now accepts tolerance argument
for consistency with other is...
functions.specify.init()
: change argument to C.replace_na()
: Changes made in impute.sub()
estimate.wqs.formula()
now has a formula capability. Can type in
a full formula and specify column names instead of dividing up the
data into three columns.impute.Lubin()
:
impute.boot
instead.bootstrap_index
element is now factors instead of numbers.
Easier to see what subjects were selected.pool.mi()
:
prt
to print to standard output so that the
pool.mi
object can be read in an understandable fashion.methods
is NOW more robust by adding tolower()
. Now, if
someone writes in all caps, the function still works.mice.df()
is now clearer – only accepts either method to
avoid mistake.IMPORTS
to DEPENDS
for clarity.
As the base R packages are already attached, this should have no
impact on package performance.class(.)==matrix
with is()
, as directed
from
CRAN.check_constants()
: Used sprintf()
for more generic
error returns.check_imputation
: Removed checking Z here. Now Z is
checked in each impute.
.. function.head.array()
: made package for head()
clear by using
utils::head()
.is.even()
, is.odd()
– now accepts tolerance argument
for consistency with other is.
.. functions.combine.AIC()
: removed comma from output that was generated from
format.mean.sd() (Added July 22, 2019)estimate.wqs()
:
if/else
on signal function options for speed.check_wqs_function()
; deleted duplicate check_function()
from before.impute.boot()
:
plot.wqs()
no longer automatically saves the plots to reduce
clutter and save the user’s workspace. However, you can still use
ggsave()
on the output if you wish to save WQS plots. If you
depended on this behavior, you’ll need to condition on
packageVersion("miWQS") > "0.0.0"
.analyze.individually()
does individual chemical analysis. The
outcome is independently regressed on each chemical. Individual
chemical analyses with the outcome can be used to determine whether
the mixture of chemicals is positively or negatively related to the
outcome (the b1.pos
argument in estimate.wqs()
).do.many.wqs()
does many WQS analyses, which is useful in the
second stage of multiple imputation.combine.AIC()
combines AIC results from many WQS analyses,
similar in spirit to pool.mi()
.impute.boot()
performs bootstrapping imputation for many
chemicals, not just one.impute.sub()
imputes the values below the detection limit with
1/sqrt(2) of that’s chemical’s detection limit.cat()
used in the functions are changed to messages message()
so that the user can suppress messages using suppressMessage()
.#>
.estimate.wqs()
B
argument: Documentation is clarified when bootstrapping within
WQS. You now can do WQS regression without bootstrapping, but it
is not recommended.place.bdls.in.Q1
argument now does something. You can set it to
FALSE and regular quantiles are made. Passed to
make.quantile.matrix()
.offset
argument fixes transfer to glm2()
. User should enter
the offset on the normal scale; the logarithm is not taken. It is
passed to glm2()
and glm()
. FROM: The offset
argument in
glm2()
has a default value of 0. The offset value in
estimate.wqs()
by default is a vector of 1’s. NOW: When using
glm2()
, offset argument now takes the logarithm as expected in
all instances, (especially in wqs.fit()
). User does not change
the default of offset value.suppressMessages()
function.wqs.fit()
accessory function instead of code in
estimate.wqs()
.c()
.impute.univariate.bayesian.mi()
function:
T
argument: changes default length of chain to 1,000 in order to
be consistent with other functions.indicator.miss
output now returns as a single number (a sum)
rather than a vector.cov()
function. FROM: The complete.observations
argument was used for
observed X. NOW: standard deviations are calculated based on the
substituted imputed chemical matrix, X, as covariances may not exist
if X has many missing values.initial2
.x.miss.initial
to log.x.miss.initial
.make.quantile.matrix()
:
place.bdls.in.Q1
argument. The default automatically
places any missing values in X placed into the first quantile. We
suggest the user does not specify this argument unless the user
wants to be specific in how missing values in components are
handled. In version 0.0.9, this argument previously had no effect on
how quantiles were made. This argument now has an effect.cut.default(...): 'breaks' are not unique
. We use the
.bincode()
function instead so that ties are handled if they
arise.print.wqs()
now concatenates, instead of prints, the convergence
of the bootstrap samples.simdata87
data:
Z
contains renamed covariate names for clarity.X.true, X.bdl, DL, delta, n0
: all chemical names are
converted to plain text for clarity to be used in R. The “p-p`” are
removed, and the “alpha” and “gamma” are spelled out directly.estimate.wqs()
.estimate.wqs()
clearer.print.wqs()
documentationplot.wqs()
function by using ggplot2 instead of base
plotting in R.check_function()
and randomize.train()
.NEWS.md
file to track changes to the package.