linearmodels.iv.results.IVGMMResults.c_stat

IVGMMResults.c_stat(variables: list[str] | str | None = None) WaldTestStatistic[source]

C-test of endogeneity

Parameters:
variables: list[str] | str | None = None

List of variables to test for exogeneity. If None, all variables are jointly tested.

Returns:

Object containing test statistic, p-value, distribution and null

Return type:

linearmodels.shared.hypotheses.WaldTestStatistic

Notes

The C statistic iv the difference between the model estimated by assuming one or more of the endogenous variables is actually exogenous. The test is implemented as the difference between the J statistic s of two GMM estimations where both use the same weighting matrix. The use of a common weighting matrix is required for the C statistic to be positive.

The first model is a estimated uses GMM estimation where one or more of the endogenous variables are assumed to be endogenous. The model would be relatively efficient if the assumption were true, and two quantities are computed, the J statistic, \(J_e\), and the moment weighting matrix, \(W_e\).

WLOG assume the q variables tested are in the final q positions so that the first \(n_{exog} + n_{instr}\) rows and columns correspond to the moment conditions in the original model. The second J statistic is computed using parameters estimated using the original moment conditions along with the upper left block of \(W_e\). Denote this values as \(J_c\) where the c is used to indicate consistent.

The test statistic is then

\[J_e - J_c \sim \chi^2_{m}\]

where \(m\) is the number of variables whose exogeneity is being tested.