Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. set.seed(1)
  2. n=500
  3. p=1
  4. a=rnorm(n*p, mean = 10, sd = 1)
  5. x=matrix(a,n,p)
  6. beta=rnorm(p,1,1)
  7. beta=matrix(beta,p,1)
  8. y=x%*%beta-matrix(rnorm(n,0.1,1),n,1)
  9. tau=0.01 # example tau, here to get underapproximation
  10.  
  11. library(microbenchmark)
  12.  
  13. # quantreg solution
  14. library(quantreg)
  15. microbenchmark(rq(y~0+x, tau)) # quantreg, 1.0 ms, beta=-0.023
  16.  
  17. # using Brent line search, using [0, least square estimate] search interval
  18. quantloss = function(beta, x, y, tau) { r=y-beta*x # quantile loss function
  19. sum(r*(r>0) - (1-tau)*r) }
  20. microbenchmark(optimize(quantloss,
  21. interval=c(0, mean(x*y)/mean(x*x)), # mean(x*y)/mean(x*x) = least square beta
  22. x=x, y=y, tau=tau)$minimum) # 227 ยตs, beta=0.84
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement