All the tests were done on an Arch Linux x86_64 machine with anIntel(R) Core(TM) i7 CPU (1.90GHz).
We show the performance of computing empirical likelihood withel_mean(). We test the computation speed with simulateddata sets in two different settings: 1) the number of observationsincreases with the number of parameters fixed, and 2) the number ofparameters increases with the number of observations fixed.
We fix the number of parameters at\(p =10\), and simulate the parameter value and\(n \times p\) matrices usingrnorm(). In order to ensure convergence with a large\(n\), we set a large threshold value usingel_control().
library(ggplot2)library(microbenchmark)set.seed(3175775)p<-10par<-rnorm(p,sd =0.1)ctrl<-el_control(th =1e+10)result<-microbenchmark(n1e2 =el_mean(matrix(rnorm(100* p),ncol = p),par = par,control = ctrl),n1e3 =el_mean(matrix(rnorm(1000* p),ncol = p),par = par,control = ctrl),n1e4 =el_mean(matrix(rnorm(10000* p),ncol = p),par = par,control = ctrl),n1e5 =el_mean(matrix(rnorm(100000* p),ncol = p),par = par,control = ctrl))Below are the results:
result#> Unit: microseconds#> expr min lq mean median uq max#> n1e2 480.259 552.6765 605.5336 605.2785 663.4835 747.412#> n1e3 1341.880 1584.8560 1817.1119 1755.0720 1923.7255 4458.305#> n1e4 12227.928 15504.0695 18338.3115 17224.0770 19222.8105 104056.099#> n1e5 248277.438 284915.2620 333091.8719 327406.7725 390166.0540 492460.706#> neval cld#> 100 a#> 100 a#> 100 b#> 100 cThis time we fix the number of observations at\(n = 1000\), and evaluate empiricallikelihood at zero vectors of different sizes.
n<-1000result2<-microbenchmark(p5 =el_mean(matrix(rnorm(n*5),ncol =5),par =rep(0,5),control = ctrl ),p25 =el_mean(matrix(rnorm(n*25),ncol =25),par =rep(0,25),control = ctrl ),p100 =el_mean(matrix(rnorm(n*100),ncol =100),par =rep(0,100),control = ctrl ),p400 =el_mean(matrix(rnorm(n*400),ncol =400),par =rep(0,400),control = ctrl ))result2#> Unit: microseconds#> expr min lq mean median uq max neval#> p5 776.637 857.5115 1047.512 954.4555 1097.735 2311.881 100#> p25 2995.186 3093.3480 3720.127 3245.1005 3945.950 7162.429 100#> p100 23567.613 26633.9825 33190.404 31544.7910 37026.504 73363.918 100#> p400 276768.597 329771.0900 417690.242 398333.6365 474940.140 737572.795 100#> cld#> a#> a#> b#> cOn average, evaluating empirical likelihood with a 100000×10 or1000×400 matrix at a parameter value satisfying the convex hullconstraint takes less than a second.