Skip to content

GraphLasso with robust correlation estimates #6887

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
amueller opened this issue Jun 13, 2016 · 4 comments
Closed

GraphLasso with robust correlation estimates #6887

amueller opened this issue Jun 13, 2016 · 4 comments

Comments

@amueller
Copy link
Member

amueller commented Jun 13, 2016

This was on the mailing list and seemed like it shouldn't go in the trash:

Hi all,

I'm using GraphLASSO to estimate the graphical model and precision 
matrix of my variables. It is well known that GraphLASSO and related 
methods are very sensitive to contaminated data and their estimates have 
low break-down points:
http://arxiv.org/abs/1501.01219

As suggested by the authors in the above paper I'd like to use 
GraphLASSO with robust correlation matrices to estimate the precision 
matrix.  When I looked at the source code of GraphLASSO however, it 
seemed like there's no way to supply the fit method with a 
pre-calculated correlation matrix, as it is calculated internally and 
automatically using the empirical_covariance() method.

I know that if I rank my data column-wise before applying GraphLASSO 
I'll get Spearman correlation. I tried this, and it already improves the 
performance of GraphLASSO with outliers, so I'd advise adding this trick 
to the documentation to raise awareness of this issue.

But the authors suggest the Gaussian rank correlation works even better 
than Spearman, because it handles normally distributed variables better, 
while still having high break-down point as Spearman. Therefore I'd like 
to calculate a Gaussian rank correlation matrix and supply it to the 
GraphLASSO method. Is there any way with the current implementation to 
do this or should I rewrite the GraphLASSO class to make this possible?

Cheers,
Daniel

@GaelVaroquaux
Copy link
Member

The low-level graph_lasso function takes the empirical covariance as an
argument. The object GraphLasso cannot do that, because it would violate
the scikit-learn API.

@agramfort
Copy link
Member

agramfort commented Jun 14, 2016 via email

@btabibian
Copy link
Contributor

@agramfort @GaelVaroquaux Would you please CR this?

@glemaitre
Copy link
Member

Nowadays we can pass a precomputed covariance matrix that could fulfill this needs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants