Was sind einige Standardverfahren zum Erstellen synthetischer Datensätze?

26

Als Kontext: Wenn ich mit einem sehr großen Datensatz arbeite, werde ich manchmal gefragt, ob wir einen synthetischen Datensatz erstellen können, in dem wir die Beziehung zwischen Prädiktoren und der Antwortvariablen oder die Beziehungen zwischen Prädiktoren "kennen".

Im Laufe der Jahre scheinen mir entweder einmalige synthetische Datensätze zu begegnen, die so aussehen, als wären sie ad hoc zusammengestellt worden, oder strukturiertere Datensätze, die für die vom Forscher vorgeschlagene Modellierungsmethode besonders günstig erscheinen.

Ich glaube, dass ich Standardmethoden für die Erstellung von synthetischen Datensätzen übersehen habe. Obwohl Bootstrap Resampling eine verbreitete Methode zur Erstellung von synthetischen Datensätzen ist, erfüllt es nicht die Bedingung, dass wir die Struktur a priori kennen . Darüber hinaus erfordert der Austausch von Bootstrap-Samples mit anderen im Wesentlichen den Austausch von Daten anstelle eines Datenerzeugungsverfahrens.

Wenn wir eine parametrische Verteilung an die Daten anpassen oder ein hinreichend genau parametrisiertes Modell finden können, ist dies ein Beispiel, in dem wir synthetische Datensätze generieren können.

Welche anderen Methoden gibt es? Ich interessiere mich besonders für hochdimensionale Daten, spärliche Daten und Zeitreihendaten. Für hochdimensionale Daten würde ich nach Methoden suchen, mit denen sich interessante Strukturen erzeugen lassen (z. B. Kovarianzstrukturen, lineare Modelle, Bäume usw.). Für Zeitreihendaten aus Verteilungen über FFTs, AR-Modelle oder verschiedene andere Filter- oder Vorhersagemodelle scheint dies ein Anfang zu sein. Bei spärlichen Daten erscheint die Reproduktion eines Sparsity-Musters sinnvoll.

Ich glaube, das kratzt nur an der Oberfläche - das sind heuristische, keine formalen Praktiken. Gibt es Referenzen oder Ressourcen zur Generierung synthetischer Daten, die den Praktikern bekannt sein sollten?


Anmerkung 1: Mir ist klar, dass sich diese Frage mit der Literatur befasst, wie man Daten wie ein bestimmtes Zeitreihenmodell erzeugen kann. Die Unterscheidung erfolgt hier nach Praktiken, insbesondere um eine bekannte Struktur (meine Frage) gegenüber der Ähnlichkeit / Wiedergabetreue mit einem vorhandenen Datensatz anzugeben. In meinem Fall ist es nicht notwendig, Ähnlichkeit zu haben, genauso wenig wie eine bekannte Struktur, obwohl Ähnlichkeit der Unähnlichkeit vorgezogen wird. Ein exotischer synthetischer Datensatz, für den ein Modell vielversprechend ist, wird einer realistischen Simulation vorgezogen.

Anmerkung 2: Der Wikipedia-Eintrag für synthetische Daten weist darauf hin, dass sich Leuchten wie Rubin und Fienberg mit diesem Problem befasst haben, obwohl ich keine Referenzen zu Best Practices gefunden habe. Es wäre interessant zu wissen, was zum Beispiel mit den Annals of Applied Statistics (oder dem AOS) oder in Überprüfungsarbeiten in diesen oder anderen Zeitschriften passieren würde. In einfachen und skurrilen Worten kann man fragen, wo die Schwelle zwischen "(akzeptabel) gekocht" und "zu gekocht" besteht?

Anmerkung 3: Obwohl dies keine Auswirkung auf die Frage hat, besteht das Verwendungsszenario in der Modellierung unterschiedlich großer, hochdimensionaler Datensätze, wobei die Forschungsagenda darin besteht , die Struktur der Daten (sowohl von Mensch als auch Maschine ;-)) zu lernen. Im Gegensatz zu univariaten, bivariaten und anderen niedrigdimensionalen Szenarien lässt sich die Struktur nicht ohne Weiteres ableiten. Auf dem Weg zu einem besseren Verständnis der Struktur ist es von Interesse, Datensätze mit ähnlichen Eigenschaften generieren zu können, um zu sehen, wie eine Modellierungsmethode mit den Daten interagiert (z. B. um die Parameterstabilität zu untersuchen). Ältere Leitfäden zu niedrigdimensionalen synthetischen Daten können jedoch ein Ausgangspunkt sein, der für höherdimensionale Datensätze erweitert oder angepasst werden kann.

Iterator
quelle

Antworten:

7

Ich bin nicht sicher , es gibt Standardverfahren für synthetische Daten zu erzeugen - es in so viele verschiedenen Aspekten der Forschung so stark verwendet wird, dass Zweck gebaute Daten ein häufiger und wohl vernünftiger Ansatz zu sein scheinen.

Für mich ist es die beste Standardpraxis , den Datensatz nicht zu erstellen, damit er gut mit dem Modell zusammenarbeitet. Dies ist Teil der Forschungsphase und nicht Teil der Datenerzeugungsphase. Stattdessen sollten die Daten so gestaltet sein, dass sie den Datenerzeugungsprozess widerspiegeln . Zum Beispiel gehe ich für Simulationsstudien in der Epidemiologie immer von einer großen hypothetischen Population mit bekannter Verteilung aus und simuliere dann die Stichprobenbildung aus dieser Population, anstatt direkt "die Studienpopulation" zu erzeugen.

Zum Beispiel, basierend auf unserer Diskussion unten, zwei Beispiele von simulierten Daten, die ich gemacht habe:

  • Ähnlich wie in Ihrem Beispiel für das SIR-Modell unten habe ich einmal ein mathematisches Modell der Ausbreitung von Krankheiten über ein Netzwerk verwendet, um mir durch Simulation zu zeigen, dass ein bestimmter konstanter Parameter nicht unbedingt eine konstante Gefahr darstellt, wenn Sie die Ergebnisse als Ergebnis behandeln einer Kohortenstudie. Es war ein nützlicher Proof of Concept, als ich nach einer analytischen Lösung suchte.
  • Ich wollte die Auswirkungen eines bestimmten Stichprobenplans für eine Fall-Kontroll-Studie untersuchen. Anstatt zu versuchen, die Studie vollständig zu generieren, ging ich jeden Schritt des Prozesses durch. Eine Bevölkerung von 1.000.000 Menschen mit einer bestimmten bekannten Prävalenz von Krankheiten und einem bekannten kovariaten Muster. Anschließend wird der Stichprobenprozess simuliert - in diesem Fall, wie Fälle und Kontrollen aus der Grundgesamtheit gezogen wurden. Erst dann habe ich ein aktuelles statistisches Modell auf die gesammelten "simulierten Studien" geworfen.

Simulationen wie die letztere sind sehr verbreitet, wenn es darum geht, die Auswirkungen von Studienrekrutierungsmethoden, statistischen Ansätzen zur Kontrolle von Kovariaten usw. zu untersuchen.

Fomite
quelle
Danke für die Antwort. Basierend auf dem, was ich über Epidemiologie weiß, wurde jedoch noch viel mehr getan, um ziemlich nützliche stochastische Modelle zu entwickeln, insbesondere SIR-Modelle. Dies ist in vielen anderen Bereichen nicht der Fall, obwohl die schnelle Entwicklung akzeptabler stochastischer Datenmodelle Teil meiner Absicht ist.
Iterator
@Iterator Das hängt stark davon ab, wo Sie sich befinden und über welchen Aspekt der Epidemiologie Sie sprechen. Ein Krebsepidemiologe zum Beispiel wäre schockiert zu hören, dass mit SIR-Modellen "viel mehr" getan wurde - sie haben wahrscheinlich noch nie einen in ihrer Arbeit angetroffen. Während Modelle vom Typ SIR einen Aspekt eines bestimmten Teils der Epidemiologie darstellen (Infektionskrankheit epi, und selbst dann nicht einmal eine große Teilmenge von ID Epi), nutzt die Epidemiologie als Fachgebiet statistische Modelle, insbesondere allgemeine lineare Modelle, in großem Maße zum Überleben Analyse und Zeitreihen.
Fomite
Whoa. Keine Straftat, ich habe nur angegeben, dass SIR-Modelle ein sehr gutes Beispiel für ein Standardmodell zur Datengenerierung sind. Natürlich ist mir bewusst, dass es in anderen Bereichen von epi ein ganzes Spektrum von Modellierungsmethoden gibt. Wenn Sie Hinweise oder Verweise auf andere in der Epidemiologie verwendete Methoden zur Datenerzeugung haben, bin ich ihnen gegenüber sehr aufgeschlossen.
Iterator
1
@Iterator Tut mir leid, wenn ich den Eindruck hatte, beleidigt zu sein. Sehr viel nicht;). Es ist nur etwas, was ich verstehe , weil ich im Schnittpunkt zwischen mathematischem Epi und beobachtender Epidemiologie sitze und die Menschen in einem Bereich verblüfft sind, während der andere Bereich existiert. Ich bearbeite meine Antwort anhand eines Nicht-SIR-Beispiels.
Fomite
2

Das statistische Paket R verfügt über eine Simulationsfunktion, die Daten basierend auf einem Modell simuliert, das an vorhandene Daten angepasst ist. Dabei wird das angepasste Modell als "bekannte" Populationsbeziehung verwendet, und anschließend werden basierend auf diesem Modell neue Daten simuliert. Es gibt eine Methode für diese Funktion im Paket lme4. Diese angepassten Objekte können zufällige und feste Effekte und Korrelationen (einschließlich Autokorrelation für Zeitreihen) berücksichtigen.

Dies kann funktionieren, was Sie wollen.

Greg Snow
quelle
Danke für den Vorschlag. Diese Funktion ist sicherlich nützlich, obwohl mein Interesse eher auf statistischen Praktiken und Methoden als auf Code für eine bestimmte Lösung beruht. Dies ist vergleichbar mit der Frage nach Probenahmemethoden oder reproduzierbaren Analysen und nicht nach bestimmten Paketen, die diese Methoden und Analysen implementieren. Dennoch sollten gute Methoden zu Paketen werden. :)
Iterator