Learn R Programming

systemfit (version 1.1-18)

linearHypothesis.systemfit: Test Linear Hypothesis

Description

Testing linear hypothesis on the coefficients of a system of equations by an F-test or Wald-test.

Usage

## S3 method for class 'systemfit':
linearHypothesis( model,
      hypothesis.matrix, rhs = NULL, test = c( "FT", "F", "Chisq" ),
      vcov. = NULL, ... )

Arguments

model
a fitted object of type systemfit.
hypothesis.matrix
matrix (or vector) giving linear combinations of coefficients by rows, or a character vector giving the hypothesis in symbolic form (see documentation of linearHypothesis
rhs
optional right-hand-side vector for hypothesis, with as many entries as rows in the hypothesis matrix; if omitted, it defaults to a vector of zeroes.
test
character string, "FT", "F", or "Chisq", specifying whether to compute Theil's finite-sample F test (with approximate F distribution), the finite-sample Wald test (with approximate F distribution),
vcov.
a function for estimating the covariance matrix of the regression coefficients or an estimated covariance matrix (function vcov is used by default).
...
further arguments passed to linearHypothesis.default (package "car").

Value

  • An object of class anova, which contains the residual degrees of freedom in the model, the difference in degrees of freedom, the test statistic (either F or Wald/Chisq) and the corresponding p value. See documentation of linearHypothesis in package "car".

Details

Theil's $F$ statistic for sytems of equations is $$F = \frac{ ( R \hat{b} - q )' ( R ( X' ( \Sigma \otimes I )^{-1} X )^{-1} R' )^{-1} ( R \hat{b} - q ) / j }{ \hat{e}' ( \Sigma \otimes I )^{-1} \hat{e} / ( M \cdot T - K ) }$$ where $j$ is the number of restrictions, $M$ is the number of equations, $T$ is the number of observations per equation, $K$ is the total number of estimated coefficients, and $\Sigma$ is the estimated residual covariance matrix. Under the null hypothesis, $F$ has an approximate $F$ distribution with $j$ and $M \cdot T - K$ degrees of freedom (Theil, 1971, p. 314).

The $F$ statistic for a Wald test is $$F = \frac{ ( R \hat{b} - q )' ( R \, \widehat{Cov} [ \hat{b} ] R' )^{-1} ( R \hat{b} - q ) }{ j }$$ Under the null hypothesis, $F$ has an approximate $F$ distribution with $j$ and $M \cdot T - K$ degrees of freedom (Greene, 2003, p. 346).

The $\chi^2$ statistic for a Wald test is $$W = ( R \hat{b} - q )' ( R \widehat{Cov} [ \hat{b} ] R' )^{-1} ( R \hat{b} - q )$$ Asymptotically, $W$ has a $\chi^2$ distribution with $j$ degrees of freedom under the null hypothesis (Greene, 2003, p. 347).

References

Greene, W. H. (2003) Econometric Analysis, Fifth Edition, Prentice Hall.

Theil, Henri (1971) Principles of Econometrics, John Wiley & Sons, New York.

See Also

systemfit, linearHypothesis (package "car"), lrtest.systemfit

Examples

Run this code
data( "Kmenta" )
eqDemand <- consump ~ price + income
eqSupply <- consump ~ price + farmPrice + trend
system <- list( demand = eqDemand, supply = eqSupply )

## unconstrained SUR estimation
fitsur <- systemfit( system, method = "SUR", data=Kmenta )

# create hypothesis matrix to test whether beta_2 = \beta_6
R1 <- matrix( 0, nrow = 1, ncol = 7 )
R1[ 1, 2 ] <- 1
R1[ 1, 6 ] <- -1
# the same hypothesis in symbolic form
restrict1 <- "demand_price - supply_farmPrice = 0"

## perform Theil's F test
linearHypothesis( fitsur, R1 )  # rejected
linearHypothesis( fitsur, restrict1 )

## perform Wald test with F statistic
linearHypothesis( fitsur, R1, test = "F" )  # rejected
linearHypothesis( fitsur, restrict1 )

## perform Wald-test with chi^2 statistic
linearHypothesis( fitsur, R1, test = "Chisq" )  # rejected
linearHypothesis( fitsur, restrict1, test = "Chisq" )

# create hypothesis matrix to test whether beta_2 = - \beta_6
R2 <- matrix( 0, nrow = 1, ncol = 7 )
R2[ 1, 2 ] <- 1
R2[ 1, 6 ] <- 1
# the same hypothesis in symbolic form
restrict2 <- "demand_price + supply_farmPrice = 0"

## perform Theil's F test
linearHypothesis( fitsur, R2 )  # accepted
linearHypothesis( fitsur, restrict2 )

## perform Wald test with F statistic
linearHypothesis( fitsur, R2, test = "F" )  # accepted
linearHypothesis( fitsur, restrict2 )

## perform Wald-test with chi^2 statistic
linearHypothesis( fitsur, R2, test = "Chisq" )  # accepted
linearHypothesis( fitsur, restrict2, test = "Chisq" )

Run the code above in your browser using DataLab