svyglm()
for consistency. Weighted designs with weights provided to the weight
argument of cj()
, amce()
, etc. were unaffected. Analysts using the package for unweighted designs should update results to obtain appropriately conservative standard errors of AMCEs. Tests of this behavior have now been added (#15).mm_diffs()
returned 90% rather than 95% confidence intervals. (#37, h/t @hoellers)mm()
wherein alpha
was ignored.mm_diffs()
wherein h0
was ignored.by
variables in cj()
that contain empty character string levels. (#32, h/t Farsan Ghassim)amce_by_reference()
now returns a REFERENCE
column rather than a BY
column, for clarity. (#35, h/t Farsan Ghassim)mm_diffs()
to allow >= 2 levels for by
factor. (#33, h/t Farsan Ghassim)cj()
now explicitly requires that all variables in by
are factor and ensures factor level ordering is carried forward from input data to output data.cj_df()
now ignores drop
(for behavior consistent with "tibble" rather than base "data.frame" tables)data
as documented, with the exception of mm()
and mm_diffs()
.mm_diffs()
wherein a by
variable that shared levels with a feature variable led to incorrect estimates being returned. (#22, h/t Michael Jankowski)plot()
methods. (#18, h/t Mia Costa)plot()
method output. (#14)cj_tidy()
work with tibbles. (#11, Umberto Mignozzetti)cj()
now imposes class "cj_df" on data
to preserve attributes during subsetting.cj_table()
, which can be useful in communicating the set of features and levels used in the design as a data frame (e.g,. using knitr::kable(cj_table(data, ~ feat1 + feat2))
).props()
-> cj_props()
and freqs()
to cj_freqs()
for API consistency.cj_df()
, which provides a modified data frame class ("cj_df") that preserves variable "label" attributes when subsetting.immigration
and taxes
gain a "cj_df" class.cj_tidy()
now returns objects of class c("cj_df", "data.frame")
.cj_tidy()
to tidy a "wide" respondent-length conjoint dataset into a "long" respondenttaskalternative-length dataset. An example dataset, wide_conjoint
, is provided for examples and testing.amce_diffs()
, limiting it to work with unconstrained designs. (#6)taxes
, from Ballard-Rosa et al. (2016).hainmueller
dataset to immigration
.cj_anova()
currently does not work with weighted data due to a bug in survey::anova.svyglm()
.amce_diffs()
now respect clustering. (#9)mm_diffs()
.mm_diffs()
for calculating differences in marginal means.mm()
gains an h0
argument to specify a null hypothesis values so that z statistics and p-values are meaningful.family
argument).amce_diffs()
and amce_anova()
functions to assess differences in AMCEs by a grouping variable.plot()
methods. (#8)svydesign()
objects that was generating incorrect variance estimates.props()
function to calculate display proportions for features or combinations of features (e.g., for examining constrained designs). Updated documentation accordingly. (#2)amce_by_reference()
function to examine sensitivity of results to choice of reference category. (#2)level
argument to alpha
to avoid ambiguity with "levels" in the "feature level" sense used in the package (as opposed to the intended alpha or significance level).level_order
argument to freqs()
, mm()
, and amce()
that specifies whether feature levels are ordered ascending in the output or descending. This is mostly only useful for plotting to specify whether the levels within each feature should be ordered with lower factor levels at the top ("ascending") or at the bottom ("descending") of the plot. (#1)cj()
gains a by
argument, which enables subgroup analyses, for example to investigate profile spillover effects or analyses by subsets of respondents. (#3)freq()
to freqs()
and prefixed class names of return values from all functions with cj_*
.feature_order
argument to all functions to regulate display order.header_fmt
in plot()
.freqs()
.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.