Learn R Programming

ImpShrinkage (version 1.0.0)

stReg: The Stein estimator

Description

This function can be used to calculate the Stein estimator using $$\hat{\beta}^{S}=\hat{\beta}^{U} - d \mathcal{L}^{-1} (\hat{\beta}^{U} - \hat{\beta}^{R})$$ where

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

  • \(\hat{\beta}^{R}\) is the restricted estimator; See resReg.

  • \(\mathcal{L}\) is the test statistic. See teststat;

  • \(d\) is the shrinkage factor.

Usage

stReg(X, y, H, h, d = NULL, is_error_normal = FALSE)

Value

An object of class stein is a list containing at least the following components:

coef

A vector of coefficients.

residuals

The residuals, that is, the response values minus the fitted values.

s2

The estimated variance.

fitted.values

The fitted values.

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.

d

(Optional) If not provided (or set to NULL), it will be set to be equal to \(\frac{{(q - 2) \cdot (n - p)}}{{q \cdot (n - p + 2)}}.\)

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 FDist. On the other hand, if the errors have a non-normal distribution, the asymptotic distribution of the test statistics is Chisquare. By default, is_error_normal is set to FALSE.

Details

The corresponding estimator of \(\sigma^2\) is $$s^2 = \frac{1}{n-p}(y-X\hat{\beta}^{S})^{\top}(y - X\hat{\beta}^{S}).$$

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 = 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))
stReg(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))
stReg(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))
stReg(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))
stReg(X, y, H, h)

Run the code above in your browser using DataLab