3 ms·
Interesting for sure, I actually contributed to developing tools for making synthetic data recently. This Python module => [redacted] is what we developed. We e
by x86ARMsRace 6y ago
Interesting for sure, I actually contributed to developing tools for making synthetic data recently. This Python module => [redacted] is what we developed. We ended up hitting a snag with our initial research as scaled synthetic data generators are generally not open-source. We put this together to fix that.
It's pretty cool, because both the branches let you create custom generators. One we tinkered with was using T-Digests to profile large datasets to produce synthetic data, rather than just fake data. Basically we're working on something that lets you take in data and spit out something with identical statistical information inside. One thing you can use this for is stripping out confidential data (in theory at least). Another use case was to expand dataset sizes.
- bordercases 6y agoWhen would it be inappropriate to use synthetic data to increase your study's statistical power?
- x86ARMsRace 6y agoThat's not something I'm really equipped to comment on all that much. My role was mostly as a software developer, less a data scientist. I can talk about how to improve the statistical power of the data you are using though, since there's a few ways to make synthetic data. Maybe something in here can answer your question. Dummy data, like what the Faker (various languages) package does has very little utility other than testing systems and developing prototypes with similar schema to the real thing. It can be used as a starting point for making synthetic data, and that's what we did. Getting into synthetic data, there's sequential and non-sequential synthetic data. Sequential would generate a single datum, such as age, then use that as the starting point to produce the rest. For instance: age = 29 => Income for age (20 < x < 30) draw from distribution [30, 70], for incomes in that distribution... ect Here you have actually really high utility data and can use it for producing basic models that you can then apply to the real data. Non-sequential data on the other hand creates independent datum with a specific rule, but ignores the interdependence of the rules. For example, where a sequential dataset may contain less than 1% of people age 20 to 30 who are retired, a non sequential dataset may contain a distribution based on the group average, leading to a skewed number of people age 20 to 30 who are retired.
- Random_ernest 6y agoHaving worked extensively on synthetic data, what's your "verdict" on the topic? People seem to be very divided about it.
- x86ARMsRace 6y agoI think it definitely has its uses. Is it an effective drop in replacement for sensitive data in all scenarios? I never really got that impression. My biggest takeaway was that it is excellent for development and early refinement. Having access to synthetic data like this would let you give lower level analysts or people with lower clearances data similar to the confidential data you're working with. That's a good way to reduce costs, while also developing skills that would have otherwise been difficult to develop without providing access to the data itself. What I found is that it's a valuable tool for bringing something up to a state where it can be applied to real data, and refined further. So, long story short would be that I think it certainly has uses, however those uses eventually lead back to using real data.