Giter Club home page Giter Club logo

Comments (2)

bbayukari avatar bbayukari commented on August 22, 2024

I'm very sorry for taking such a long time to reply to you. Your question did indeed trouble me for quite some time.

Let me start with the conclusion: there are no bugs in the program, and the differing results are within the normal range.

One way to improve the results is by specifying an appropriate value for the parameter lambda in abess. Additionally, removing highly correlated variables can be also helpful, particularly c500_c694, c640_c694, c220_c694, c750_c694, c92_c694, c235_c694, c811_c694, etc., when only one sample is non-zero for each of them.

Below is the specific reason behind the differing results: When selecting s variables, abess requires that there isn't excessive multicollinearity among any 2s variables. For instance, if we have 1000 samples and need to select 50 out of 10000 variables, even though there will inevitably be multicollinearity issues involving not more than 1000 variables in the data, abess typically works correctly. However, if variable1 and variable2 have a (nearly) perfect correlation (a multicollinearity issue involving only 2 variables), the choice of variable1 over variable2 by abess will depend on the underlying numerical computation. It's worth noting that either choice is correct, and abess does not perform any additional checks in this case.

In fact, I have observed the phenomenon where the line of code "Eigen::VectorXd beta_full = XTX.ldlt().solve(XTy);" yields different results on macOS and Windows. This is due to the fact that the matrix XTX is singular, so the solution is not unique. This aligns with Eigen's documentation: "This method just tries to find as good a solution as possible." Since abess is an iterative algorithm, it's foreseeable that subsequent results may differ.

Finally, thank you for your feedback on the abess project. If you have any further questions or need to continue the discussion, please feel free to reach out. Your input is greatly appreciated.

from abess.

bdesmarais avatar bdesmarais commented on August 22, 2024

Thanks for looking into this. I appreciate the detailed response! In the pipeline we're developing we'll implement some additional screening to head this off before running ABESS.

from abess.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.