-
Notifications
You must be signed in to change notification settings - Fork 11
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
MICE (Multiple Imputation by Chained Equations) implementation #3
Comments
+1, this would be awesome. |
Hello. I was about to open the same issue but I've seen you already created it :) How can I do multiple imputation when I have several variables or I want to use more complex methods?, for example using: fully conditional specification (chained equations, mice), bayesian methods, random forest, multilevel imputation, nested imputation, censored data, categorical data, survival data… I've also created a thread at Julia discourse but nobody replies. I would like to move from R to Julia. |
I'm intending to switch back to this project in the next couple weeks, so hopefully we should have some basic multiple imputation methods available relatively soon. We need to update this package for our 1.0 migration anyways. Unfortunately, I'll be starting out with some simpler methods like iterative PPCA as MultivariateStats.jl is a pretty minimal dependency relative to GLM.jl.
Right now my recommendation would be to use existing libraries in R, Python or C (e.g., RCall.jl, PyCall.jl). In fact, I was considering starting off by wrapping the R mice package rather than writing it from scratch.
Yeah, I don't know of anyone else focusing on imputation methods right now and I don't generally follow discourse. |
I would be interested in helping to work on this. It's been a while since I looked at the implementations in R; I remember the mice and mi packages. Is there a consensus as to what is considered the canonical implementations in R (or Python)? |
I believe the R mice package is well regarded, but I don't think we can look at the implementation due to licensing restrictions (GPL vs MIT). It'd probably be better to work on our own implementation from first principles anyways. NOTE: Some discussions we've been having internally may set the ground work for this. Specifically, we're considering moving the current |
Any news? |
Has anyone made a start on this? If they have I would like to offer some help, and if not I can try making an initial version. |
@Hasnep : Thank you so much!! This completely fell off my radar, but I'm happy to help if you and/or others want to start an initial version!! |
I don't know of anyone who has worked on it yet. Having a julia MICE implementation has become a pretty low priority for Invenia (vs improving the flexibility of the API), so I doubt I'll have time to work on it. As I mentioned above, I think the path of least resistance would be to create a separate MICE.jl package which uses RCall to wrap the R package for now. If that package wants to extend the Impute.jl API that's great, but I'm not sure it should be a requirement for a first pass. We can always choose to merge the two package later if the internal MICE.jl implementation is ever replaced with a pure julia version. |
I've being reading some benchmarks and it seems that the fastest R package for imputation is hmisc. |
This Julia package by @bethandtownes wraps MICE: |
I didn't know it. |
@skanskan would you like a more full feature completed MICE wrapper? I can try to make that happen. |
@bethandtownes The truth is that I don't need to use imputation libraries anymore. I needed it a year ago because I was writing my thesis, but I have already finished. I am a physicist and I have done a PhD in biostatistics, analyzing large medical databases. I would have liked to use Julia but I found it lacks some important libraries: multiple imputation and meta-analysis. Then I did the thesis using R, though it is slow and doesn't manage the memory properly. I don't know if I will ever need MICE again for me, but anyway I think it would be very useful addition to attract new users to Julia. |
I would love that. |
ok. I will extend the MICE implementation. |
Resurrecting this discussion to say: I made a start on a MICE implementation in Julia here: https://github.com/tom-metherell/Mice.jl. It's heavily based on the R package, but is written entirely in Julia. I haven't tested it extensively yet, but maybe you'd like to 😊 |
Nice! I don't think there's much to add here as the MICE workflow is sufficiently different (e.g., only works with tables, returns an |
No description provided.
The text was updated successfully, but these errors were encountered: