From ae150684637c7b6047bffd4ea86817f52662541e Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Mon, 8 Feb 2016 14:22:35 -0500 Subject: redefine gamma to correspond to theory --- R/fit.sparsestep.R | 6 +++--- 1 file 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) } -- cgit v1.2.3