library(hdrm)

# Ridge and lasso penalty shapes (slide 5)
Fig2.1()

# Hard and soft thresholding (slide 21)
Fig2.2()

# Univariate sampling distribution (slide 23)
Fig2.3()

# Surfaces for slide 18
library(rgl)
a <- b <- seq(-1, 2, len=99)
f <- function(a, b, lam) {
  1/4*((1-a-b)^2+(-1+a+b)^2) + lam*abs(a) + lam*abs(b)
}
persp3d(a, b, outer(a, b, f, lam=2), col='slateblue', zlim = c(0.25, 5))
close3d()
persp3d(a, b, outer(a, b, f, lam=0.5), col='slateblue', zlim = c(0.25, 1))
