Learn R Programming

gmm (version 1.1-1)

smooth_g: Kernel smoothing of a matrix of time series

Description

It applies the required kernel smoothing to the moment function in order for the GEL estimator to be valid. It is used by the gel function.

Usage

smooth_g(x, bw = bwAndrews2, prewhite = 1, ar.method = "ols",weights=weightsAndrews2,
	kernel=c("Bartlett","Parzen","Truncated","Tukey-Hanning"), 
	approx = c("AR(1)","ARMA(1,1)"),tol = 1e-7)

Arguments

x
a $n\times q$ matrix of time series, where n is the sample size.
bw
The method to compute the bandwidth parameter. By default, it uses the bandwidth proposed by Andrews(1991). As an alternative, we can choose bw=bwNeweyWest2 (without "") which is proposed by Newey-West(1996).
prewhite
logical or integer. Should the estimating functions be prewhitened? If TRUE or greater than 0 a VAR model of order as.integer(prewhite) is fitted via ar with method "ols" and demean = F
ar.method
character. The method argument passed to ar for prewhitening.
weights
The smoothing weights can be computed by weightsAndrews2 of it can be provided manually. If provided, it has to be a $r\times 1$vector (see details).
approx
a character specifying the approximation method if the bandwidth has to be chosen by bwAndrews2.
tol
numeric. Weights that exceed tol are used for computing the covariance matrix, all other weights are treated as 0.
kernel
The choice of kernel

Value

  • smoothx: A $q \times q$ matrix containing an estimator of the asymptotic variance of $\sqrt{n} \bar{x}$, where $\bar{x}$ is $q\times 1$vector with typical element $\bar{x}_i = \frac{1}{n}\sum_{j=1}^nx_{ji}$. This function is called by gel but can also be used by itself.

    kern_weights: Vector of weights used for the smoothing.

Details

HAC is simply a modified version of meatHAC from the package sandwich. The modifications have been made so that the argument x can be a matrix instead of an object of class lm or glm. The details on how is works can be found on the sandwich manual.

The sample moment conditions $\sum_{t=1}^n g(\theta,x_t)$ is replaced by: $\sum_{t=1}^n g^k(\theta,x_t)$, where $g^k(\theta,x_t)=\sum_{i=-r}^r k(i) g(\theta,x_{t+i})$, where $r$ is a truncated parameter that depends on the bandwidth and $k(i)$ are normalized weights so that they sum to 1.

If the vector of weights is provided, it gives only one side weights. For exemple, if you provide the vector (1,.5,.25), $k(i)$ will become $(.25,.5,1,.5,.25)/(.25+.5+1+.5+.25) = (.1,.2,.4,.2,.1)$

References

Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. Econometrica, 73, 983-1002.

Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. Econometrica, 59, 817--858.

Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. The Annals of Statistics, 25, 2084-2102.

Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. Journal of Statistical Software, 16(9), 1--16. URL http://www.jstatsoft.org/v16/i09/.

Examples

Run this code
g <- function(tet,x)
	{
	n <- nrow(x)
	u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)])
	f <- cbind(u,u*x[4:(n-3)],u*x[3:(n-4)],u*x[2:(n-5)],u*x[1:(n-6)])
	return(f)
	}
n = 500
phi<-c(.2,.7)
thet <- 0.2
sd <- .2
x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1)
gt <- g(c(0,phi),x) 
sgt <- smooth_g(gt)$smoothx
plot(gt[,1])
lines(sgt[,1])

Run the code above in your browser using DataLab