Learn R Programming

systemfit (version 1.1-30)

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 systemfit
linearHypothesis( model,
      hypothesis.matrix, rhs = NULL, test = c( "FT", "F", "Chisq" ),
      vcov. = NULL, ... )

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".

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 in package "car" for details).

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), or the large-sample Wald test (with asymptotic Chi-squared 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").

Author

Arne Henningsen arne.henningsen@googlemail.com

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