data to ameras_simulated,
enabled lazy loading, and expanded its documentation.amerasfit methods now warn about unused arguments passed through
..., helping detect misspelled or unsupported arguments.ERROR: and WARNING: prefixes.?ameras with dedicated formula-syntax and outcome-model sections,
documented restrictions on special formula terms, and added a more complete
example with links to the relevant vignettes.optim.method.runtime
field. Fitting, confidence interval, and total computation times remain
available through timing. Fitted objects from earlier versions that
contain only runtime remain supported.NaN, resulting in an error.confint() would print intervals for dose-related parameters only. confint() now prints intervals for all parameters.Surv(entry, exit, status). ameras() now checks the observed entry and exit time values and errors when any subject has entry > exit.strata() terms that use a matched set column name other than setnr.rmvnorm() error. Such realizations are now excluded with a warning before FMA weights and samples are computed.included.realizations.BMA leaves fewer than two dose realizations, since one-realization analyses should use RC.entry == exit, which have zero follow-up time under the entry < t <= exit risk-set convention.NA with diagnostic warnings when a bound cannot be reliably solved.modifier = ~ M for reference-plus-contrast coding and modifier = ~ 0 + M or modifier = ~ M - 1 for subgroup-specific dose-effect parameters. Formula modifiers support binary numeric/logical variables and factors with treatment coding based on the factor level order. The older modifier = M1 + M2 syntax is deprecated.ameras() now supports a na.action argument for model-input missing values after formula terms have been expanded. By default it follows getOption("na.action") (typically na.omit), stores the omitted-row action on the fitted object, and reapplies the same policy when data are supplied later for objects fitted with keep.data=FALSE. na.fail and na.pass are also supported. na.exclude is accepted for fitting, but residuals and diagnostic plots are returned for the fitted rows rather than padded back to the originally supplied row count.future framework via future.apply when available. Users can enable parallel execution by setting a future plan before calling ameras(), and future.chunk.size.FMA controls the chunk size passed to future.apply::future_lapply().splines::ns() and splines::bs(). For keep.data=FALSE fits, later calls that use supplied data apply the same expanded covariate columns as the original fit.convergence() for amerasfit objects to extract or recompute optimizer gradient diagnostics for RC, ERC, and MCML fits.dose_lrt() for global and individual likelihood-ratio tests of dose-related parameters in RC, ERC, and MCML fits.future framework.optim() reports convergence but optimizer diagnostics suggest the solution may not be fully stationary. When the Hessian is usable, the optimizer warning uses the approximate remaining objective improvement on both absolute and relative scales.summary() now reports row counts in the order applied during fitting: supplied rows, nonzero omissions by na.action, nonzero family-specific exclusions, and rows used for fitting when this differs from the supplied row count. For conditional logistic regression, it reports rows excluded because they belong to uninformative matched sets. For proportional hazards regression with entry times, it reports rows excluded because they have zero follow-up time.summary() and confint(): columns pval.lower and pval.upper for profile likelihood intervals are no longer printed. They are still accessible within the fit object, and warnings are still printed in case an inaccurate profile likelihood bound is suspected.runtime field is retained as a compatibility summary and is updated when confint() adds confidence interval timing.rcdose_ameras.inpar check in ameras() to generate an
error when it should not.NULL for generated samples when all individual fits were excluded.keep.data=FALSE and passing data to
confint() failed a validation check when effect modifiers were
present.isSymmetric check for FMA variance matrices, which
caused platform-dependent differences in included realizations due
to numerical differences between Cholesky and solve-based
computations. The Cholesky-based variance computation now used
guarantees exact symmetry without an explicit check.confint() no longer recomputes confidence intervals by default if
they have already been computed. Use force=TRUE to recompute with
different settings. confint() now also prints the computed
confidence intervals when called with print=TRUE (default).vcov, computed from the model-averaged posterior samples.dosevars variable defined locally (e.g.,
within a simulation script) through all_of(dosevars) in the
formula passed to ameras().residuals(): computes Pearson, deviance, and response residuals
for all supported families, and Schoenfeld residuals for
family="prophaz", supporting both raw and scaled versions
following Grambsch and Therneau (1994).plot(): diagnostic plots including residuals versus fitted values
and normal Q-Q plots. For family="prophaz", Schoenfeld residual
plots are produced to assess the proportional hazards assumption.vcov(): extracts the variance-covariance matrix of parameter
estimates for one or more estimation methods.included_realizations(): returns the indices of realizations
included in FMA and BMA model averaging.Rhat(): returns the Gelman-Rubin convergence diagnostics and
effective sample sizes for BMA results.summary_table(): extracts the summary table from a
summary.amerasfit object as a data frame, for programmatic
access to parameter estimates, standard errors, and confidence
intervals.replicate with realization, including in names of arguments and output. As a result, the argument included.replicates.BMA is now deprecated and will be removed in version 1.0.0. Use included.realizations.BMA instead.ecdfplot() now has an argument show.mean (default TRUE) to toggle whether to plot curves for the distribution of the mean doses across realizations and individuals.Shortened column names CI.lowerbound and CI.upperbound in the summary() output to CI.lower and CI.upper, respectively.
Substantially increased ERC computation speed for the clogit and prophaz families.
Confidence intervals are no longer computed inside ameras(). The
arguments CI, params.profCI, maxit.profCI, and tol.profCI are
deprecated and will be removed in version 1.0.0. Use the new
confint() method instead. See ?confint.amerasfit for details.
The direct argument interface to ameras() is deprecated and will be
removed in version 1.0.0. The arguments Y, dosevars, doseRRmod,
deg, M, X, offset, entry, exit, and setnr are
deprecated. Please use the new formula interface instead.
See ?ameras for details.
Implemented a formula interface for ameras(). The dose variable is
specified using the special dose() term, which supports tidyselect
syntax for selecting dose columns and allows specifying the
dose-response model and effect modifiers directly in the formula.
See ?ameras for details and examples.
Added confint.amerasfit() for computing confidence intervals
separately from model fitting. See ?confint.amerasfit for details.
Added function ecdfplot() for exploratory visualization of the dose
realizations before model fitting.
Reduced memory usage for large datasets.
summary.amerasfit() now only includes confidence interval columns
after they have been computed via confint(). Before calling
confint(), a note is printed directing the user to compute
confidence intervals.
Profile likelihood confidence interval bounds now include p-values in the summary table, making it easier to assess the accuracy of the root-finding algorithm.
Removed memoization of the profile likelihood function as it was causing issues and likely not providing much benefit.
keep.data added to ameras() (default TRUE). When TRUE, the
data are stored on the returned amerasfit object, which is required
for profile likelihood confidence interval computation via confint()
without re-supplying the data. Set to FALSE to reduce memory usage
for large datasets, in which case the data must be supplied to
confint() explicitly. See ?ameras and ?confint.amerasfit for details.