Sunday 10 December 2017

Imputando dados ausentes no stata forex


Imputação Múltipla em Stata: Imputando Esta é a quarta parte da Imputação Múltipla na série Stata. Para obter uma lista de tópicos abordados por esta série, consulte a Introdução. Esta seção irá conversar com você através dos detalhes do processo de imputação. Certifique-se de que você leu pelo menos a seção anterior, Criando modelos de imputação. Então você tem a sensação de quais problemas podem afetar a validade de seus resultados. Exemplo de dados Para ilustrar o processo, use um conjunto de dados fabricados. Ao contrário daqueles na seção de exemplos, este conjunto de dados foi projetado para ter alguma semelhança com dados do mundo real. Raça feminina (binária) (categórica, três valores) edu urbano (ordenado categórico, quatro valores) exp (contínuo) salário (contínuo) Falta. Cada valor de todas as variáveis, exceto a mulher, tem 10 chances de faltar completamente ao acaso, mas é claro que, no mundo real, não saberemos que é o MCAR antes do tempo. Assim, verificamos se é MCAR ou MAR (o MNAR não pode ser verificado observando os dados observados) usando o procedimento descrito em Decidindo a Imputação: unab numvars: missavers de unab: soma de falta de balanço urbano, gen (miss) foreach var of Missvars locais covars locais: lista numvars - var display newline (3) quotlogit falta de var em covarsquot logit missvar covars foreach nvar de covars locais exibem newline (3) quotttest de nvar por falta de varquot ttest nvar, por (missvar) Veja o log Arquivo para resultados. Nosso objetivo é regredir os salários em relação ao sexo, raça, nível educacional e experiência. Para ver as respostas quotrightquot, abra o arquivo do que cria o conjunto de dados e examine o comando gen que define o salário. O código completo para o processo de imputação pode ser encontrado no seguinte arquivo: O processo de imputação cria uma grande quantidade de saída. Bem colocar destaques nesta página, no entanto, um arquivo de log completo, incluindo os gráficos associados, pode ser encontrado aqui: cada seção deste artigo terá links para a seção relevante do log. Clique em quotbackquot no seu navegador para retornar a esta página. Configurando O primeiro passo no uso de meus comandos é para definir os seus dados. Isso é algo semelhante ao svyset. Tsset. Ou xtset. O comando mi set diz a Stata como deve armazenar as imputações adicionais que você criará. Sugerimos usar o formato amplo, pois é um pouco mais rápido. Por outro lado, mlong usa um pouco menos de memória. Para que o Stata use a estrutura de dados ampla, digite: Para que o Stata use a estrutura de dados de mlong (longo prazo), digite: A terminologia ampla e longa é emprestada para remodelar e as estruturas são semelhantes. No entanto, eles não são equivalentes e você nunca usaria uma remodelação para alterar a estrutura de dados usada por mi. Em vez disso, digite mi converter broad ou ml converter mlong (adicione, limpe se os dados não foram salvos desde a última alteração). Na maioria das vezes, você não precisa se preocupar sobre como as imputações são armazenadas: os meus comandos descobrem automaticamente como aplicar o que você faz para cada imputação. Mas se você precisar manipular os dados de uma maneira que não pode fazer por você, então você precisará aprender sobre os detalhes da estrutura que você está usando. Você também precisará ser muito, muito cuidadoso. Se você estiver interessado em tais coisas (incluindo os formatos de Flong e Flongsep raramente usados), execute esse arquivo e leia os comentários que ele contém ao examinar o navegador de dados para ver como os dados se parecem em cada formulário. Registro de variáveis ​​Os comandos de min reconhecem três tipos de variáveis: variáveis ​​inválidas são variáveis ​​que mi é para imputar ou imputou. Variáveis ​​regulares são variáveis ​​que não é para imputar, quer por opção, quer porque não estão faltando nenhum valor. As variáveis ​​passivas são variáveis ​​que são completamente determinadas por outras variáveis. Por exemplo, o salário de registro é determinado pelo salário, ou um indicador de obesidade pode ser determinado por uma função de peso e altura. Os termos de interação também são variáveis ​​passivas, embora você use a sintaxe de interação Statas, você não terá que declará-las como tal. Variáveis ​​passivas são muitas vezes problemáticas82. Os exemplos de transformações. Não-linearidade. E as interações mostram como usá-las de forma inadequada podem levar a estimativas tendenciosas. Se uma variável passiva é determinada por variáveis ​​regulares, então ela pode ser tratada como uma variável regular, uma vez que nenhuma imputação é necessária. As variáveis ​​passivas só devem ser tratadas como tal se dependerem de variáveis ​​imputadas. Registrar uma variável diz a Stata que tipo de variável é. As variáveis ​​impostas sempre devem ser registradas: lista registrada var lista de var lista onde varlist deve ser substituído pela lista real de variáveis ​​a serem imputadas. As variáveis ​​regulares muitas vezes não precisam ser registradas, mas é uma boa ideia: me registrar varlist regular Variáveis ​​passivas devem ser registradas: mi register passif varlist No entanto, as variáveis ​​passivas são mais frequentemente criadas após a imputação. Faça com passivo e eles serão registrados como passivos automaticamente. Nos nossos dados de exemplo, todas as variáveis, exceto as mulheres, precisam ser imputadas. O comando do meu registro apropriado é: meu registro imputado ao salário da raça (Observe que você não pode usar como seu varlist mesmo se você tiver que imputar todas as suas variáveis, porque isso inclui as variáveis ​​do sistema adicionadas por meu conjunto para acompanhar a estrutura de imputação .) Registrar uma fêmea como regular é opcional, mas uma boa idéia: me registrar fêmea normal Verificando o Modelo de Imputação Com base nos tipos de variáveis, os métodos óbvios de imputação são: raça (categórica, três valores): mlogit urbano (binário): Logit edu (ordenado categórico, quatro valores): ologit exp (contínuo): regressar salário (contínuo): regredir a mulher não precisa ser imputada, mas deve ser incluída nos modelos de imputação, tanto porque está no modelo de análise quanto porque é Provavelmente será relevante. Antes de proceder à imputação, verificaremos cada um dos modelos de imputação. Execute sempre cada um de seus modelos de imputação individualmente, fora do contexto imputado, impetuoso, para ver se eles convergem e (na medida do possível) verificam se estão especificados corretamente. O código para executar cada um desses modelos é: raça mlogit i. urban exp salário i. edu i. female logit urbano i. race exp salário i. edu i. female ologit edu i. urban i. race exp salário i. female regression exp I. urban i. race salário i. edu i. female regressar salário i. urban i. race exp i. edu i. female Note que quando as variáveis ​​categóricas (ordenadas ou não) aparecem como covariáveis ​​i. Os expande em conjuntos de variáveis ​​de indicadores. Além disso, veja mais adiante, a saída do comando mi impute chained inclui os comandos para os modelos individuais que ele executa. Assim, um atalho útil, especialmente se você tem muitas variáveis ​​para imputar, é configurar seu comando imputado com a opção dryrun para impedir que ele faça qualquer imputado real, execute-o e, em seguida, copie os comandos da saída para Seu arquivo para teste. Problemas de convergência A primeira coisa a observar é que todos esses modelos são executados com sucesso. Modelos complexos como o mlogit podem falhar em convergir se você tiver um grande número de variáveis ​​categóricas, porque isso muitas vezes leva a tamanhos de células pequenas. Para identificar a causa do problema, remova a maioria das variáveis, verifique se o modelo funciona com o que está à esquerda e, em seguida, adicione as variáveis ​​de volta um de cada vez ou em pequenos grupos até parar de funcionar. Com alguma experimentação você deve ser capaz de identificar o problema variável ou combinação de variáveis. Nesse ponto, você deve decidir se você pode combinar categorias ou soltar variáveis ​​ou fazer outras alterações para criar um modelo viável. Prefect Prediction Previsão perfeita é outro problema a ser observado. O processo de imputação não pode simplesmente soltar as observações perfeitamente previstas da maneira como logit pode. Você pode deixá-los antes de imputar, mas isso parece derrotar a finalidade de múltiplas imputações. A alternativa é adicionar a opção aument (ou apenas aug) aos métodos afetados. Isso diz que a minha imputação é acorrentada para usar a abordagem de regressão com quota, que adiciona observações falsas com pesos muito baixos, de tal forma que eles têm um efeito insignificante sobre os resultados, mas impedem uma previsão perfeita. Para detalhes, veja a seção "Questão" da previsão perfeita durante a imputação de dados categóricos na documentação do Stata MI. Verificando a especificação Misspecific Você também deve tentar avaliar se os modelos estão especificados corretamente. Uma discussão completa sobre como determinar se um modelo de regressão é especificado corretamente ou não está muito além do escopo deste artigo, mas use as ferramentas que você achar apropriadas. Aqui estão alguns exemplos: Gráficos de valor residual versus cabido Para variáveis ​​contínuas, os lotes de valor residual versus valor ajustado (facilmente feito com rvfplot) podem ser úteis. Outros exemplos os usam para detectar problemas. Considere o enredo para a experiência: regredir exp. I. urban i. race salário i. edu i. female rvfplot Observe como um número de pontos são agrupados ao longo de uma linha no canto inferior esquerdo e nenhum ponto está abaixo dele: isso reflete a restrição que A experiência não pode ser inferior a zero, o que significa que os valores ajustados devem sempre ser maiores ou iguais aos resíduos, ou, alternativamente, que os resíduos devem ser maiores ou iguais ao negativo dos valores ajustados. (Se o gráfico tivesse a mesma escala em ambos os eixos, a linha de restrição seria uma linha de 45 graus). Se todos os pontos estivessem abaixo de uma linha semelhante, em vez de acima, isso indicaria que havia um limite superior na variável Em vez de um limite inferior. A intercepção y da linha de restrição indica o limite em ambos os casos. Você também pode ter um limite inferior e um limite superior, colocando todos os pontos em uma banda entre eles. O modelo quotobviousquot, regredir. É inadequado para a experiência porque não aplicará essa restrição. Também é inapropriado para salários pelo mesmo motivo. As alternativas incluem truncreg, ll (0) e pmm (bem uso pmm). Adicionando interações Neste exemplo, parece plausível que as relações entre variáveis ​​possam variar entre raça, gênero e grupos urbanos. Assim, uma maneira de verificar a falta de especificação é adicionar termos de interação aos modelos e ver se eles se tornam importantes. Por exemplo, compare bem o modelo óbvio: regredir exp. I. race salário i. edu i. urban i. female com um que inclui interações: regress exp (i. race i. urban i. female) (c. wage i. edu ) Funciona bem comparações semelhantes para os modelos das outras variáveis. Isso cria uma grande quantidade de saída, então veja o arquivo de log para obter resultados. As interações entre variáveis ​​femininas e outras são significativas nos modelos para exp. salário. Edu. E urbano. Existem algumas interações significativas entre a raça ou as variáveis ​​urbanas e outras, mas não quase todas as demais (e tenha em mente que, com esses muitos coeficientes, espera alguns falsos positivos usando um nível de significância de 0,05). Bem, assim imputa os homens e as mulheres separadamente. Esta é uma opção especialmente boa para este conjunto de dados porque a fêmea nunca está faltando. Em caso afirmativo, é obrigatório abandonar as observações que estão faltando femininas porque não poderiam ser colocadas em um grupo ou outro. No comando de imputação, isso significa adicionar a opção por (feminino). Ao testar modelos, significa iniciar os comandos com o por fêmea: prefixo (e remover a fêmea das listas de covariáveis). Os modelos de imputação melhorados são, portanto,: bysort feminino: reg exp i. urban i. race salário i. edu por feminino: logit urban exp i. race salário i. edu por feminino: mlogit race exp i. urban salário i. edu por mulher O salário pmm em si não pode ser executado fora do contexto de imputação, mas, como se baseia na regressão, você pode usar uma regressão regular para testá-lo. . Esses modelos devem ser testados novamente, mas bem, omita esse processo. A sintaxe básica para mi impute chained é: mi impute chained (method1) varlist1 (method2) varlist2. Regvars Cada método especifica o método a ser usado para imputar a seguinte varlist. As possibilidades de método são regredidas. Pmm. Truncreg. Intreg. Logit. Ologit. Mlogit. Poisson. E nbreg. Regvars é uma lista de variáveis ​​regulares a serem usadas como covariáveis ​​nos modelos de imputação, mas não imputadas (pode não haver nenhuma). As opções básicas são: add (N) rseed (R) savetrace (tracefile. Replace) N é o número de imputações a serem adicionadas ao conjunto de dados. R é a semente a ser usada para o gerador de números aleatórios8212 se você não definir isso, você terá imputações ligeiramente diferentes sempre que o comando for executado. O tracefile é um conjunto de dados no qual mi impute chained irá armazenar informações sobre o processo de imputação. Bem, use este conjunto de dados para verificar a convergência. Opções que são relevantes para um método específico vão com o método, dentro dos parênteses, mas seguindo uma vírgula (por exemplo (mlogit, ago)). As opções que são relevantes para o processo de imputação como um todo (como por (fêmea)) vão ao final, após a vírgula. Para o nosso exemplo, o comando seria: mi impute encadeado (logit) urbano (mlogit) raça (ologit) edu (pmm) exp salário, adicione (5) rseed (4409) por (fêmea) Observe que isso não inclui um aprendizado () Opção. A partir desta escrita, por () e savetrace () não podem ser usados ​​ao mesmo tempo, presumivelmente porque exigiria um arquivo de rastreamento para cada grupo. A Stata está ciente deste problema e esperamos que isso seja alterado em breve. Para fins deste artigo, bem, remova a opção by () quando chegar a hora de ilustrar o uso do arquivo de rastreamento. Se esse problema surgir em sua pesquisa, fale conosco sobre o trabalho. Escolhendo o número de impasses Há algum desacordo entre as autoridades sobre quantas imputações são suficientes. Alguns dizem 3-10 em quase todas as circunstâncias, a documentação da Stata sugere pelo menos 20, enquanto White, Royston e Wood argumentam que o número de imputações deve ser aproximadamente igual à porcentagem de casos com valores faltantes. No entanto, não temos conhecimento de nenhum argumento de que aumentar o número de imputações já causa problemas (apenas o benefício marginal de outra imputação aproxima-se assintoticamente). Aumentar o número de imputações em sua análise não leva essencialmente nenhum trabalho da sua parte. Basta alterar o número na opção add () para algo maior. Por outro lado, pode ser um monte de trabalho para o computador. Uma grande imputação introduziu muitos pesquisadores no mundo dos empregos que levam horas ou dias para serem executados. Você geralmente pode assumir que a quantidade de tempo requerido será proporcional ao número de imputações usadas (por exemplo, se um arquivo de arquivo demora duas horas para executar com cinco imputações, provavelmente levará cerca de quatro horas para executar com dez imputações). Então, nossa sugestão: Comece com cinco imputações (o fim baixo do que é amplamente considerado legítimo). Trabalhe em seu projeto de pesquisa até que esteja razoavelmente confiante de que você tenha a análise na sua forma final. Certifique-se de fazer tudo com os arquivos para que você possa executá-lo novamente à vontade. Observe quanto tempo leva o processo, desde a imputação até a análise final. Considere quanto tempo você tenha disponível e decida quantas imputações você pode dar ao luxo de executar, usando a regra de ouro que o tempo necessário é proporcional ao número de imputações. Se possível, faça com que o número de imputações seja aproximadamente igual à porcentagem de casos com dados ausentes (uma estimativa de alto nível do que é necessário). Permita tempo para se recuperar se as coisas derem errado, como geralmente fazem. Aumente o número de imputações no seu arquivo do do e inicie-o. Faça outra coisa enquanto o arquivo do do, funciona como escrever seu papel. A adição de imputações não deve alterar seus resultados significativamente8212 e, no caso improvável de que o façam, considere-se afortunado de ter descoberto isso antes da publicação. Acelerando o Processo de Imputação A imputação múltipla introduziu muitos pesquisadores no mundo dos empregos que levam horas, dias ou mesmo semanas para serem executados. Normalmente, não vale a pena gastar seu tempo para tornar o código Stata executado mais rápido, mas a imputação múltipla pode ser uma exceção. Use o computador mais rápido disponível para você. Para os membros do SSCC, significa aprender a executar trabalhos no Linstat, o cluster de computação SSCCs Linux. O Linux não é tão difícil como você pode pensar8212 Usando o Linstat tem instruções. A imputação múltipla envolve mais leitura e gravação em disco do que a maioria dos comandos da Stata. Às vezes, isso inclui escrever arquivos temporários no diretório de trabalho atual. Use o espaço em disco mais rápido disponível para você, tanto para seu conjunto de dados quanto para o diretório de trabalho. Em geral, o espaço em disco local será mais rápido que o espaço em disco da rede e, no Linstat ramdisk (um quotdirectoryquot que é realmente armazenado na RAM) será mais rápido que o espaço em disco local. Por outro lado, você não gostaria de armazenar permanentemente conjuntos de dados em qualquer lugar, exceto o espaço em disco da rede. Então, considere ter o seu arquivo do do que algo como o seguinte: Windows (Winstat ou seu próprio PC) Isso se aplica quando você está usando dados imputados também. Se o seu conjunto de dados for grande o suficiente para trabalhar com ele após a imputação é lento, o procedimento acima pode ajudar. Verificando a convergência O MICE é um processo iterativo. Em cada iteração, mi impute acorrentado primeiro estima o modelo de imputação, usando tanto os dados observados quanto os dados imputados da iteração anterior. Em seguida, desenha novos valores imputados das distribuições resultantes. Observe que, como resultado, cada iteração possui alguma autocorrelação com a anterior imputação. A primeira iteração deve ser um caso especial: nele, o impute encadeado primeiro estima o modelo de imputação para a variável com o menor valor faltante baseado apenas nos dados observados e desenha valores imputados para essa variável. Em seguida, estima o modelo para a variável com os valores faltantes mais próximos, usando os valores observados e os valores imputados da primeira variável, e procede de forma semelhante para o resto das variáveis. Assim, a primeira iteração é muitas vezes atípica, e porque as iterações estão correlacionadas, isso também pode tornar as iterações subsequentes atípicas. Para evitar isso, mi impute acorrentado por padrão passa por dez iterações para cada conjunto de dados imputado que você solicita, economizando apenas os resultados da décima iteração. As primeiras nove iterações são chamadas de período de queima. Normalmente, isso é muito tempo para que os efeitos da primeira iteração se tornem insignificantes e que o processo converge para um estado estacionário. No entanto, você deve verificar a convergência e aumentar o número de iterações, se necessário, para garantir a utilização da opção burnin (). Para fazer isso, examine o arquivo de rastreamento salvo por mi impute acorrentado. Contém a média e o desvio padrão de cada variável imputada em cada iteração. Estes irão variar aleatoriamente, mas não devem mostrar nenhuma tendência. Uma maneira fácil de verificar é com o tsline. Mas requer a reformulação dos dados primeiro. Nosso modelo de imputação preferido usa por (). Então não pode salvar um arquivo de rastreio. Assim, remova bem por () por enquanto. Bem, também aumenta a opção burnin () para 100, por isso é mais fácil ver como parece um traço estável. Bem, então, use remodelar e tsline para verificar a convergência: preservar mi impute encadeado (logit) corrida urbana (mlogit) (ologit) edu (pmm) exp salário feminino, adicionar (5) rseed (88) salvar (extrair, substituir) burnin ( 100) use extrace, substitua reescalar significados largos sd, i (iter) j (m) tsset iter tsline expmean, título (quotMean of Imputed Values ​​of Experiencequot) nota (quotEach line is for a imputationquot) legenda (off) graph export conv1. Png, substituir tsline expsd, título (quotStandard Deviation of Imputed Values ​​of Experiencequot) nota (quotEach line is for a imputationquot) legenda (off) graph export conv2.png, replace restore Os gráficos resultantes não mostram nenhum problema óbvio: se você fizer Veja sinais de que o processo pode não ter convergido após as dez iterações padrão, aumentar o número de iterações realizadas antes de salvar valores imputados com a opção burnin (). Se a convergência nunca for alcançada, isso indica um problema com o modelo de imputação. Verificando os Valores Imputados Após a imputação, você deve verificar se os dados imputados se assemelham aos dados observados. Infelizmente, não existe um teste formal para determinar o que é quotclose suficiente. Naturalmente, se os dados são MAR mas não MCAR, os dados imputados devem ser sistematicamente diferentes dos dados observados. Ironicamente, quanto menos valores faltantes você tiver que imputar, maior será a variação entre os dados imputados e os dados observados (e entre as imputações). Para variáveis ​​binárias e categóricas, compare as tabelas de freqüência. Para variáveis ​​contínuas, os meios de comparação e os desvios-padrão são um bom ponto de partida, mas você também deve observar a forma geral da distribuição. Para isso sugerimos gráficos de densidade de kernel ou talvez histogramas. Olhe cada imputação separadamente em vez de reunir todos os valores imputados para que você possa ver se algum deles falhou. O comando mi xeq: prefira a Stata para aplicar o comando subseqüente a cada imputação individualmente. Também se aplica aos dados originais, a imputação quotzer. Assim: mi xeq: a corrida de tabelas lhe dará seis tabelas de freqüência: uma para os dados originais e uma para cada uma das cinco imputações. No entanto, queremos comparar os dados observados apenas com os dados imputados, e não com todo o conjunto de dados. Isso requer a adição de uma condição if aos comandos de tabulação para as imputações, mas não os dados observados. Adicione um número ou numero para que o meu xeq aponte para imputações específicas: mi xeq 0: puxo de tabulação mi xeq 15: raça de tabulação se missrace Isso cria tabelas de freqüência para os valores observados de raça e, em seguida, os valores imputados nas cinco imputações. Se você tiver um número significativo de variáveis ​​a examinar, pode encaminhar-se facilmente sobre elas: foreach var of varlist corrida urbana edu mi xeq 0: guia var mi xeq 15: guia var if missvar Para resultados, veja o arquivo de log. Executar estatísticas de resumo em variáveis ​​contínuas segue o mesmo processo, mas criar gráficos de densidade de kernel adiciona uma complicação: você precisa salvar os gráficos ou dar-se a chance de olhar para eles. Mi xeq: pode executar vários comandos para cada imputação: basta colocá-los todos em uma linha com um ponto-e-vírgula () no final de cada um. (Isso não funcionará se você alterou o delimitador geral de fim de comando para um ponto-e-vírgula.) O comando sleep informa o Stata para pausar por um período especificado, medido em milissegundos. Mi xeq 0: assento salarial kdensity 1000 mi xeq 15: salário kdensity se missvar sleep 1000 Mais uma vez, isso pode ser automatizado: foreach var of varlist salário salário xeq 0: sum var mi xeq 15: soma var if missvar mi xeq 0: Kdensity var sleep 1000 mi xeq 15: kdensity var se missvar sleep 1000 Salvar os gráficos acaba por ser um pouco mais complicado, porque você precisa fornecer ao gráfico de cada imputação um nome de arquivo diferente. Infelizmente você não pode acessar o número de imputação no meu xeq. No entanto, você pode fazer um loop forvalues ​​sobre os números de imputação e, em seguida, ter xeq agir em cada um deles: forval i15 mi xeq i: kdensity exp if missexp graph export expi. png, substituir Integrando isso com a versão anterior dá: foreach var of Varlist salário vm xeq 0: soma var mi xeq 15: soma var se missvar mi xeq 0: kdensity var gráfico export chkvar0.png, substituir por valor i15 mi xeq i: kdensity var se o gráfico missvar exportar chkvari. png, substituir Para obter resultados, Veja o arquivo de log. É problemático que, em todas as imputações, a média dos valores imputados do salário seja maior do que a média dos valores observados do salário. E a média dos valores imputados de exp é inferior à média dos valores observados de exp. Não encontramos evidências de que os dados são MAR mas não MCAR, então espere que os meios dos dados imputados sejam agrupados em torno dos meios dos dados observados. Não há uma prova formal para nos dizer definitivamente se isso é um problema ou não. No entanto, deve suscitar suspeitas e, se os resultados finais com esses dados imputados forem diferentes dos resultados da análise completa dos casos, levanta a questão de saber se a diferença deve-se a problemas com o modelo de imputação. Última revisão: 8232017Multiplicação da Imputação em Stata: Criando Modelos de Imputação Esta é a terceira parte da Imputação Múltipla na série Stata. Para obter uma lista de tópicos abordados por esta série, consulte a Introdução. Em teoria, um modelo de imputação estima a distribuição conjunta de todas as variáveis ​​que contém. O MICE quebra esse problema em uma série de estimativas que regredem uma variável em todas as outras variáveis ​​do modelo. (A desvantagem é que uma série de modelos das distribuições de variáveis ​​individuais não se agrega necessariamente a um modelo consistente da distribuição conjunta.) O comando mi impute chained não exige que você especifique o modelo para cada variável separadamente: você apenas Liste as variáveis ​​a serem imputadas juntamente com informações sobre como elas devem ser imputadas, e minha imputação em cadeia irá formar os modelos individuais automaticamente. No entanto, o sucesso do modelo geral de imputação depende do sucesso de todos os modelos individuais. Se um único modelo não converge, o processo de imputação como um todo falhará. Se um único modelo for mal especificado, pode prejudicar os resultados do seu modelo de análise. Recomendamos encarecidamente que você execute cada um dos modelos individuais por conta própria, fora do contexto de minha imputação acorrentada. Para testar a convergência e a falta de especificação. Bem, discuta os detalhes de fazê-lo na próxima seção. Esta seção se concentrará em questões que você deve considerar ao criar seus modelos de imputação. Escolhendo Variáveis ​​O primeiro passo na criação de um modelo de imputação é decidir quais variáveis ​​devem ser imputadas. O modelo de imputação deve sempre incluir todas as variáveis ​​no modelo de análise. Isso inclui a variável dependente do seu modelo de análise, embora haja algum debate sobre se os valores imputados da variável dependente devem ser usados. Mesmo se você não planeja usar os valores imputados da variável dependente, os valores observados da variável dependente fornecem informações sobre as outras variáveis, e as informações disponíveis das observações que estão faltando a variável dependente devem ser usadas no modelo de imputação como bem. O modelo de imputação deve incluir quaisquer outras variáveis ​​que forneçam informações sobre os valores reais dos dados ausentes ou sobre a probabilidade de serem perdidas. Evite criar um modelo de queimador quotkitchen no entanto. Um grande número de variáveis, especialmente as variáveis ​​categóricas, podem levar a modelos que não conseguem convergir. Use a teoria para orientá-lo na escolha de variáveis ​​apropriadas. Você pode adicionar variáveis ​​ao modelo de imputação que não precisam ser (ou não devem ser) imputadas colocando-as no final da lista de variáveis ​​seguindo um sinal de igual. Personalizando modelos de Imputação Você pode adicionar variáveis ​​ou remover variáveis ​​do modelo de imputação para uma variável individual ou grupo de variáveis ​​usando as opções include () ou omit (). A opção include () até permite adicionar expressões a um modelo, como (x2). Mas eles têm que entrar em um conjunto adicional de parênteses (por exemplo, incluir ((x2))). Essas opções vão com o método de imputação para uma variável ou variáveis ​​(por exemplo (regredir, incluir (x)) ao invés do final do comando mi impute chained. Seja cauteloso sobre adicionar expressões aos modelos de imputação: se y depende de alguma função de x. Então x deve depender da função inversa de y e não modelar ambos, pode compartilhar seus resultados. Consulte Termos não-lineares para discussão posterior. Dados longitudinais do painel Se você tiver dados em que as unidades são observadas ao longo do tempo, os melhores preditores de um valor faltante em um período são provavelmente os valores dessa variável nos períodos anterior e posterior. No entanto, o modelo de imputação só pode tirar proveito dessas informações se o conjunto de dados estiver em forma ampla (uma observação por unidade, não uma observação por unidade por período). Você pode converter de volta para a forma longa depois de imputar, se necessário. Para converter os dados em forma ampla antes de imputar, use remodelar. Para converter de volta para a forma longa após a imputação, use ma remodelar. Isso tem a mesma sintaxe que remodelar. Mas garante que as imputações sejam tratadas corretamente. Se você não está familiarizado com a remodelação. Veja a seção Dados hierárquicos da Stata para pesquisadores. Dados do levantamento Os cálculos da minha estimativa: e svy: prefix podem ser usados ​​juntos (nessa ordem) para executar modelos em dados de pesquisa que foram imputados múltiplos. No entanto, svy: não pode ser usado com mi impute acorrentado. Você pode aplicar pesos (por exemplo, pweightweight), mas não correto para outros elementos da estrutura de pesquisa, como strata ou PSU. A recomendação atual é incluir variáveis ​​de estrutura de pesquisa como strata e PSU nos modelos de imputação como conjuntos de variáveis ​​de indicadores (por exemplo, i. psu). Esta é uma área de pesquisa em andamento. Quando você testa seus modelos de imputação individuais, sugerimos executá-los primeiro com o svy: prefixo e depois sem ele, mas com pesos aplicados e variáveis ​​de estrutura de pesquisa adicionadas ao modelo. Se os dois fornecem resultados muito diferentes, tente adicionar interações entre as variáveis ​​da estrutura de pesquisa ou variáveis ​​adicionais relacionadas à estrutura da pesquisa. Se continuarem a dar resultados muito diferentes apesar dos seus melhores esforços, tenha cuidado ao usar a imputação múltipla. Métodos de escolha Existem nove métodos disponíveis para imputar uma variável: regredir. Pmm. Truncreg. Intreg. Logit. Ologit. Mlogit. Poisson e nbreg. Na maioria dos casos, você escolherá o mesmo método de imputação que você escolheria se você fosse modelar a variável normalmente: regredir para a maioria das variáveis ​​contínuas, logit para variáveis ​​binárias, mlogit para variáveis ​​categóricas não ordenadas, etc. Variáveis ​​contínuas, mas não normais Tenha em mente que A regressão padrão implica um termo de erro normal depois de controlar as covariáveis. Se você tem uma variável contínua que não é normal, a regressão pode não dar-lhe uma distribuição de valores imputados que corresponde muito bem aos valores observados. Uma alternativa é Predictive Mean Matching (PMM). PMM é uma técnica ad hoc com pouca teoria por trás disso, mas parece funcionar bastante bem na prática. O PMM começa por regredir a variável a ser imputada nas covariáveis ​​e, em seguida, desenhando um conjunto de coeficientes dos resultados, levando em consideração os coeficientes estimados e a incerteza sobre eles. Esses coeficientes são usados ​​para calcular um valor previsto para todos os valores faltantes. No entanto, ele usa o valor previsto para uma determinada observação para identificar aquelas observações cujo valor observado da variável está próximo do valor previsto e escolhe um deles aleatoriamente para ser o valor imputado. Se os valores observados de uma variável não forem normais, o PMM geralmente produzirá uma distribuição de valores imputados que corresponda mais à distribuição dos valores observados do que a regressão. A opção knn () controla quantas observações são consideradas como correspondências (com base nos valores observados da variável que estão próximos do valor previsto para que a observação seja imputada). O trabalho recente de Morris, White e Royston indica que um número maior de observações deve ser usado do que a prática padrão no passado. Sugerem pelo menos 10 e mais se o seu conjunto de dados for muito grande (dezenas de milhares de observações ou mais). Because PMM draws its imputed values from the observed values, it has the property that the imputed values will never be outside the range of the observed values. This makes it very useful for bounded variables (discussed below). It can also be used for some non-continuous distributions. However, PMM is not appropriate if you have reason to believe the unobserved values are outside the range of the observed values. Transformations Skewed variables may be made more normal by transformations such as taking the log. However, you should consider how this affects the relationships between variables. For example, if you have variables for quotincomequot and quotspending on entertainmentquot and you believe the relationship between the two is linear, replacing quotincomequot with quotlog incomequot makes the imputation model for both variables misspecified. Bounded Variables Another common situation is bounded variables. For example, quothours workedquot cannot go below zero, and percentages must be between zero and 100. Such variables can be imputed using truncreg. The ll() and ul() options contain the lower limit and upper limit for the variable, which can be either numbers or variables. You are not required to specify both (e. g. hours worked probably only needs ll(0). unless youre worried that the model might try to have someone work more than 168 hours per week). Unfortunately, in our experience its not unusual for truncreg to have convergence problems in imputation models with many variables. PMM is a good alternative to truncreg because it naturally honors any bounds that exist in the observed data. Non-Linear Terms If your analysis model contains non-linear terms, most likely variables squared, then this must be taken into account when creating your imputation model. Suppose your analysis model regresses y on x and x2. If you just impute y and x. creating x2 later (either with mi passive or c. xc. x ), then the imputed values of y will only depend on x and the imputed values of x will depend linearly on y. When you run your analysis model, the coefficient on the squared term will be biased towards zero because for observations where either y or x is imputed, y really is unrelated to x2. (Never forget that when you write your mi impute chained command you are building models, not just listing variables to impute.) The best alternative appears to be what White, Royston and Wood call the quotJust Another Variablequot approach. Create new variables to store the non-linear terms (e. g. gen x2x2 ) and then impute them as if they were just another variable, unrelated to the linear terms. The imputed values of the non-linear terms wont have the proper relationship to the linear terms (i. e. the imputed values x2 will not in fact be x2 ) but as long as they are distributed properly this does not appear to affect the results of the analysis model. This is an area of ongoing research. Interaction Terms Interaction terms raise issues very similar to those raised by non-linear terms: if the interaction term isnt included in the imputation model, the coefficient on the interaction term will be biased towards zero in the analysis model. The quotJust Another Variablequot approach also works well for interaction terms: create variables storing the interaction effects (e. g. gen gxgx ) and then impute them separately. If, however, the interactions involve binary or categorical variables that represent groups, consider instead using the by() option to impute each group separately. This allows coefficients to vary between groups without the problem of imputed interaction terms not actually matching the variables being interacted. For example, suppose youre regressing income on education. experiência. and black (an indicator for quotsubject is blackquot), but think the returns to education vary by race and thus include blackc. education in the regression. The just another variable approach would create a variable edblackblackrace and impute it, but its possible for the model to impute a zero for black and a non-zero value for edblack. Theres no indication this would cause problems in the analysis model, however. An alternative would be to add the by(black) option to the imputation command, so that whites and blacks are imputed separately. This would allow you to use blackc. education in your analysis model without bias (and it would always correspond to the actual values of black and education ). However, running two separate imputation models allows the returns to experience to vary by race in the imputation model, not just education. If you had strong theoretical reasons to believe that was not the case (which is unlikely) that would be a specification problem. A far more more common problem is small sample size: make sure each of your by() groups is big enough for reasonable regressions. Trying to use quotJust Another Variablequot for interactions between categorical variables and imputing them with logit is problematic. Use by() instead. Sets of Indicator Variables If you have a set of mutually exclusive indicator variables, use them to create a single categorical variable and then impute it using mlogit. For example, combine white. black. hispanic. other into race. or highSchool. someCollege. bachelors. advanced into education. You can recreate the indicator variables after imputing, either with mi passive or by simply using i. race or i. education in your models. If you impute the indicator variables themselves using logit. the imputation model will not impose the constraint that only one of them can be one. Thus youll likely get people with more than one race or more than one education level. By converting the indicators to a categorical variable and imputing the categorical variable using mlogit you force the model to choose just one category. Last Revised: 9152017

No comments:

Post a Comment