O crédito desta resposta é para @ Josué, que deu uma resposta incrível quando eu postei essa pergunta na comunidade de estatísticas e estatísticas no Google+. Estou simplesmente colando sua resposta abaixo.
Para executar a regressão (sem modelagem de variável latente), leia minhas anotações digitadas após o texto citado.
O tratamento de dados ausentes com máxima verossimilhança em todos os dados disponíveis (denominado FIML) é uma técnica muito útil. No entanto, existem várias complicações que tornam difícil a implementação de uma maneira geral. Considere um modelo de regressão linear simples, prevendo algum resultado contínuo do tipo, idade, sexo e profissão. No OLS, você não se preocupa com a distribuição de idade, sexo e ocupação, apenas o resultado. Normalmente, para preditores categóricos, eles são codificados fictícios (0/1). Para usar o ML, são necessárias premissas distributivas para todas as variáveis com falta. De longe, a abordagem mais fácil é a multivariada normal (MVN). É o que, por exemplo, o Mplus fará por padrão se você não declarar o tipo de variável (por exemplo, categórico). No exemplo simples que dei, você provavelmente desejaria assumir, normal para a idade, Bernoulli para o sexo e multinomal para o tipo de trabalho. O último é complicado, porque o que você realmente tem são várias variáveis binárias, mas você não deseja tratá-las como Bernoulli. Isso significa que você não deseja trabalhar com as variáveis codificadas fictícias, precisa trabalhar com a variável categórica real para que os estimadores de ML possam usar corretamente um multinomial, mas isso, por sua vez, significa que o processo de codificação fictícia precisa ser incorporado ao modelo , não os dados. Mais uma vez complicando a vida. Além disso, a distribuição conjunta de variáveis contínuas e categóricas não é trivial para computação (quando encontro problemas como este no Mplus, ela rapidamente começa a quebrar e se debater). Por fim, você realmente idealmente especifica o mecanismo de dados ausentes. No estilo SEM, FIML, todas as variáveis são essencialmente condicionadas a todas as outras, mas isso não é necessariamente correto. Por exemplo, talvez a idade esteja faltando em função não do gênero e do tipo de ocupação, mas de sua interação. A interação pode não ser importante para o resultado focal, mas se for importante para a falta de idade, também deve estar no modelo, não necessariamente no modelo substantivo de interesse, mas no modelo de dados ausentes.
O lavaan usará o ML para MVN, mas atualmente acredito que as opções de dados categóricos são limitadas (novamente vindo do campo SEM, isso é padrão). A imputação múltipla parece menos elegante a princípio, porque explícita muitas suposições ocultas por trás do FIML (como suposições distributivas para cada variável e o modelo preditivo assumido por falta em todas as variáveis). No entanto, ele oferece muito controle e pensamento explícito sobre a distribuição de cada variável, e o mecanismo ideal de dados ausentes para cada um é valioso.
Estou cada vez mais convencido de que os modelos bayesianos são a maneira de lidar com os dados ausentes. O motivo é que eles são muito flexíveis ao incluir distribuições para cada variável, permitindo muitos tipos diferentes de distribuições e podem incorporar facilmente a variabilidade introduzida pela falta de dados nos preditores nas estimativas gerais do modelo (que é o truque com imputação múltipla em que você então tem que de alguma forma combinar resultados). Obviamente, esses métodos não são os mais fáceis e podem levar muito treinamento e tempo para serem utilizados.
Portanto, isso realmente não responde à sua pergunta, mas explica um pouco por que estruturas completamente gerais para lidar com a falta são complicadas. No meu pacote semutils para as matrizes de covariância, uso lavaan embaixo para usar ML. Faço isso porque suponho, para uma matriz de covariância de variância, que você esteja usando variáveis contínuas de qualquer maneira, de modo que suponho que meus usuários já estejam assumindo MVN para seus dados.
Isso significa que, se todas as variáveis com falta são contínuas, lavaan , um pacote de modelagem de equações estruturais (SEM) é bom para usar para FIML em R.
Agora voltando à minha pergunta inicial. Minha intenção era ter uma correção mágica para falta ao executar a regressão linear. Todas as minhas variáveis com falta eram boas e contínuas. Então, comecei a executar minhas análises em dois estilos:
- A maneira usual com imputação múltipla
- No estilo SEM com lavaan usando FIML.
Eu estava perdendo muitas coisas fazendo regressão no estilo SEM. Ambos os estilos deram coeficientes e quadrados R semelhantes, mas no estilo SEM eu não fiz o teste de significância da regressão (os valores típicos de F com df); em vez disso, obtive índices de ajuste que não foram úteis, pois havia usado todos os meus graus da liberdade. Além disso, quando um modelo tinha um R2 maior que o outro, não consegui encontrar uma maneira de comparar se a diferença era significativa. Além disso, fazer a regressão da maneira usual dá acesso a vários testes de suposições de regressão inestimáveis. Para uma resposta mais detalhada sobre esse problema, veja minha outra pergunta que foi bem respondida pelo @StasK .
Portanto, parece que a lavaan é um pacote decente para o FIML em R, mas o uso do FIML depende de suposições estatísticas e do tipo de análise que estamos realizando. No que diz respeito à regressão (sem modelagem de variável latente), mantê-la fora dos programas SEM e usar várias imputações é provavelmente uma decisão sensata.