SpeTest_Dist generates a vector from the nonparametric specification test statistic distribution under the null hypothesis for one of five different tests using the bootstrap
SpeTest_Dist(eq, type="icm", norma="no", boot="wild", nboot=50, para=FALSE, ker="normal",
knorm="sd", cch="default", hv="default", nbeta="default", direct="default",
alphan="default")SpeTest_Dist returns a vector of size nboot which is drawn from the distribution of the test statistic under the null hypothesis using the bootstrap
A fitted model of class lm or nls
Test type
If type = "icm" the vector is generated from the distribution of the test of Bierens (1982) under the null hypothesis (default)
If type = "zheng" the vector is generated from the distribution of the test of Zheng (1996) under the null hypothesis
If type = "esca" the vector is generated from the distribution of the test of Escanciano (2006) under the null hypothesis, significantly increases computing time
If type = "pala" the vector is generated from the distribution of the test of Lavergne and Patilea (2008) under the null hypothesis
If type = "sicm" the vector is generated from the distribution of the test of Lavergne and Patilea (2012) under the null hypothesis
Normalization of the test statistic
If norma = "no" the test statistic is not normalized (default)
If norma = "naive" the test statistic is normalized with a naive estimator of the variance of its components
If norma = "np" the test statistic is normalized with a nonparametric estimator of the variance of its components
Bootstrap type to generate the vector drawn from the distribution under the null hypothesis of the test statistic
If boot = "wild" the wild bootstrap of Wu (1986) is used
If boot = "smooth" the smooth conditional moments bootstrap of Gozalo (1997) is used
Size of the vector drawn from the test statistic distribution under the null using the bootstrap, by default nboot = 50
Parallel computing
If para = FALSE parallel computing is not used to generate the vector from the test statistic distribution under the null (default)
If para = TRUE parallel computing is used to generate the vector from the test statistic distribution under the null, significantly decreases computing time, makes use of all CPU cores except one
Kernel function used in the central matrix and for the nonparametric covariance estimator
If ker = "normal" the central matrix kernel function is the normal p.d.f (default)
If ker = "triangle" the central matrix kernel function is the triangular p.d.f
If ker = "logistic" the central matrix kernel function is the logistic p.d.f
If ker = "sinc" the central matrix kernel function is the sine cardinal function
Normalization of the kernel function
If knorm = "sd" then the standard deviation using the kernel function equals 1 (default)
If knorm ="sq" then the integral of the squared kernel function equals 1
Central matrix kernel bandwidth
If type = "icm" or type = "esca" then cch always equals 1
If type = "zheng" the "default" bandwidth is the scaled
rule of thumb: cch = 1.06*n^(-1/(4+k)) where k is
the number of regressors
If type = "sicm" or type = "pala" the "default"
bandwidth is the scaled rule of thumb: cch = 1.06*n^(-1/5)
The user may change the bandwidth when type = "zheng", type = "sicm" or type = "pala"
If norma = "np" or rejection = "bootstrap" and boot = "smooth", hv is the bandwidth of the nonparametric errors covariance estimator, by "default" the bandwidth is the scaled rule of thumb hv = 1.06*n^(-1/(4+k))
If type = "pala" or type = "sicm", nbeta is the number of "betas" in the unit hypersphere used to compute the statistic, computing time increases as nbeta gets larger
By "default" it is equal to 20 times the square root of the number of exogenous control variables
If type = "pala", direct is the favored direction for beta, by "default" it is the OLS estimator if class(eq) = "lm"
If type = "sicm", direct is the initial direction for beta. This direction should be a vector of 0 (for no direction), 1 (for positive direction) and -1 (for negative direction)
For ex, c(1,-1,0) indicates that the user thinks that the first regressor has a positive effect on the dependent variable, that the second regressor has a negative effect on the dependent variable, and that he has no idea about the effect of the third regressor
By "default" no direction is given to the hypersphere
If type = "pala", alphan is the weight given to the favored direction for beta, by "default" it is equal to log(n)*n^(-3/2)
Hippolyte Boucher <Hippolyte.Boucher@outlook.com>
Pascal Lavergne <lavergnetse@gmail.com>
To generate a vector from the specification test statistic distribution under the null using the bootstrap the only argument needed is a model eq of class lm or of class nls.
But other options can and should be specified: the test statistic type type, the normalization of the test statistic norma, the bootstrap type boot and the size of the vector being generated which is equal to the number of bootstrap samples nboot, whether the vector is generated using parallel computing para, the central matrix kernel function ker and its standardization knorm, the bandwidths cch and hv. If the user has knowledge of the tests coined by Lavergne and Patilea he may choose a higher number of betas for the hypersphere (which may significantly increase computational time) and an initial "direction" to the hypersphere for the SICM test (none is given by "default") or a starting beta for the PALA test (which is the OLS estimator by "default" if class(eq) = "nls").
The statistic can be normalized with a naive estimator of the conditional covariance of its elements as in Zheng (1996), or with a nonparametric estimator of the conditional covariance of its elements as in in Yin, Geng, Li, Wang (2010). The vector is generated either from the wild bootstrap of Wu (1986) or from the smooth conditional moments bootstrap of Gozalo (1997).
H.J. Bierens (1982), "Consistent Model Specification Test", Journal of Econometrics, 20 (1), 105-134
J.C. Escanciano (2006), "A Consistent Diagnostic Test for Regression Models using Projections", Economic Theory, 22 (6), 1030-1051
P.L. Gozalo (1997), "Nonparametric Bootstrap Analysis with Applications to Demographic Effects in Demand Functions", Journal of Econometrics, 81 (2), 357-393
P. Lavergne and V. Patilea (2008), "Breaking the Curse of Dimensionality in Nonparametric Testing", Journal of Econometrics, 143 (1), 103-122
P. Lavergne and V. Patilea (2012), "One for All and All for One: Regression Checks with Many Regressors", Journal of Business and Economic Statistics, 30 (1), 41-52
C.F.J. Wu (1986), "Jackknife, bootstrap and other resampling methods in regression analysis (with discussion)", Annals of Statistics, 14 (4), 1261-1350
J. Yin, Z. Geng, R. Li, H. Wang (2010), "Nonparametric covariance model", Statistica Sinica, 20 (1), 469-479
J.X. Zheng (1996), "A Consistent Test of Functional Form via Nonparametric Estimation Techniques", Journal of Econometrics, 75 (2), 263-289
SpeTest is the function which performs a specification test and records it along with all its options in an object of class STNP
SpeTest_Stat is the function which only returns the specification test statistic
n <- 100
k <- 2
x <- matrix(rnorm(n*k),ncol=k)
y<-1+x%*%(1:k)+rnorm(n)
eq<-lm(y~x+0)
SpeTest_Dist(eq=eq,type="zheng",boot="wild",nboot=10)
eq<-nls(out~expla1*a+b*expla2+c,start=list(a=0,b=4,c=2),
data=data.frame(out=y,expla1=x[,1],expla2=x[,2]))
SpeTest_Dist(eq=eq,type="zheng",boot="wild",nboot=20)
Run the code above in your browser using DataLab