-
Notifications
You must be signed in to change notification settings - Fork 41
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
Results seem to be meaningless when smax > rank(X). #495
Comments
@brtang63 , I am confused about this question. In this example, n is 30, i.e., rank(X) = 30; on the contrary, the maximum support size is 15 such that rank(X) >= support size. So, what warning shall be thrown? |
Oh... I see... Let me simplify this code. |
Shall you do this since I cannot obtain the newest result shown in the screenshot. Also, simplify this code to a minimal one. And paste the results in code chunck... Many thanks! |
Actually, abess checks whether max(support.size) < nobs, but not rank(X). The following code will produce an error. However, when rank(X) < smax < nrow(X), there is no warning reported. library(abess)
data <- generate.data(n = 10, p = 100, support.size = 10)
abess(data$x, data$y, support.size = 0:15)
#> Error in abess.default(data$x, data$y, support.size = 0:15) : max(support.size) < nobs is not TRUE |
Thanks for this comment and your clarification! It is an excellent comment in view of numerical analysis, but we will not address this issue temporarily. This is because computing/estimating the rank of a matrix, actually, is very time-consuming. To my knowledge, computing rank has to obtain all of the eigenvalues of this matrix which has a time complexity of N^3 where N is the matrix size. So, until a fast rank determination algorithm is well developed, we will incorporate this fast algorithm into my implementation. Or if you know about such a fast algorithm for computing rank, we are glad to implement it into our project. |
I get it. Thanks for your clear and helpful explanation! |
No warning is suggested when rank of the design matrix <= support size. When the support size gets larger, results seem to be meaningless. What about throwing a warning? The following code provides a demo.
The text was updated successfully, but these errors were encountered: