Каковы некоторые стандартные практики для создания синтетических наборов данных?

26

В качестве контекста: при работе с очень большим набором данных меня иногда спрашивают, можем ли мы создать синтетический набор данных, в котором мы «знаем» отношения между предикторами и переменной ответа или отношения между предикторами.

На протяжении многих лет я, кажется, сталкивался либо с одноразовыми синтетическими наборами данных, которые выглядят так, как будто они были получены специальным образом, либо с более структурированными наборами данных, которые кажутся особенно благоприятными для предложенного исследователем метода моделирования.

Я считаю, что я перебираю стандартные методы создания синтетических наборов данных. Хотя повторная выборка при начальной загрузке является одним из распространенных методов создания синтетического набора данных, она не удовлетворяет условию, что мы знаем структуру априори . Более того, обмен образцами начальной загрузки с другими, по сути, требует обмена данными, а не метода генерации данных.

Если мы можем подогнать параметрическое распределение к данным или найти достаточно близкую параметризованную модель, то это один из примеров, где мы можем генерировать синтетические наборы данных.

Какие еще методы существуют? Меня особенно интересуют данные больших размеров, разреженные данные и данные временных рядов. Для данных больших размеров я бы искал методы, которые могут генерировать интересующие структуры (например, ковариационную структуру, линейные модели, деревья и т. Д.). Для данных временных рядов, из распределений по БПФ, моделям AR или различным другим моделям фильтрации или прогнозирования, это выглядит как начало. Для разреженных данных воспроизведение шаблона разреженности кажется полезным.

Я считаю, что это только царапает поверхность - это эвристические, а не формальные практики. Существуют ли ссылки или ресурсы для создания синтетических данных, которые должны быть известны практикующим врачам?


Примечание 1: я понимаю, что этот вопрос обращается к литературе о том, как можно генерировать данные, такие как конкретная модель временных рядов. Здесь проводится различие между практиками, особенно для того, чтобы указать на известную структуру (мой вопрос), по сравнению со сходством / точностью к существующему набору данных. В моем случае нет необходимости иметь сходство в той же степени, что и известную структуру, хотя сходство гораздо предпочтительнее, чем сходство. Экзотический синтетический набор данных, для которого модель показывает перспективу, менее предпочтителен, чем реалистичное моделирование.

Примечание 2: В статье Википедии для синтетических данных указывается, что такие светилы, как Рубин и Фенберг, обратились к этой проблеме, хотя я не нашел ссылок на лучшие практики. Было бы интересно узнать, что будет происходить, скажем, с Анналами прикладной статистики (или AOS) или с обзорами работ в этих или других журналах. В простых и причудливых терминах можно спросить, где существует порог между «(приемлемо) приготовленным» и «слишком приготовленным»?

Примечание 3: Хотя это не влияет на вопрос, сценарий использования заключается в моделировании разнообразных больших, многомерных наборов данных, где программа исследования заключается в изучении (как человеком, так и машиной ;-)) структуры данных. В отличие от одномерного, двумерного и других низкоразмерных сценариев, структура не может быть легко выведена. По мере того, как мы продвигаемся к лучшему пониманию структуры, возможность генерировать наборы данных с аналогичными свойствами представляет интерес для того, чтобы увидеть, как метод моделирования взаимодействует с данными (например, для проверки стабильности параметров). Тем не менее, более ранние руководства по низкоразмерным синтетическим данным могут быть отправной точкой, которая может быть расширена или адаптирована для наборов данных более высокого измерения.

Итератор
источник

Ответы:

7

Я не уверена , что это стандартная практика для генерации синтетических данных - он используется так сильно во многих различных аспектах исследования, данные специально построенные , как представляется, более распространенный и , возможно , более разумный подход.

Для меня моя лучшая стандартная практика - не создавать набор данных, чтобы он хорошо работал с моделью. Это часть этапа исследования, а не часть этапа генерации данных. Вместо этого данные должны быть разработаны так, чтобы отражать процесс генерации данных . Например, для симуляционных исследований в эпидемиологии я всегда начинаю с большой гипотетической популяции с известным распределением, а затем симулирую выборку исследований из этой популяции, а не генерирую напрямую «исследуемую популяцию».

Например, на основе нашего обсуждения ниже, два примера смоделированных данных, которые я сделал:

  • В некоторой степени похожий на приведенный ниже пример модели SIR, я однажды использовал математическую модель распространения заболевания по сети, чтобы продемонстрировать с помощью моделирования, что определенный постоянный параметр не обязательно подразумевает постоянную опасность, если вы рассматриваете результаты как результат когортного исследования. Это было полезным доказательством концепции, пока я искал аналитическое решение.
  • Я хотел изучить влияние определенной схемы выборки для исследования типа «случай-контроль». Вместо того, чтобы пытаться создать исследование прямо, я прошел через каждый шаг процесса. Население составляет 1 000 000 человек с известной распространенностью заболевания и известной ковариатической картиной. Затем из этого моделирования процесса отбора проб - в данном случае, как случаи и средства контроля были взяты из населения. Только тогда я бросил фактическую статистическую модель на собранные «смоделированные исследования».

Моделирование, подобное последнему, очень распространено при изучении влияния методов набора исследований, статистических подходов к контролю ковариат и т. Д.

фомиты
источник
Спасибо за ответ. Тем не менее, исходя из того, что я знаю об эпидемиологии, было сделано гораздо больше в разработке довольно полезных стохастических моделей, особенно моделей SIR. Это не так во многих других областях, хотя способность быстро разрабатывать приемлемые модели стохастических данных является частью моего намерения.
Итератор
@ Итератор Это во многом зависит от того, где вы находитесь, и о каком аспекте эпидемиологии вы говорите. Например, эпидемиолог рака был бы шокирован, узнав, что с моделями SIR сделано «намного больше» - они, вероятно, никогда не сталкивались с такой моделью в своей работе. В то время как модели SIR-типа являются аспектом определенной части эпидемиологии ( Epi инфекционного заболевания и даже тогда, даже не большого подмножества ID Epi), эпидемиология как область широко использует статистические модели, особенно общие линейные модели, выживаемость. анализ и временные ряды.
Fomite
Вау. Без обид, я только заявил, что модели SIR являются очень хорошим примером стандартной модели генерирования данных. Конечно, я знаю, что есть другие области эпи, которые используют целый спектр методов моделирования. Если у вас есть несколько указателей или ссылок на другие методы генерирования данных, используемые в эпидемиологии, я вполне открыт для них.
Итератор
1
@Iterator Извините, если у меня сложилось впечатление, что я обиделась. Очень нет;). Это просто то, что я получаю, потому что я сижу прямо на пересечении математического эпи и наблюдательной эпидемиологии, и люди в одной области ошеломлены, а другая область существует. Я отредактирую свой ответ с примером типа не SIR.
Fomite
2

Статистический пакет R имеет функцию имитации, которая будет имитировать данные на основе соответствия модели существующим данным. При этом используется подобранная модель в качестве «известного» отношения населения, а затем моделируются новые данные на основе этой модели. Есть метод для этой функции в пакете lme4. Эти подогнанные объекты могут учитывать случайные и фиксированные эффекты и корреляцию (включая автокорреляцию для временных рядов).

Это может работать, делать то, что вы хотите.

Грег Сноу
источник
Спасибо за предложение. Эта функция, безусловно, полезна, хотя меня больше интересуют статистические методы и методология, а не код для конкретного решения. Это похоже на вопрос о методах отбора проб или воспроизводимых анализах, а не о конкретных пакетах, которые реализуют указанные методы и анализы. Тем не менее, хорошие методы должны стать пакетами. :)
Итератор