Learn R Programming

npbr (version 1.8)

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)

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.

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.

Author

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

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
data("post")
x.post<- seq(post$xinput[100],max(post$xinput), 
 length.out=100) 
if (FALSE) {
# 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