The rand_test
function computes a randomization test for single or multiple
baseline single-case data. The function is based on an algorithm from the
SCRT
package (Bulte & Onghena, 2009, 2012), but rewritten and extended for
the use in AB designs.
rand_test(
data,
dvar,
pvar,
statistic = c("Mean B-A", "Mean A-B", "Median B-A", "Median A-B", "Mean |A-B|",
"Median |A-B|", "SMD hedges", "SMD glass", "W-test", "T-test", "NAP",
"NAP decreasing", "Slope B-A", "Slope A-B"),
statistic_function = NULL,
number = 500,
complete = FALSE,
limit = 5,
startpoints = NA,
exclude.equal = FALSE,
phases = c(1, 2),
graph = FALSE,
output = NULL,
seed = NULL
)
Character string from function call (see
Arguments
above).
Number of single-cases.
Number of data points in phase A.
Number of data points in phase B.
Numeric from function call (see
Arguments
above).
A vector defining the start points passed from the
function call (see Arguments
above).
P-value of the randomization test for the given data.
Sample size of
randomization distribution from function call (see Arguments
above).
Logical argument from function call (see Arguments
above).
Test statistic observed for the given
single-case data. (see statistic
in the Arguments
above.)
Z-value of observed test statistic.
Probability of z-value.
Test statistic distribution from randomized data sets.
Number of possible combinations under the given restrictions.
TRUE
indicates that a corrected number of combinations was used. This happens, if
the number of possible combinations (under the given restrictions) undercuts
the requested number
of combinations.
see argument above
A single-case data frame. See scdf()
to learn about this
format.
Character string with the name of the dependent variable. Defaults to the attributes in the scdf file.
Character string with the name of the phase variable. Defaults to the attributes in the scdf file.
Defines the statistic on which the comparison of phases A
and B is based on. Default setting is statistic = "Mean B-A"
. See
details.
A list with a user defined function to calculate
the statistic. When set, overwrites the statistic
argument. See details.
Sample size of the randomization distribution. The exactness of
the p-value can not exceed \(1/number\) (i.e., number = 100
results in
p-values with an exactness of one percent). Default is number = 500
. For
faster processing use number = 100
. For more precise p-values set number = 1000
).
If TRUE, the distribution is based on a complete permutation of all possible starting combinations. This setting overwrites the number Argument. The default setting is FALSE.
Minimal number of data points per phase in the sample. The first
number refers to the A-phase and the second to the B-phase (e.g., limit = c(5,3)
). If only one number is given, this number is applied to both
phases. Default is limit = 5
.
Alternative to the limit
-parameter startpoints
exactly
defines the possible start points of phase B (e.g., startpoints = 4:9
restricts the phase B start points to measurements 4 to 9. startpoints
overruns the limit
-parameter.
If set to exclude.equal = FALSE
, which is the
default, random distribution values equal to the observed distribution are
counted as null-hypothesis conform. That is, they decrease the probability
of rejecting the null-hypothesis (increase the p-value).
exclude.equal
should be set to TRUE
if you analyse one single-case
design (not a multiple baseline data set) to reach a sufficient power. But
be aware, that it increases the chance of an alpha-error.
A vector of two characters or numbers indicating the two phases
that should be compared. E.g., phases = c("A","C")
or phases = c(2,4)
for comparing the second to the fourth phase. Phases could be combined by
providing a list with two elements. E.g., phases = list(A = c(1,3), B = c(2,4))
will compare phases 1 and 3 (as A) against 2 and 4 (as B). Default
is phases = c(1,2)
.
If graph = TRUE
, a histogram of the resulting distribution is
plotted. It is FALSE
by default. Note: use the more versatile
plot_rand()
function instead.
(deprecated and not implemented)
A seed number for the random generator.
Juergen Wilbert
Use the statistic
argument to choose a predefnied statistic. The
following comparisons are possible:
Mean A-B
: Uses
the difference between the mean of phase A and the mean of phase B. This is
appropriate if a decrease of scores was expected for phase B.
Mean B-A
: Uses the difference between the mean of phase B and
the mean of phase A. This is appropriate if an increase of scores was
expected for phase B.
Mean |A-B|
: Uses the absolute value of
the difference between the means of phases A and B.
Median A-B
: The same as Mean A-B
, but based on the median.
Median B-A
: The same as Mean B-A
, but based on the
median.
SMD hedges / SMD glass
: Standardizes mean difference of B-A
as Hedges's g or Glass' delta.
NAP
: Non-overlap of all pairs.
W-test
: Wilcoxon-test statistic W.
T-test
: T-test statistic t.
Use the statistic_function
argument to proved your own function in a list.
This list must have an element named statistic
with a function that takes
two arguments a
and b
and returns a single numeric value. E.g.
list(statistic = function(a, b) mean(a) - mean(b)
. A second element of the
list is named aggregate
which takes a function with one numeric argument
that returns a numeric argument. This function is used to aggregate the
values of a multiple case design. If you do not provide this element, it uses
the default function(x) sum(x)/length(x)
. The third optional argument is
name
which provides a name for your user function.
Bulte, I., & Onghena, P. (2009). Randomization tests for multiple-baseline designs: An extension of the SCRT-R package. Behavior Research Methods, 41, 477-485.
Bulte, I., & Onghena, P. (2012). SCRT: Single-Case Randomization Tests. Available from: https://CRAN.R-project.org/package=SCRT
## Compute a randomization test on the first case of the byHeart2011 data and include a graph
rand_test(byHeart2011[1], statistic = "Median B-A", graph = TRUE, seed = 123)
## Compute a randomization test on the Grosche2011 data using complete permutation
rand_test(Grosche2011, statistic = "Median B-A", complete = TRUE, limit = 4, seed = 123)
Run the code above in your browser using DataLab