Learn R Programming

npbr (version 1.6)

dfs_pwm: Probability-weighted moment frontier estimator

Description

This function is an implementation of the probability-weighted moment frontier estimator developed by Daouia, Florens and Simar (2012).

Usage

dfs_pwm(xtab, ytab, x, coefm, a=2, rho, ci=TRUE)

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.

coefm

a tuning parameter (integer) larger than or equal to 1.

a

a smoothing parameter (integer) larger than or equal to 2.

rho

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

ci

a boolean, TRUE for computing the confidence interval.

Value

Returns a numeric vector with the same length as x.

Details

The regularized frontier estimator introduced by Daouia et al. (2012) is based on the unregularized probability-weighted moment estimator $$\hat{\varphi}_m(x) = \varphi_{fdh}(x) - \int_{0}^{\varphi_{fdh}(x)} \hat{F}^m(y|x)dy$$ where the trimming order \(m\geq 1\) is an integer such that \(m=m_n\to\infty\) as \(n\to\infty\), and \(\hat{F}(y|x)=\sum_{i=1}^n1_{(x_i\leq x,y_i\leq y)}/\sum_{i=1}^n1_{(x_i\leq x)}\). The implemented estimator of \(\varphi(x)\) is then defined as $$\tilde{\varphi}_m(x) = \hat{\varphi}_m(x) + \Gamma\left(1 + 1/\bar\rho_x\right)\left( 1/m\,\hat\ell_x\right)^{1/\bar\rho_x}$$ where $$\bar{\rho}_x = \log (a)\left\{ \log\Big( \frac{\hat\varphi_{m}(x)-\hat\varphi_{am}(x)}{\hat\varphi_{am}(x)-\hat\varphi_{a^2m}(x)} \Big) \right\}^{-1} , \quad \hat{\ell}_x = \frac {1}{m}\left[\frac{\Gamma(1+ 1/\bar\rho_x)\big(1-a^{-1/\bar\rho_x}\big)}{\hat\varphi_{m}(x)-\hat\varphi_{am}(x)}\right]^{\bar\rho_x},$$ with \(a\geq 2\) being a fixed integer. If the true tail-index \(\rho_x=\beta_x+2\) is known, we set \(\bar{\rho}_x=\rho_x\) in the expressions above. The two smoothing parameters \(m\) and \(a\) have to be fixed by the user in the 4th and 5th arguments of the function.

The pointwise \(95\%\) confidence interval of \(\varphi(x)\) derived from the asymptotic normality of \(\tilde\varphi_{m}(x)\) is given by \([\tilde{\varphi}_m(x) \pm 1.96 \, \hat\sigma(m,x)/\sqrt{n}]\) where $$ \hat\sigma^2(m,x)= \frac{2m^2}{ \hat F_X(x)}\int_0^{\varphi_{fdh}(x)} \int_0^{\varphi_{fdh}(x)} \hat F^{m}(y|x)\hat F^{m-1}(u|x)(1-\hat F(u|x)) 1_{(y\le u)}\, dy\,du,$$ with \(\hat F_X(x) =(1/n)\sum_{i=1}^n1_{(x_i\leq x)}\). Note that the standard deviation \(\sigma(m,x)/\sqrt{n}\) of the bias-corrected estimator \(\tilde{\varphi}_m(x)\) is adjusted by a bootstrap estimator in the numerical illustrations of Daouia et al. (2012), whereas the exact estimate \(\hat\sigma(m,x)/\sqrt{n}\) is utilized in the implemented function. A practical choice of \(m\) that Daouia et al. (2012) have employed is the simple rule of thumb \(m=coefm \times N^{1/3}_x\), where \(N_x=\sum_{i=1}^n1_{\{x_i\le x\}}\), and the integer coefm as well as the second smoothing parameter a are to be tuned by the user to avoid numerical instabilities in the pointwise estimates of the tail-index \(\rho_x\) and the frontier function \(\varphi(x)\). The user may start with the values coefm=5 and a=2 [respectively, coefm=10 and a=20] for computing the estimator \(\tilde{\varphi}_m(x)\) [respectively, \(\bar{\rho}_x\)]. Note that tail-index estimation and frontier estimation are conducted separately.

References

Daouia, A., Florens, J.-P. and Simar, L. (2012). Regularization of Nonparametric Frontier Estimators. Journal of Econometrics, 168, 285-299.

See Also

rho_pwm, mopt_pwm.

Examples

Run this code
# NOT RUN {
data("post")
x.post<- seq(post$xinput[100],max(post$xinput), 
 length.out=100) 
# }
# NOT RUN {
# 1. When rho[x] is known and equal to 2, we set:
rho<-2
res.pwm.1<- dfs_pwm(post$xinput, post$yprod, x.post, coefm=5,
 a=2, rho, ci=TRUE)
# 2. When rho[x] is unknown and dependent of x, 
# its estimate hat(rho[x]) is obtained via:
rho_pwm <- rho_pwm(post$xinput, post$yprod, x.post, coefm=10, a=20)
# and the corresponding frontier estimator via: 
res.pwm.2<- dfs_pwm(post$xinput, post$yprod, x.post, coefm=5,
 a=2, rho_pwm, ci=TRUE)
# 3. When rho[x] is unknown but independent of x, 
# a robust estimation strategy is by using the (trimmed) mean 
# over the estimates hat(rho[x]): 
rho_trimmean<-mean(rho_pwm, trim=0.00)
res.pwm.3<- dfs_pwm(post$xinput, post$yprod, x.post, coefm=5,
 a=2, rho_trimmean, ci=TRUE)
# }

Run the code above in your browser using DataLab