Type: | Package |
Title: | Statistical Tests of Familial Hypotheses |
Version: | 1.0.7 |
Description: | Provides functionality for testing familial hypotheses. Supports testing centers belonging to the Huber family. Testing is carried out using the Bayesian bootstrap. One- and two-sample tests are supported, as are directional tests. Methods for visualizing output are provided. |
URL: | https://github.com/ryan-thompson/familial |
BugReports: | https://github.com/ryan-thompson/familial/issues |
License: | GPL-3 |
Encoding: | UTF-8 |
Depends: | R (≥ 4.1.0) |
Imports: | parallel, ggplot2, DepthProc, matrixStats |
RoxygenNote: | 7.3.2 |
Suggests: | testthat, knitr, rmarkdown, MASS |
VignetteBuilder: | knitr |
Config/testthat/edition: | 3 |
NeedsCompilation: | no |
Packaged: | 2024-12-10 03:39:42 UTC; ryan |
Author: | Ryan Thompson |
Maintainer: | Ryan Thompson <ryan.thompson-1@uts.edu.au> |
Repository: | CRAN |
Date/Publication: | 2024-12-10 04:00:02 UTC |
Bayesian bootstrap
Description
Performs a Bayesian bootstrap for a statistic defined via a suitable function.
Usage
bayes.boot(x, fun, nboot = 1000, cluster = NULL, ...)
Arguments
x |
a numeric vector to be passed as the first argument to |
fun |
the function to bootstrap; must accept data |
nboot |
the number of bootstraps to perform |
cluster |
an optional cluster for running bootstraps in parallel; must be set up using
|
... |
any other arguments for |
Value
An object of class bayes.boot
; a data frame with the following columns:
boot.id |
the bootstrap iteration index |
... |
any columns returned by |
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Examples
set.seed(123)
boot <- bayes.boot(MASS::galaxies, fun = fit.family, nboot = 100)
head(boot)
Center test
Description
Performs a one- or two-sample test for a family of centers.
Usage
center.test(
x,
y = NULL,
family = "huber",
alternative = c("two.sided", "less", "greater"),
mu = 0,
paired = FALSE,
nboot = 1000,
loss = NULL,
cluster = NULL,
...
)
Arguments
x |
a numeric vector of data |
y |
an optional numeric vector of data |
family |
the family of centers; currently only allows 'huber' for Huber family |
alternative |
the form of the alternative hypothesis; must be one of 'two.sided' (default), 'greater', or 'less' |
mu |
the null value of the center for a one-sample test, or the null value of the center of differences for a paired two-sample test, or the null value of the difference of centers for an independent two-sample test; can be an interval |
paired |
a logical indicating whether to treat |
nboot |
the number of bootstraps to perform |
loss |
an optional c×2 matrix of losses incurred from an incorrect decision, where c is the number of candidate choices (typically c=3: H0, H1, or indeterminate) |
cluster |
an optional cluster for running bootstraps in parallel; must be set up using
|
... |
any other arguments |
Details
Uses the Bayesian bootstrap to compute posterior probabilities for the hypotheses
\mathrm{H}_0:\mu(\lambda)=\mu_0
for some \lambda\in\Lambda
vs.
\mathrm{H}_1:\mu(\lambda)\neq\mu_0
for all \lambda\in\Lambda
,
where \{\mu(\lambda):\lambda\in\Lambda\}
is a family of centers.
The default loss matrix results in a decision whenever the posterior probability
for one of the hypotheses is greater than 0.95 and otherwise is indeterminate.
Value
An object of class center.test
; a list with the following components:
expected.loss |
the expected loss, calculated by post-multiplying |
decision |
the optimal decision given the expected loss |
loss |
the loss matrix |
prob |
the estimated posterior probabilities of the null and alternative |
boot |
the bootstrap output from |
x |
the |
y |
the |
mu |
the |
family |
the |
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
References
Thompson, R., Forbes, C. S., MacEachern, S. N., and Peruggia, M. (2024). 'Familial inference: Tests for hypotheses on a family of centres'. Biometrika 111.3, pp. 1029–1045.
Examples
set.seed(123)
test <- center.test(MASS::galaxies, mu = 21000, nboot = 100)
print(test)
plot(test)
cl <- parallel::makeCluster(2)
test <- center.test(MASS::galaxies, mu = 21000, nboot = 100, cluster = cl)
parallel::stopCluster(cl)
print(test)
Fit family
Description
Fits a family of centers.
Usage
fit.family(
x,
w = rep(1, length(x)),
family = "huber",
spread.fun = weighted.mad,
eps = .Machine$double.eps
)
Arguments
x |
a numeric vector of data |
w |
a numeric vector of weights |
family |
the location family; currently only allows 'huber' for Huber family |
spread.fun |
a function used for the spread of |
eps |
a numerical tolerance parameter |
Value
An object of class fit.family
; a data frame with the following columns:
mu |
the fitted values |
lambda |
the thresholding parameter |
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Examples
fit <- fit.family(MASS::galaxies)
plot(fit)
Plot function for center.test
object
Description
Plot the posterior distribution for the family of centers using a functional box plot.
Usage
## S3 method for class 'center.test'
plot(x, band = c(0.5, 0.75, 0.95), ninterp = 25, ...)
Arguments
x |
an object of class |
band |
a vector of band limits for the functional box plot |
ninterp |
the number of interpolation points for the functional box plot; more points lead to finer resolution of the plot at the expense of additional computation |
... |
any other arguments |
Value
A plot of the posterior distribution.
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Plot function for fit.family
object
Description
Plot a fitted family.
Usage
## S3 method for class 'fit.family'
plot(x, y = NULL, ...)
Arguments
x |
an object of class |
y |
an object of class |
... |
any other arguments |
Value
A plot of the fitted family.
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Print function for center.test
object
Description
Print objects of class center.test
.
Usage
## S3 method for class 'center.test'
print(x, ...)
Arguments
x |
an object of class |
... |
any other arguments |
Value
The argument x
.
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Uniform Dirichlet distribution
Description
Random number generation for the uniform Dirichlet distribution (having all concentration parameters set to one).
Usage
rudirichlet(n, d)
Arguments
n |
the number of observations |
d |
the number of dimensions |
Value
A matrix; each row is a random draw and each column is a dimension.
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>
Weighted statistics
Description
Assorted weighted statistics unavailable in base R.
Usage
weighted.median(x, w)
weighted.mad(x, w)
Arguments
x |
a numeric vector of data |
w |
a numeric vector of weights |
Value
A length-one numeric vector.
Author(s)
Ryan Thompson <ryan.thompson-1@uts.edu.au>