# corregp: Correspondence Regression In corregp: Functions and Methods for Correspondence Regression

## Description

This is the basic function for correspondence regression, i.e. the correspondence analysis of a contingency table formed by the categorical variables Y and X, where X can be in turn made up of the combinations of various categorical variables.

## Usage

 ```1 2``` ```corregp(formula, data, part = NULL, b = 0, xep = TRUE, std = FALSE, rel = TRUE, phi = FALSE, chr = ".", b_scheme = "multinomial") ```

## Arguments

 `formula` A `formula` specification of which factors to cross with each other. The left-hand (`y`) side must be a single factor. The right-hand side (`x`) can involve all the usual specifications of interactions and/or nested analyses. `data` The data frame containing the variables specified in the `formula`. `part` Character vector specifying the names of conditional factors (e.g. a factor partioning the levels of the left-hand side `y` into groups). This argument is relevant for analyses in which one wants to remove between-item variation. `b` Number of the bootstrap replications (simulations). If `0` (i.e. the default), then the analysis is exploratory. `xep` Logical specifying whether to output the separate terms in the right-hand side (`x`) as components in a list. If `FALSE`, then all `x` output is collected in a matrix. `std` Logical specifying whether to output the standardized coordinates. Defaults to `FALSE`. `rel` Logical specifying whether to divide the coordinates by the `sqrt` of their totals, so that one obtains coordinates for the relative frequencies (as is customary in correspondence analysis). Defaults to `TRUE`. `phi` Logical specifying whether to compute the output on the scale of the Chi-squared value of the contingency table or of the Phi-squared value (which is Chi-squared divided by N). Reminiscent of `corresp` in package MASS, defaults to `FALSE`. `chr` Character specifying the separator string for constructing the interaction terms. `b_scheme` Character specifying the sampling scheme for bootstrapping. Must match either `"multinomial"` (the default) or `"product-multinomial"`.

## Details

Correspondence regression rests on the idea, described by Gilula and Haberman (1988), of using a correspondence analysis to model a polytomous or multinomial (i.e. 'multi-category') response variable (`Y`) in terms of other (possibly interacting) factors (`X`) (see also 3.2 in Van der Heijden et al. 1989). These are specified in the argument `formula`, which can be constructed in all the usual ways of specifying a model formula: e.g.

• `Y ~ X1 + X2 + X1 : X2` or `Y ~ X1 * X2`

• `Y ~ (X1 + X2 + X3) ^ 2`

• `Y ~ X1 * X2 * X3 - X1 : X2 : X3`

• ...

Correspondence regression then crosstabulates the `Y` factor with all the combinations in `X`, thus producing a typical contingency table, on which a simple correspondence analysis is performed (see Greenacre 2017: 121-128 for the outline of this approach). The more general effects in `X` are obtained by aggregating the combinations.

Correspondence regression also allows for inferential validation of the effects, which is done by means of the bootstrap (in fact, Monte Carlo simulation). Setting the argument `b` to a number > 0, `b` replicates of the contingency table are generated with multinomial sampling. From these, `b` new values are derived for the coordinates in both `Y` and `X` as well as for the eigenvalues (also called the "principal inertias"). On the basis of the replicate/simulated values, confidence intervals, ellipses or ellipsoids can be computed. CAUTION: bootstrapping/simulation is computationally quite intensive, so it can take a while to reach results, especially with a large `b`.

The argument `parm` can be used when one wants to perform a correspondence regression of `Y` onto `X` conditional on other factors. These conditioning factors are therefore equivalent to random factors, and `corregp` always conditions on the joint variable of all the specified factors. One such use of conditioning factors is a so-called lectometric analysis in linguistics, where the levels of `Y` are grouped/partitioned/nested into clusters and one wants to exclude the heterogeneity between the clusters.

## Value

An object of class "corregp", i.e. a list with components:

 `eigen ` A vector of eigenvalues of the correpondence regression. `y ` The coordinates (matrix) of the Y levels. `x ` The coordinates of the X levels. If `xep` is `TRUE`, then this is a list with a component for each term name. `freq ` A list of the frequencies of every Y and X level. `conf ` If b>0. A list of bootstrap replicates for the eigenvalues, the coordinates of Y levels, the coordinates of X levels and the frequencies of both the Y levels and the X levels. `aux ` A list of auxiliary information (such as the U and V matrices of the SVD, the specified values for all the arguments) to be passed to other functions and methods.

## References

Gilula, Z. and S.J. Haberman (1988) The analysis of multivariate contingency tables by restricted canonical and restricted association models. Journal of the American Statistical Association 83 (403), 760–771.

Greenacre, M. (2017) Correspondence analysis in practice, Third edition. Boca Raton: Chapman and Hall/CRC.

Van der Heijden, P.G.M., A. de Falguerolles and J. de Leeuw (1989) A combined approach to contingency table analysis using correspondence analysis and log-linear analysis. Applied Statistics 38 (2), 249–292.

`print.corregp`, `summary.corregp`, `screeplot.corregp`, `anova.corregp`, `plot.corregp`.
 ```1 2 3``` ```data(HairEye) haireye.crg <- corregp(Eye ~ Hair * Sex, data = HairEye, b = 3000) haireye.crg ```