diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2016-02-08 14:22:35 -0500 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2016-02-08 14:22:35 -0500 |
| commit | ae150684637c7b6047bffd4ea86817f52662541e (patch) | |
| tree | 60fe78ba86c480103c4e7e237f68d3d166107b03 | |
| parent | initial commit (diff) | |
| download | sparsestep-ae150684637c7b6047bffd4ea86817f52662541e.tar.gz sparsestep-ae150684637c7b6047bffd4ea86817f52662541e.zip | |
redefine gamma to correspond to theory
| -rw-r--r-- | R/fit.sparsestep.R | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/R/fit.sparsestep.R b/R/fit.sparsestep.R index ca40f43..aabf6f6 100644 --- a/R/fit.sparsestep.R +++ b/R/fit.sparsestep.R @@ -85,7 +85,7 @@ sparsestep <- function(x, y, lambda=1.0, gamma0=1e6, { for (i in 1:IMsteps) { alpha <- beta - omega <- gamma/(alpha^2 + gamma)^2 + omega <- gamma^2/(alpha^2 + gamma^2)^2 Omega <- diag(as.vector(omega), m, m) beta <- solve(XX + lambda * Omega, Xy) } @@ -100,7 +100,7 @@ sparsestep <- function(x, y, lambda=1.0, gamma0=1e6, while ((lbar - loss)/loss > epsilon) { alpha <- beta - omega <- gamma/(alpha^2 + gamma)^2 + omega <- gamma^2/(alpha^2 + gamma^2)^2 Omega <- diag(as.vector(omega), m, m) beta <- solve(XX + lambda * Omega, Xy) lbar <- loss @@ -133,7 +133,7 @@ get.loss <- function(x, y, gamma, beta, lambda) Xb <- x %*% beta diff <- y - Xb b2 <- beta^2 - binv <- 1/(b2 + gamma) + binv <- 1/(b2 + gamma^2) loss <- t(diff) %*% diff + lambda * t(b2) %*% binv return(loss) } |
