| chisq_test | R Documentation |
Performs chi-squared tests, including goodness-of-fit, homogeneity and independence tests.
chisq_test() also accepts a pipe-friendly data-frame interface for the
test of independence between two categorical variables: pass a data frame as
x and the two columns either positionally
(data %>% chisq_test(var1, var2)) or via vars
(data %>% chisq_test(vars = c("var1", "var2"))). The contingency
table is built internally. Note that in the positional form the second column
occupies the correct argument slot, so use the vars form (or the
table interface) if you need to set correct/simulate.p.value.
See the Datanovia tutorial Chi-Square Test of Independence in R for a worked walkthrough.
chisq_test(
x,
y = NULL,
correct = TRUE,
p = rep(1/length(x), length(x)),
rescale.p = FALSE,
simulate.p.value = FALSE,
B = 2000,
vars = NULL
)
pairwise_chisq_gof_test(x, p.adjust.method = "holm", ...)
pairwise_chisq_test_against_p(
x,
p = rep(1/length(x), length(x)),
p.adjust.method = "holm",
...
)
chisq_descriptives(res.chisq)
expected_freq(res.chisq)
observed_freq(res.chisq)
pearson_residuals(res.chisq)
std_residuals(res.chisq)
x |
a numeric vector or matrix. |
y |
a numeric vector; ignored if |
correct |
a logical indicating whether to apply continuity
correction when computing the test statistic for 2 by 2 tables: one
half is subtracted from all |
p |
a vector of probabilities of the same length as |
rescale.p |
a logical scalar; if TRUE then |
simulate.p.value |
a logical indicating whether to compute p-values by Monte Carlo simulation. |
B |
an integer specifying the number of replicates used in the Monte Carlo test. |
vars |
optional character vector of length two giving the names of two
columns in the data frame |
p.adjust.method |
method to adjust p values for multiple comparisons. Used when pairwise comparisons are performed. Allowed values include "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none". If you don't want to adjust the p value (not recommended), use p.adjust.method = "none". |
... |
other arguments passed to the function |
res.chisq |
an object of class |
return a data frame with some the following columns:
n: the number of participants.
group, group1, group2:
the categories or groups being compared.
statistic: the value
of Pearson's chi-squared test statistic.
df: the degrees of
freedom of the approximate chi-squared distribution of the test statistic.
NA if the p-value is computed by Monte Carlo simulation.
p:
p-value.
p.adj: the adjusted p-value.
method: the
used statistical test.
p.signif, p.adj.signif: the significance
level of p-values and adjusted p-values, respectively.
observed: observed counts.
expected: the expected counts under the null hypothesis.
The returned object has an attribute called args, which is a list holding the test arguments.
chisq_test(): performs chi-square tests including goodness-of-fit,
homogeneity and independence tests.
pairwise_chisq_gof_test(): perform pairwise comparisons between groups following a global
chi-square goodness of fit test.
pairwise_chisq_test_against_p(): perform pairwise comparisons after a global
chi-squared test for given probabilities. For each group, the observed and
the expected proportions are shown. Each group is compared to the sum of
all others.
chisq_descriptives(): returns the descriptive statistics of the chi-square
test. These include, observed and expected frequencies, proportions,
residuals and standardized residuals. Only available for a single
(ungrouped) chisq_test() result.
expected_freq(): returns the expected counts from the chi-square test result.
observed_freq(): returns the observed counts from the chi-square test result.
pearson_residuals(): returns the Pearson residuals, (observed - expected) / sqrt(expected).
std_residuals(): returns the standardized residuals
The Datanovia tutorial: Chi-Square Test of Independence in R, Chi-Square Goodness-of-Fit Test in R.
# Chi-square goodness of fit test
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tulip <- c(red = 81, yellow = 50, white = 27)
# Q1: Are the colors equally common?
chisq_test(tulip)
pairwise_chisq_gof_test(tulip)
# Q2: comparing observed to expected proportions
chisq_test(tulip, p = c(1/2, 1/3, 1/6))
pairwise_chisq_test_against_p(tulip, p = c(0.5, 0.33, 0.17))
# Homogeneity of proportions between groups
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Data: Titanic
xtab <- as.table(rbind(
c(203, 118, 178, 212),
c(122, 167, 528, 673)
))
dimnames(xtab) <- list(
Survived = c("Yes", "No"),
Class = c("1st", "2nd", "3rd", "Crew")
)
xtab
# Chi-square test
chisq_test(xtab)
# Compare the proportion of survived between groups
pairwise_prop_test(xtab)
# Test of independence using the data-frame interface
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
df <- data.frame(
gender = rep(c("M", "F"), each = 100),
smoker = rep(c("yes", "no", "yes", "no"), times = c(30, 70, 60, 40))
)
# Positional columns
df %>% chisq_test(gender, smoker)
# Equivalent, using vars (keeps `correct` settable)
df %>% chisq_test(vars = c("gender", "smoker"), correct = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.