Learn R Programming

QuantifQuantile (version 2.2)

QuantifQuantile.d2: QuantifQuantile for X bivariate

Description

Estimation of conditional quantiles using optimal quantization when X is bivariate.

Usage

QuantifQuantile.d2(X, Y, alpha = c(0.05, 0.25, 0.5, 0.75, 0.95), x = matrix(c(rep(seq(min(X[1, ]), max(X[1, ]), length = 20), 20), sort(rep(seq(min(X[2, ]), max(X[2, ]), length = 20), 20))), nrow = 2, byrow = TRUE), testN = c(110, 120, 130, 140, 150), p = 2, B = 50, tildeB = 20, same_N = TRUE, ncores = 1)

Arguments

X
matrix of covariates.
Y
vector of response variables.
alpha
vector of order of the quantiles.
x
matrix of values for x in q_alpha(x).
testN
grid of values of N that will be tested.
p
L_p norm optimal quantization.
B
number of bootstrap replications for the bootstrap estimator.
tildeB
number of bootstrap replications for the choice of N.
same_N
whether to use the same value of N for each alpha (TRUE by default).
ncores
number of cores to use. Default is set to 1 (see Details below).

Value

An object of class QuantifQuantile which is a list with the following components:
hatq_opt
A matrix containing the estimated conditional quantiles. The number of columns is the number of considered values for x and the number of rows the size of the order vector alpha. This object can also be returned using the usual fitted.values function.
N_opt
Optimal selected value for N. An integer if same_N=TRUE and a vector of integers of length length(alpha) otherwise.
hatISE_N
The matrix of estimated ISE provided by our selection criterion for N before taking the mean according to alpha. The number of columns is then length(testN) and the number of rows length(alpha).
hatq_N
A 3-dimensional array containing the estimated conditional quantiles for each considered value for alpha, x and N.
X
The matrix of covariates.
Y
The vector of response variables.
x
The considered vector of values for x in q_alpha(x).
alpha
The considered vector of order for the quantiles.
testN
The considered grid of values for N that were tested.

Details

  • The criterion for selecting the number of quantizers is implemented in this function. The user has to choose a grid testN of possible values in which N will be selected. It actually minimizes some bootstrap estimated version of the ISE (Integrated Squared Error). More precisely, for N fixed, it calculates the sum according to alpha of hatISE_N and then minimizes the resulting vector to get N_opt. However, the user can choose to select a different value of N_opt for each alpha by setting same_N=FALSE. In this case, the vector N_opt is obtained by minimizing each column of hatISE_N separately. The reason why same_N=TRUE by default is that taking N_opt according to alpha could provide crossing conditional quantile curves (rarely observed for not too close values of alpha). The function plot.QuantifQuantile illustrates the selection of N_opt. If the graph is not decreasing then increasing, the argument testN should be adapted.
  • This function can use parallel computation to save time, by simply increasing the parameter ncores. Parallel computation relies on mclapply from parallel package, hence is not available on Windows unless ncores=1 (default value).

References

Charlier, I. and Paindaveine, D. and Saracco, J., Conditional quantile estimation through optimal quantization, Journal of Statistical Planning and Inference, 2015 (156), 14-30.

Charlier, I. and Paindaveine, D. and Saracco, J., Conditional quantile estimator based on optimal quantization: from theory to practice, Submitted.

See Also

QuantifQuantile and QuantifQuantile.d for other dimensions.

plot.QuantifQuantile, print.QuantifQuantile, summary.QuantifQuantile

Examples

Run this code
## Not run: 
# #(a few seconds to execute)
# set.seed(164964)
# n <- 1000
# X <- matrix(runif(n*2,-2,2),ncol=n)
# Y <- apply(X^2,2,sum)+rnorm(n)
# res <- QuantifQuantile.d2(X,Y,testN=seq(90,140,by=10),B=20,tildeB=15)
# res2 <- QuantifQuantile.d2(X,Y,testN=seq(90,150,by=10),B=20,tildeB=15,same_N=FALSE)
# ## End(Not run)

Run the code above in your browser using DataLab