Estou impressionado com um problema aparentemente fácil, mas não encontro uma solução adequada há várias semanas.
Tenho muitos dados de pesquisas / pesquisas (dezenas de milhares de participantes, digamos 50 mil por conjunto de dados), provenientes de algo que, espero, é chamado de pesquisa complexamente projetada, com pesos, estratificação, roteamento específico e assim por diante. Para cada entrevistado, existem centenas de variáveis, como dados demográficos (idade, região ...) e, em seguida, principalmente variáveis binárias (no máximo, categóricas).
Sou mais do conhecimento em ciência da computação / aprendizado de máquina e tive que aprender muito sobre estatística e metodologia clássica de pesquisa . Agora, quero aplicar o aprendizado de máquina clássico a esses dados (por exemplo, prever alguns valores ausentes para um subconjunto de respondentes - basicamente tarefa de classificação). Mas, segure e eis que não consigo encontrar uma maneira adequada de fazer isso. Como devo incorporar esses estratos, pesos ou roteamento (como: se a pergunta 1 respondeu com a opção 2, faça a pergunta 3, caso contrário, ignore)?
Simplesmente aplicar meus modelos (árvores, regressão logística, SVM, XGBoost ...) parece perigoso (e, na maioria dos casos, eles falham), pois eles geralmente assumem que os dados são provenientes de amostra aleatória simples ou iid.
Muitos métodos, pelo menos, têm pesos, mas isso não ajuda muito. Além disso, não está claro como devo combinar classes e pesos desequilibrados dados pela definição da pesquisa, sem falar sobre essas coisas de estratificação. Além disso, os modelos de resultados devem ser bem calibrados - a distribuição prevista deve estar muito próxima da original. O bom desempenho da previsão não é o único critério aqui. Alterei a métrica de otimização para levar isso em consideração também (como a distância da distribuição prevista da verdadeira distribuição + precisão / MCC) e ajudou em alguns casos, por que prejudicar o desempenho em outros.
Existe alguma maneira canônica de como lidar com esse problema? Parece uma área de pesquisa muito subestimada para mim. Muitas pesquisas da OMI poderiam se beneficiar do poder da ML, mas não há fontes. Como estes são dois mundos que não interagem entre si.
O que eu encontrei até agora:
- http://civilstat.com/2014/08/statistical-modeling-the-two-cultures-breiman/
Por exemplo, ainda conheço apenas um artigo (Toth & Eltinge, 2011) sobre como fazer árvores de regressão quando seus dados vêm de uma pesquisa de amostra complexa.
- http://ccsg.isr.umich.edu/index.php/chapters/statistical-analysis-chapter#nine
Em uma meta-análise recente de 150 trabalhos de pesquisa amostrados analisando várias pesquisas com projetos de amostragem complexos, constatou-se que erros analíticos causados por ignorância ou uso incorreto dos recursos de design de amostras complexas eram frequentes.
- https://www.fhwa.dot.gov/2015datapalooza/presentations/PolicyDev.4_Pierce.pdf
Perguntas relacionadas ao CV, mas nenhuma delas contém nenhuma resposta útil sobre como abordar isso (ou nenhuma resposta, não o que peço ou apresentar recomendações enganosas):
- Análise combinada com dados complexos da pesquisa
- Aprendizado de máquina com dados de pesquisa ponderados / complexos
- Validação cruzada após o LASSO em dados complexos de pesquisa
- Separação em regressão logística em uma pesquisa complexa?
- Ajustando modelos multiníveis a dados complexos de pesquisa em R
Respostas:
( Atualização: ainda não há muito trabalho sobre métodos de ML "modernos" com dados complexos de pesquisa, mas a edição mais recente da Statistical Science tem alguns artigos de revisão. Veja especialmente Breidt e Opsomer (2017), "Model-Assisted Estimativa de pesquisas com técnicas modernas de previsão " .
Além disso, com base no artigo de Toth e Eltinge que você mencionou, agora existe um pacote Rpms implementando o CART para dados de pesquisas complexas.)
Não sou totalmente claro sobre seu objetivo. Você está principalmente tentando imputar as observações ausentes, apenas para ter um conjunto de dados "completo" para fornecer a outra pessoa? Ou você já possui dados completos e deseja criar um modelo para prever / classificar as respostas das novas observações? Você tem uma pergunta específica a ser respondida com o (s) seu (s) modelo (s), ou está pesquisando mais amplamente?
Em ambos os casos, a regressão logística de pesquisa de amostra complexa / ponderada por pesquisa é um método razoável e bem compreendido. Também há regressão ordinal para mais de 2 categorias. Isso será responsável por estratos e pesos da pesquisa. Você precisa de um método de ML mais sofisticado que esse?
Por exemplo, você pode usar
svyglm
nosurvey
pacote de R. Mesmo se você não usar R, o autor do pacote, Thomas Lumley, também escreveu um livro útil "Pesquisas complexas: um guia para análise usando R", que abrange tanto a regressão logística quanto os dados ausentes para pesquisas.(Para imputação, espero que você já esteja familiarizado com problemas gerais relacionados à falta de dados. Caso contrário, analise abordagens como imputação múltipla para ajudá-lo a explicar como a etapa de imputação afeta suas estimativas / previsões.)
O encaminhamento de perguntas é realmente um problema adicional. Não sei bem como lidar com isso. Para imputação, talvez você possa imputar uma "etapa" no roteamento por vez. Por exemplo, usando um modelo global, primeiro imputa a resposta de todos a "Quantos filhos você tem?"; em seguida, execute um novo modelo na subpopulação relevante (pessoas com mais de 0 filhos) para atribuir a próxima etapa de "Quantos anos seus filhos têm?"
fonte