aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2016-02-08 14:22:35 -0500
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2016-02-08 14:22:35 -0500
commitae150684637c7b6047bffd4ea86817f52662541e (patch)
tree60fe78ba86c480103c4e7e237f68d3d166107b03
parentinitial commit (diff)
downloadsparsestep-ae150684637c7b6047bffd4ea86817f52662541e.tar.gz
sparsestep-ae150684637c7b6047bffd4ea86817f52662541e.zip
redefine gamma to correspond to theory
-rw-r--r--R/fit.sparsestep.R6
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)
}