Open gaow opened 5 years ago
At least susie_auto
can potentially be tuned better to handle this, if we do not have a better alternative. Currently we did not exploit susie_auto
a lot.
i also investigated it here: https://stephens999.github.io/susier-investigate/false-positive.html
(this link not yet working for me; I'm not sure why!)
the current version of susie_auto does deal ok with this example
I have found changepoint examples particularly helpful for creating challenging examples for convergence. Here is a minimal example for now. I am still investigating and will do a more thorough report later. (susie_auto does not deal with this example yet, for several reasons i'll also report later).
This function fits susie to changepoint data (ie piecewise constant function, aka trendfilter with ord=0)
susie_cp = function(y,auto=FALSE,...){
n=length(y)
X = matrix(0,nrow=n,ncol=n-1)
for(j in 1:(n-1)){
for(i in (j+1):n){
X[i,j] = 1
}
}
if(auto){
s = susie_auto(X,y,...)
} else {
s = susie(X,y,...)
}
return(s)
}
This example is challenging because you need 2 changepoints very close (ie at very correlated variables):
set.seed(1)
x = rnorm(100)
x[50]=8
x.s = susie_cp(x)
plot(x)
lines(predict(x.s))
Here is an example of an edge case showing convergence difficulties SuSiE has:
https://gaow.github.io/mvarbvs/analysis/20181009_Null_Weight.html
Just to document the experiments here, for revisiting in the future.