linear.hypothesis.systemfit: Test Linear Hypothesis

View source: R/linear.hypothesis.R

linearHypothesis.systemfitR Documentation

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

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

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

Author(s)

Arne Henningsen arne.henningsen@googlemail.com

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

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

systemfit documentation built on March 31, 2023, 3:07 p.m.