Improve a check for the fit function. (0.2.1.2)
Added support for estimating the power of SAM
(structural-after-measurement) by
lavaan::sam() if manymome 0.3.4.25
or above is installed.
(0.2.1.3)
power4test(), x_from_power(), and Related FunctionsAdded an argument rejection_rates_args
to power4test(). When calling
power4test(), users
can in advance some settings for
rejection rates, such as collapsing
all tests into one. They will be used
when calling rejection_rates(). They
will also be stored internally, and used
by power4test_by_n(), x_from_power(),
and similar functions that used a
power4test object as an input.
(0.1.1.39)
Updated x_from_power() and related
functions to allow users specifying
how tests will be collapsed ("none"
is not allowed), by setting the
argument rejection_rates_args.
(0.1.1.39, 0.1.1.41)
To simplify the workflows for some common mediation models, a set of "quick" functions have been added. Users can do common tasks using just one function.
Added q_power_mediation() and
friends for common mediation models.
Users can do most steps in one call.
(0.1.1.18, 0.1.1.19)
Updated the quick functions
(q_power_mediation() and friends)
to have one more mode, "n".
Probabilistic bisection is the default
algorithm for this mode. Other methods
have been updated for this mode.
(0.1.1.56)
Changed the default method for
rejection rate confidence intervals
to Wilson's (1927) method.
For backward compatibility, use
options(power4mome.ci_method = "norm")
to set the default method to
normal approximation. (0.1.1.2)
Updated summarize_tests() and
rejection_rates() to use the
extrapolation method by Boos and
Zhang (2000) if the number of
resamples for bootstrapping or
Monte Carlo is of the supported
values. (0.1.1.5, 0.1.1.6, 0.1.1.7)
Added merge_all_tests to
rejection_rates() to support
merging all tests into one. The argument
collapse can then be used for collapsing
several different tests, not just for
one test with several results.
(0.1.1.28)
Added the p_adjust_method argument
to some tests, as well as the
rejection_rates method and
summarize_tests(). Users can adjust
p-values using p.adjust() when
there are more than one test in a
test function set to test_fun,
or when merging several tests
in summarize_tests(). This feature
is used to estimate power when
multiple-comparison adjustment is
used, such as false discover rate (FDR)
or Bonferroni correction.
(0.1.1.31)
Added two levels of effects, sm
for small-to-moderate, and ml for
moderate-to-large. (0.1.1.11)
Added loading_difference and
reference for sim_data(). The population
standardized factor loadings of indicators
of a factor can have different loadings,
and the first indicator (the default
reference indicator) can be the indicator
with the strongest, weakest, or medium
loadings. (0.1.1.70)
Added the test_method argument for
tests of indirect effects and their
variants to use asymmetric p-values
to do the tests. This change is
for using the efficient method
by Boos and Zhang (2000) to estimate
the rejection rates for resampling
methods. (0.1.1.3)
Updated test_k_indirect_effects()
to support computing and testing
the total indirect effect.
(0.1.1.65)
When calling the function power4test(),
the generated data can now be further
processed by data processors: functions
to manipulate the generated data, such
as introducing missing values or computing
scale scores. Some built-in processors
are included, but user-supplied functions
can also be used.
Added scale_scores()
for replacing the indicator scores by
the corresponding scale scores
before fitting a model. This allows
estimating power when the data generating
model is a latent factor model with
indicators but the model will be fitted
to the scale scores instead of the indicators.
(0.1.1.43)
Added missing_values() for generating
missing values. This allows sample size
determination that takes into account
probable missing data. This also allows
comparing the levels of power between
two different methods to handle missing
data, such as full information maximum
likelihood versus listwise deletion.
(0.1.1.66)
Added ordinal_variables() for
converting continuous indicator variables
to ordinal variables. This allows
estimating power when the indicators
are ordinal variables, such as binary
items or 5-point Likert scales. This also
allows comparing the levels of power
between different numbers of
response options.
(0.1.1.67, 0.1.1.69)
The argument sim_data_name of
process_data is now default to
"data". It is not a required
argument. (0.1.1.43)
Support for multigroup models have been substantially improved. Users can generate data from a multigroup models. Some tests can also be used for estimating power in detecting group differences, such as the group difference in an indirect effect.
Added n_ratio to power4test() and
related functions to supporting
controlling the sample sizes of
multigroup models using one single
value for n. This allows functions
such as n_from_power() and
n_region_from_power() to support
multigroup models.
(0.1.1.44)
test_cond_indirect() and
test_cond_indirect_effects() now
support multigroup models, although
test_cond_indirect_effects() only
support either a path with moderators
(wlevels) or a path between groups,
but not both.
(0.1.1.45)
Updated test_cond_indirect_effects()
to support computing and testing
group differences in indirect effects
for multigroup models.
(0.1.1.46)
Updated test_parameters() to support
doing likelihood ratio tests to
test constraining pairs of parameters
in multigroup models, by using the
argument compare_groups.
(0.1.1.47)
Added the argument exclude_var to
test_parameters() to exclude
variances and error variances,
useful for multigroup models.
(0.1.1.47)
Updated power4test() to support
updating a parameter in one group
when the population model is a
multigroup model. Use "y ~ x.g2"
to denote "y ~ x" in Group 2.
If the suffix is omitted, the parameter
is assumed to be in Group 1.
The function power4test_by_es() now
also support multigroup models due to
this change.
(0.1.1.48)
Added test_group_equal() for testing
equality constraints between groups.
(0.1.1.49)
If the model is a multigroup model,
descriptive statistics for the
generated data are printed by
group, using psych::describeBy().
(0.1.1.76)
The probabilistic bisection algorithm
proposed by Waeber et al. (2013) has
been added. For some scenarios, it allows
for a more efficient search for a
sample size with sufficient power, especially
when a high precision is desired (by
using a large value of nrep).
"probabilistic_bisection" for
x_from_power() and friends.
(0.1.1.51)Change the default of test_long
to TRUE for the print method
of power4test and related objects.
(0.1.1.41)
For some functions, nrep will be included
in the output if its values vary across
rows. (0.1.1.57)
The default values of n of q-functions
now depends on the mode and algorithm.
(0.1.1.57)
Added some helpers, R_for_bz()
and Rs_bz_supported(),
for users to use
the Boos-Zhang-2000 method without
remembering the number of resamples
supported. (0.1.1.61)
Updated the quick functions
(q_power_mediation() and friends).
When mode is "n" or "region",
it is optional to set n. If not
set, it will be determined internally.
(0.1.1.63)
Added the rejection_rates() method to
x_from_power, n_region_from_power,
and q_power_mediation objects.
(0.1.1.71)
Moved delta_tol and last_k to
variants, such that users can change
them through control when calling
x_from_power() and friends.
(0.1.1.72)
Changed the default algorithms to be
used in x_from_power().
(0.1.1.74)
Response proportions will be printed
with data_long = TRUE if a variable
has 10 or fewer unique values
(e.g., ordinal variables),
using psych::responseFrequency().
(0.1.1.77)
Improved the function for extending the initial interval before doing a bisection search. (0.1.1.1)
Optimized the search by bisection, to make use of value already tried and store all values tried. (0.1.1.14)
The bisection algorithm has been improved in handling unusual intervals. (0.1.1.21)
Skipped the check for combining objects in the bisection algorithm because they must be identical in the model. (0.1.1.23)
Updated the bisection algorithm to
use power_curve() to assist finding
the solution. If estimated solution
inside an interval, use it instead of
the mean. (0.1.1.37)
More checks for the solution in the bisection algorithm. When extending an interval, the power curve will also be used. (0.1.1.38)
goal = "close_enough"
and all three types of what
("point", "lb", and "ub").
(0.1.1.34)Adjust the initial_nrep in
probabilistic bisection such that
the rejection rate will not be exactly
equal to the target power.
(0.1.1.52)
For probabilistic bisection, the initial interval will no longer be adjusted. This algorithm should be used with a wide enough initial interval because the interval will not be adjusted during the search (for now). (0.1.1.56)
Increased delta_tol fo PBA (2 for n
and .002 for es).
(0.1.1.57)
Added pba_diagnosis() to generate
plots related to the search history
of probabilistic bisection algorithm.
For advanced users and developers.
(0.1.1.58, 0.1.1.62)
Updated the help page of x_from_power()
to describe the probabilistic bisection
method.
(0.1.1.60)
Updated test functions that used
manymome to store the number of
bootstrap or Monte Carlo samples
and the number of estimates less than
zero. Used by the Boos-Zhang-2000
method. (0.1.1.4)
Updated all test functions to include p-values in the output. (0.1.1.30)
Test functions using manymome will
now
automatically use "pvalues" as the
test method if R is a value supported
by the Boos-Zhang-method.
(0.1.1.53)
Improved x_from_power() and friends
(e.g., n_from_power() and
n_region_from_power()) to make use
of previous trials. (0.1.1.13)
x_from_power() now detects whether
a test has more than one result (e.g.,
testing two parameters but omnibus
is "none"). If yes, it will throw
an error. (0.1.1.10)
Updated extend_interval() to handle
intervals with nearly equal function
values. (0.1.1.12)
Fixed duplicated values of x when extending the interval. (0.1.1.15)
Functions that print a call will
replace object with <hidden>
if it is not a symbol. (0.1.1.16)
Functions that print a call will replace the function with the original function name if it is not a symbol. (0.1.1.17)
The arguments final_nrep and
final_R of x_from_power() and
its wrappers will use stored values
if available. (0.1.1.20)
Revised c.power4test_by_n() to
allow for minor differences in error
variances when they are determined by
Monte Carlo simulation. (0.1.1.24)
Properly support a model with only one latent variable. (0.1.1.25)
Vertically displace the labels of
sample sizes in plot.n_region_from_power()
to prevent overlapping. (0.1.1.26)
Fixed the printing of effects in a multigroup model with within-group moderation. (0.1.1.27)
The function power4test() now properly
reuse arguments such as parallel
and ncores when adding a new test
to a power4test object.
(0.1.1.29)
Added one model to power_curve().
(0.1.1.34)
Added nls_options to power_curve()
to configure the use of nls(),
such as when it should not be
attempted. (0.1.1.36)
Updated sim_data(). Lines for
the indicators will not be added to
the model syntax if scale scores are
used. (0.1.1.43)
The attribute number_of_indicators
will be added to the generated data
before passing to process_data.
Used by data processors such as
scale_scores().
(0.1.1.43)
The arguments in control are now
passed directly to the entry point
of the algorithms. Potential conflicts
due to partial matching should be
prevented inside these algorithms
(0.1.1.50)
Updated power4test() to make one
cluster that will be used in all stages.
(0.1.1.55)
Load balancing is no longer used by
default, to ensure the results are
reproducible. To enable load balancing,
set the option "power4mome.use_lb"
to TRUE using options().
(0.1.1.56)
Updated the internal functions
summarize_one_test_vector () and
summarize_one_test_data_frame() to
handle failed replications properly.
(0.1.1.59)
The internal helper do_FUN() for
parallel processing now export functions
defined in the global environment to
clusters, because they may be used
in arguments such as process_data.
(0.1.1.64)
The internal helper do_FUN() will
reproduce the search path by loading
the packages in the workers.
(0.1.1.69)
Added and updated technical appendices
for the three algorithms used in
x_from_power() and friends.
(0.1.1.73)
Fixed the help for the argument
mode of q_power_mediation()
and friends. (0.1.1.75)
Simplify some examples to meet the five-second requirement. (0.1.1.78)
Replaced a test using lavaan by a
test using lm. Also improved a
test for stability. (0.2.1)
Fixed a bug in extending intervals in the bisection algorithm, and also improved the way intervals are extended. (0.1.1.35)
Fixed fix_many_lm_model() to handle
model syntax with a regression model
spanning more than one line and fitted
by lm(). (0.1.1.54)
lavaan,
0.9-12. (0.1.1)