Advertisement
Guest User

Untitled

a guest
Jan 14th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.21 KB | None | 0 0
  1. set.seed(1234)
  2. library(ADMM)
  3. delta <- 0.1
  4. n <- 50; p <- 200;
  5.  
  6. probs_0 <- NULL;
  7. probs_1 <- NULL;
  8. probs_4 <- NULL;
  9.  
  10. for(k in seq(1, 25, by=2)) {
  11.  
  12.   prob_0 <- 0;
  13.   prob_1 <- 0;
  14.   prob_4 <- 0;
  15.  
  16.   for(j in 1:100) {
  17.     A <- matrix(rnorm(n*p, 0, 1), nrow=n, ncol=p)
  18.     xstark <- c(rnorm(k, 0, 1), rep(0, 200-k))
  19.     b <- A %*% xstark
  20.    
  21.     x_0 <- admm_bp(A, b)$fit()$beta
  22.    
  23.     D <- diag(1/(abs(x_0)+delta)[,1])
  24.     gamma_bar <- admm_bp(A %*% solve(D), b)$fit()$beta
  25.     x_1 <- solve(D) %*% gamma_bar
  26.    
  27.     D <- diag(1/(abs(x_1)+delta)[,1])
  28.     gamma_bar <- admm_bp(A %*% solve(D), b)$fit()$beta
  29.     x_2 <- solve(D) %*% gamma_bar
  30.    
  31.     D <- diag(1/(abs(x_2)+delta)[,1])
  32.     gamma_bar <- admm_bp(A %*% solve(D), b)$fit()$beta
  33.     x_3 <- solve(D) %*% gamma_bar
  34.    
  35.     D <- diag(1/(abs(x_3)+delta)[,1])
  36.     gamma_bar <- admm_bp(A %*% solve(D), b)$fit()$beta
  37.     x_4 <- solve(D) %*% gamma_bar
  38.    
  39.     if(max(abs(x_0 - xstark)) < 0.01) prob_0 = prob_0 + 1
  40.     if(max(abs(x_1 - xstark)) < 0.01) prob_1 = prob_1 + 1
  41.     if(max(abs(x_4 - xstark)) < 0.01) prob_4 = prob_4 + 1
  42.   }
  43.  
  44.   probs_0 <- c(probs_0, prob_0/100)
  45.   probs_1 <- c(probs_1, prob_1/100)
  46.   probs_4 <- c(probs_4, prob_4/100)
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement