-
Notifications
You must be signed in to change notification settings - Fork 8
Uploaded mEstimators.jl #68
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
base: master
Are you sure you want to change the base?
Conversation
|
Thanks! this is nice but would benefit from a bit of cleaning up:
did you want us to take over the PR or do you want to clean it up yourself? |
Codecov Report
@@ Coverage Diff @@
## master #68 +/- ##
===========================================
- Coverage 96.84% 77.06% -19.79%
===========================================
Files 4 5 +1
Lines 222 279 +57
===========================================
Hits 215 215
- Misses 7 64 +57
Continue to review full report at Codecov.
|
|
Hi
One thing: Julia's cholesky function is not very efficient for matrices of dimension up to about 400 when BLAS is instructed to use several threads. See here. However, several threads for BLAS may be handy later on in the algorithms. One way around may be to set |
|
I have tried the |
line 95 was `scm = (X' * X) .* inv(n)` instead of `scm = (X * X') .* inv(n)`
Hello, I cleaned up the code some more. Please let me know how you want to proceed.
|
Hello, Does the latest code i uploaded suits you? Cheers, |
|
Hi! Thanks for the code 👍 . I'll try to find some time this weekend to integrate it with the rest of the library. |
|
OK, great, thanks. |
|
I'm a bit swamped at the moment but will hopefully also have a look soon, once @mateuszbaran has had a chance too, in any case, thanks a lot for the contribution! |
|
With pleasure, and thank you for taking it up and do the integration. |
|
I've started updating your code to our style. How do you interpret these mean distances expressed in dB? Is there a threshold for considering these values "good enough"? |
|
I have done this with a colleague that is very much familiar with the Tyler's estimator. I will ask him what a reasonable threshold is and get back to you. I will also ask some matlab code for formal testing. I would not include the t-distribution comparison as a test, but as an example for demonstration purposes. |
|
Hello Mateusz, sorry for the late reply but my colleague took some time to answer. What they do is to check that the estimator sticks to the Cramér-Rao bound, as shown in this paper. The good thing is that the bound is very easy to compute as it depends only on the matrix size and number of samples (Eq. 17 therein), but agian, this does not make a formal test. Alternatively, i can send you some Matlab code confidentially (it is not mine) for testing my implementation over that one on a fixed matrix. If this is good for you please send me a mail at marco dot congedo at gmail dot com as i don't have your. Cheers! |
|
Thanks for the reply and sorry for not finishing my changes. I'd prefer to avoid looking at some non-public code in this case. I would appreciate though if you could send me computed covariance matrices for a few sample matrices, my e-mail is in the Project.toml file: mateuszbaran89 at gmail dot com. |
|
Hi Mateusz, i uploaded in the "test" directory of my brunch three .mat files and a script for performing the tests. |
|
Thanks again, I'll integrate it later. |
|
Hello, hope all is good with you. Any news on the integration of the M-estimators? |
|
Hi! Sorry, I constantly get distracted with something else. I'll push it a bit forward today. |
|
Weird, when I subtract mean from the matrix Looks like some problem with numerical accuracy of eigenvalue calculation. Could you check that? |
|
Hi, The error occurs in one of those lines of test_m-estimators.jl: Since just above you are checking positive definitiveness of or However, the formal test i sent in TestTeyler.jl is all we need i think, as this compare the result to a well-established Matlab code. Also, by the way, although i don't have a formal test for the other Tyler's estimate, i have been trying the code a lot with real data and i have meaningful results, so, i'm pretty confident that is correct as well. |
|
I've taken a look at that Tyler's paper: https://projecteuclid.org/download/pdf_1/euclid.aos/1176350263 and it looks like the main algorithm assumes zero mean of the input data and there are some caveats when the mean needs to be estimated (Section 4). I'll have to read it more carefully. |
No description provided.