Learn R Programming

npbr (version 1.8)

dfs_momt: Moment frontier estimator

Description

This function is an implementation of the moment-type estimator developed by Daouia, Florens and Simar (2010).

Usage

dfs_momt(xtab, ytab, x, rho, k, ci=TRUE)

Value

Returns a numeric vector with the same length as x.

Arguments

xtab

a numeric vector containing the observed inputs \(x_1,\ldots,x_n\).

ytab

a numeric vector of the same length as xtab containing the observed outputs \(y_1,\ldots,y_n\).

x

a numeric vector of evaluation points in which the estimator is to be computed.

rho

a numeric vector of the same length as x or a scalar, which determines the values of rho.

k

a numeric vector of the same length as x or a scalar, which determines the thresholds at which the moment estimator will be computed.

ci

a boolean, TRUE for computing the confidence interval.

Author

Abdelaati Daouia and Thibault Laurent (converted from Leopold Simar's Matlab code).

Details

Combining ideas from Dekkers, Einmahl and de Haan (1989) with the dimensionless transformation \(\{z^{x}_i := y_i\mathbf{1}_{\{x_i\le x\}}, \,i=1,\cdots,n\}\) of the observed sample \(\{(x_i,y_i), \,i=1,\cdots,n\}\), the authors estimate the conditional endpoint \(\varphi(x)\) by $$\tilde\varphi_{momt}(x) = z^{x}_{(n-k)} + z^{x}_{(n-k)} M^{(1)}_n \left\{1 + \rho_x \right\}$$ where \(M^{(1)}_n = (1/k)\sum_{i=0}^{k-1}\left(\log z^x_{(n-i)}- \log z^x_{(n-k)}\right)\), \(z^{x}_{(1)}\leq \cdots\leq z^{x}_{(n)}\) are the ascending order statistics corresponding to the transformed sample \(\{z^{x}_i, \,i=1,\cdots,n\}\) and \(\rho_x>0\) is referred to as the extreme-value index and has the following interpretation: when \(\rho_x>2\), the joint density of data decays smoothly to zero at a speed of power \(\rho_x -2\) of the distance from the frontier; when \(\rho_x=2\), the density has sudden jumps at the frontier; when \(\rho_x<2\), the density increases toward infinity at a speed of power \(\rho_x -2\) of the distance from the frontier. Most of the contributions to econometric literature on frontier analysis assume that the joint density is strictly positive at its support boundary, or equivalently, \(\rho_x=2\) for all \(x\). When \(\rho_x\) is unknown, Daouia et al. (2010) suggest to use the following two-step estimator: First, estimate \(\rho_x\) by the moment estimator \(\tilde\rho_x\) implemented in the function rho_momt_pick by utilizing the option method="moment", or by the Pickands estimator \(\hat\rho_x\) by using the option method="pickands". Second, use the estimator \(\tilde\varphi_{momt}(x)\), as if \(\rho_x\) were known, by substituting the estimated value \(\tilde\rho_x\) or \(\hat\rho_x\) in place of \(\rho_x\). The \(95\%\) confidence interval of \(\varphi(x)\) derived from the asymptotic normality of \(\tilde\varphi_{momt}(x)\) is given by $$[\tilde\varphi_{momt}(x) \pm 1.96 \sqrt{V(\rho_x) / k} z^{x}_{(n-k)} M^{(1)}_n (1 + 1/\rho_x) ]$$ where \(V(\rho_x) = \rho^2_x (1+2/\rho_x)^{-1}\). The sample fraction \(k=k_n(x)\) plays here the role of the smoothing parameter and varies between 1 and \(N_x-1\), with \(N_x=\sum_{i=1}^n\mathbf{1}_{\{x_i\le x\}}\) being the number of observations \((x_i,y_i)\) with \(x_i \leq x\). See kopt_momt_pick for an automatic data-driven rule for selecting \(k\).

References

Daouia, A., Florens, J.P. and Simar, L. (2010). Frontier Estimation and Extreme Value Theory, Bernoulli, 16, 1039-1063.

Dekkers, A.L.M., Einmahl, J.H.J. and L. de Haan (1989), A moment estimator for the index of an extreme-value distribution, nnals of Statistics, 17, 1833-1855.

See Also

dfs_pick, kopt_momt_pick.

Examples

Run this code
data("post")
x.post <- seq(post$xinput[100], max(post$xinput), 
 length.out = 100) 
# 1. When rho[x] is known and equal to 2, we set:
rho <- 2
# To determine the sample fraction k=k[n](x) 
# in tilde(varphi[momt])(x).
best_kn.1 <- kopt_momt_pick(post$xinput, post$yprod, 
 x.post, rho = rho)
# To compute the frontier estimates and confidence intervals:  
res.momt.1 <- dfs_momt(post$xinput, post$yprod, x.post, 
 rho = rho, k = best_kn.1)
# Representation
plot(yprod~xinput, data = post, xlab = "Quantity of labor", 
 ylab = "Volume of delivered mail")
lines(x.post, res.momt.1[,1], lty = 1, col = "cyan")  
lines(x.post, res.momt.1[,2], lty = 3, col = "magenta")  
lines(x.post, res.momt.1[,3], lty = 3, col = "magenta")  

if (FALSE) {
# 2. rho[x] is unknown and estimated by 
# the Pickands estimator tilde(rho[x])
rho_momt <- rho_momt_pick(post$xinput, post$yprod, 
 x.post)
best_kn.2 <- kopt_momt_pick(post$xinput, post$yprod,
  x.post, rho = rho_momt)
res.momt.2 <- dfs_momt(post$xinput, post$yprod, x.post, 
 rho = rho_momt, k = best_kn.2)  
# 3. rho[x] is unknown independent of x and estimated
# by the (trimmed) mean of tilde(rho[x])
rho_trimmean <- mean(rho_momt, trim=0.00)
best_kn.3 <- kopt_momt_pick(post$xinput, post$yprod,
  x.post, rho = rho_trimmean)   
res.momt.3 <- dfs_momt(post$xinput, post$yprod, x.post, 
 rho = rho_trimmean, k = best_kn.3)  

# Representation 
plot(yprod~xinput, data = post, col = "grey", 
 xlab = "Quantity of labor", ylab = "Volume of delivered mail")
lines(x.post, res.momt.2[,1], lty = 1, lwd = 2, col = "cyan")  
lines(x.post, res.momt.2[,2], lty = 3, lwd = 4, col = "magenta")  
lines(x.post, res.momt.2[,3], lty = 3, lwd = 4, col = "magenta")  
plot(yprod~xinput, data = post, col = "grey", 
 xlab = "Quantity of labor", ylab = "Volume of delivered mail")
lines(x.post, res.momt.3[,1], lty = 1, lwd = 2, col = "cyan")  
lines(x.post, res.momt.3[,2], lty = 3, lwd = 4, col = "magenta")  
lines(x.post, res.momt.3[,3], lty = 3, lwd = 4, col = "magenta") 
}

Run the code above in your browser using DataLab