Quais são algumas práticas padrão para criar conjuntos de dados sintéticos?

26

Como contexto: ao trabalhar com um conjunto de dados muito grande, às vezes me perguntam se podemos criar um conjunto de dados sintético onde "conhecemos" o relacionamento entre os preditores e a variável de resposta, ou os relacionamentos entre os preditores.

Ao longo dos anos, pareço encontrar conjuntos de dados sintéticos únicos, que parecem ter sido elaborados de maneira ad hoc, ou conjuntos de dados mais estruturados que parecem especialmente favoráveis ​​ao método de modelagem proposto pelo pesquisador.

Acredito que estou procurando métodos padrão para criar conjuntos de dados sintéticos. Embora a reamostragem de autoinicialização seja um método comum para criar um conjunto de dados sintético, ela não satisfaz a condição de que conhecemos a estrutura a priori . Além disso, a troca de amostras de bootstrap com outras pessoas requer essencialmente a troca de dados, e não um método de geração de dados.

Se podemos ajustar uma distribuição paramétrica aos dados ou encontrar um modelo parametrizado suficientemente próximo, então este é um exemplo em que podemos gerar conjuntos de dados sintéticos.

Que outros métodos existem? Estou especialmente interessado em dados de alta dimensão, dados esparsos e dados de séries temporais. Para dados de alta dimensão, eu procuraria métodos que possam gerar estruturas (por exemplo, estrutura de covariância, modelos lineares, árvores etc.) de interesse. Para dados de séries temporais, de distribuições por FFTs, modelos AR ou vários outros modelos de filtragem ou previsão parece um começo. Para dados esparsos, a reprodução de um padrão de esparsidade parece útil.

Acredito que isso apenas arranha a superfície - essas são práticas heurísticas, não formais. Existem referências ou recursos para gerar dados sintéticos que devem ser conhecidos pelos profissionais?


Nota 1: Percebo que esta pergunta aborda a literatura sobre como se pode gerar dados como um modelo de série temporal específico. A distinção aqui é sobre práticas, especialmente para indicar uma estrutura conhecida (minha pergunta), versus semelhança / fidelidade a um conjunto de dados existente. Não é necessário, no meu caso, ter semelhança, tanto quanto estrutura conhecida, embora a semelhança seja muito preferida à dissimilaridade. Um conjunto de dados sintético exótico para o qual um modelo mostra promessa é menos preferido do que uma simulação realista.

Nota 2: A entrada da Wikipedia para dados sintéticos indica que luminares como Rubin e Fienberg abordaram esse problema, embora eu não tenha encontrado referências sobre as melhores práticas. Seria interessante saber o que seria aprovado nos Anais de Estatística Aplicada (ou AOS) ou em trabalhos de revisão nesses ou em outros periódicos. Em termos simples e extravagantes, pode-se perguntar onde existe o limiar entre "(aceitável) cozido" e "muito cozido"?

Nota 3: Embora isso não afete a questão, o cenário de uso está na modelagem de conjuntos de dados grandes e de alta dimensão, onde a agenda de pesquisa é aprender (tanto por humanos quanto por máquinas ;-)) a estrutura dos dados. Ao contrário de cenários univariados, bivariados e outros de baixa dimensão, a estrutura não é facilmente inferida. À medida que avançamos em direção a um melhor entendimento da estrutura, é interessante poder gerar conjuntos de dados com propriedades semelhantes para ver como um método de modelagem interage com os dados (por exemplo, para examinar a estabilidade dos parâmetros). No entanto, guias mais antigos sobre dados sintéticos de baixa dimensão podem ser um ponto de partida que pode ser estendido ou adaptado para conjuntos de dados de dimensões superiores.

Iterador
fonte

Respostas:

7

Não tenho certeza de que existem práticas padrão para gerar dados sintéticos - ele é usado com tanta intensidade em tantos aspectos diferentes da pesquisa que os dados criados para fins específicos parecem ser uma abordagem mais comum e sem dúvida mais razoável.

Para mim, minha melhor prática padrão é não fazer o conjunto de dados para que funcione bem com o modelo. Isso faz parte do estágio de pesquisa, não do estágio de geração de dados. Em vez disso, os dados devem ser projetados para refletir o processo de geração de dados . Por exemplo, para estudos de simulação em Epidemiologia, eu sempre começo de uma grande população hipotética com uma distribuição conhecida e depois simulo a amostragem de estudo dessa população, em vez de gerar "a população do estudo" diretamente.

Por exemplo, com base em nossa discussão abaixo, dois exemplos de dados simulados que criei:

  • Um pouco semelhante ao seu exemplo de modelo SIR abaixo, uma vez eu usei um modelo matemático da propagação de doenças em uma rede para me mostrar por simulação que um parâmetro constante específico não implica necessariamente um risco constante se você tratou os resultados como resultado de um estudo de coorte. Foi uma prova de conceito útil enquanto eu procurava uma solução analítica.
  • Eu queria explorar o impacto de um determinado esquema de amostragem para um estudo de caso-controle. Em vez de tentar gerar o estudo diretamente, passei por cada etapa do processo. Uma população de 1.000.000 de pessoas, com uma dada prevalência conhecida de doença e um padrão covariável conhecido. A partir daí, simulando o processo de amostragem - neste caso, como os casos e controles foram retirados da população. Só então joguei um modelo estatístico real nos "estudos simulados" coletados.

Simulações como essa são muito comuns ao examinar o impacto dos métodos de recrutamento de estudos, abordagens estatísticas para controle de covariáveis ​​etc.

Fomite
fonte
Obrigado por responder. No entanto, com base no que sei sobre epidemiologia, muito mais foi feito no desenvolvimento de modelos estocásticos bastante úteis, principalmente os modelos SIR. Isso não é verdade em muitos outros domínios, embora ser capaz de desenvolver modelos de dados estocásticos aceitáveis ​​rapidamente faça parte da minha intenção.
Iterator
@ Iterator Isso depende muito de onde você está e de qual aspecto da epidemiologia você está falando. Um epidemiologista do câncer, por exemplo, ficaria chocado ao saber que "muito mais" foi feito com os modelos SIR - eles provavelmente nunca encontraram um em seu trabalho. Enquanto os modelos do tipo SIR são um aspecto de uma parte específica da epidemiologia (doença infecciosa epi e, mesmo assim, nem mesmo um grande subconjunto de ID Epi), a epidemiologia como campo faz tremendo uso de modelos estatísticos, particularmente modelos lineares gerais, sobrevivência análise e séries temporais.
fomite
Uau. Sem intenção de ofender, apenas afirmei que os modelos SIR são um exemplo muito bom de um modelo padrão de geração de dados. Claro que estou ciente de que existem outras áreas da epi que usam todo um espectro de métodos de modelagem. Se você tem alguns indicadores ou referências sobre outros métodos de geração de dados usados ​​em epidemiologia, estou bastante aberto a eles.
Iterator
11
@ Iterator Desculpe se dei a impressão de estar ofendido. Muito não;). É apenas algo que recebo porque me sento quadrado na interseção entre epi matemático e epidemiologia observacional, e as pessoas em uma área ficam espantadas com a outra área. Vou editar minha resposta com um exemplo que não seja do tipo SIR.
Fomite
2

O pacote estatístico R possui uma função de simulação que simula dados com base em um modelo adequado aos dados existentes. Isso usa o modelo ajustado como o relacionamento populacional "conhecido" e simula novos dados com base nesse modelo. Existe um método para esta função no pacote lme4. Esses objetos ajustados podem levar em consideração efeitos aleatórios e fixos e correlação (incluindo autocorrelação para séries temporais).

Isso pode funcionar, faça o que você quiser.

Greg Snow
fonte
Obrigado pela sugestão. Essa função é certamente útil, embora meu interesse seja mais em termos de práticas e metodologia estatísticas, em vez de codificar para uma solução específica. Isso é semelhante a perguntar sobre métodos de amostragem ou análises reproduzíveis, em vez de pacotes específicos que implementam esses métodos e análises. No entanto, bons métodos devem se tornar pacotes. :)
Iterador 15/10