Learn R Programming

ImpShrinkage (version 1.0.0)

teststat: Test-Statistics

Description

This function calculates the test statistics, assuming \(\mathcal{H}_0: H \beta = h\). When the error has a normal distribution, it is defined as $$\mathcal{L} = \frac{(H\hat{\beta}^{U}-h)^{\top}(H(X^{\top}X)^{-1} H^{\top})^{-1}(H\hat{\beta}^{U}-h) }{q s^2_{unr}}$$ and when the error has a non-normal distribution, as $$\mathcal{L} = \frac{(H\hat{\beta}^{U}-h)^{\top}(H(X^{\top}X)^{-1} H^{\top})^{-1}(H\hat{\beta}^{U}-h) }{s^2_{unr}}$$ where

  • \(\hat{\beta}^{U}\) is the unrestricted estimator; See unrReg.

  • \(q\) is the number of restrictions, i.e., the number of rows of known matrix \(H\);

  • \(s^2_{unr}\) is the corresponding unrestricted estimator of \(\sigma^2\).

Usage

teststat(X, y, H, h, is_error_normal = FALSE)

Value

The value of the test statistic.

Arguments

X

Matrix with input observations, of dimension n x p; each row is an observation vector.

y

Vector with response observations of size n.

H

A given q x p matrix.

h

A given q x 1 vector.

is_error_normal

logical value indicating whether the errors follow a normal distribution. If is_error_normal is TRUE, the distribution of the test statistics for the null hypothesis is the F distribution (FDist).On the other hand, if the errors have a non-normal distribution, the asymptotic distribution of the test statistics is the \(\chi^2\) distribution (Chisquare). By default, is_error_normal is set to FALSE.

References

Saleh, A. K. Md. Ehsanes. (2006). Theory of Preliminary Test and Stein‐Type Estimation With Applications, Wiley.

Kaciranlar, S., Akdeniz, S. S. F., Styan, G. P. & Werner, H. J. (1999). A new biased estimators in linear regression and detailed analysis of the widely-analysed dataset on portland cement. Sankhya, Series B, 61(3), 443-459.

Kibria, B. M. Golam (2005). Applications of Some Improved Estimators in Linear Regression, Journal of Modern Applied Statistical Methods, 5(2), 367- 380.

Examples

Run this code
n_obs <- 100
p_vars <- 5
beta <- c(2, 1, 3, 0, 5)
simulated_data <- simdata(n = n_obs, p_vars, beta)
X <- simulated_data$X
y <- simulated_data$y
p <- ncol(X)
# H beta = h
H <- matrix(c(1, 1, -1, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 1, 0), nrow = 3, ncol = p, byrow = TRUE)
h <- rep(0, nrow(H))
teststat(X, y, H, h)

# H beta != h
H <- matrix(c(1, 1, -1, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 1, 0), nrow = 3, ncol = p, byrow = TRUE)
h <- rep(1, nrow(H))
teststat(X, y, H, h)

data(cement)
X <- as.matrix(cbind(1, cement[, 1:4]))
y <- cement$y
# Based on Kaciranlar et al. (1999)
H <- matrix(c(0, 1, -1, 1, 0), nrow = 1, ncol = 5, byrow = TRUE)
h <- rep(0, nrow(H))
teststat(X, y, H, h)
# Based on Kibria (2005)
H <- matrix(c(0, 1, -1, 1, 0, 0, 0, 1, -1, -1, 0, 1, -1, 0, -1), nrow = 3, ncol = 5, byrow = TRUE)
h <- rep(0, nrow(H))
teststat(X, y, H, h)

Run the code above in your browser using DataLab