Sunday, 5 November 2017

Imputando Valores Em Falta No Stata Forex


Imputação Múltipla no 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). Como o PMM desenha seus valores imputados dos valores observados, possui a propriedade de que os valores imputados nunca estarão fora do alcance dos valores observados. Isso torna muito útil para variáveis ​​limitadas (discutidas abaixo). Também pode ser usado para algumas distribuições não contínuas. No entanto, PMM não é apropriado se você tiver motivos para acreditar que os valores não observados estão fora do alcance dos valores observados. Transformações As variáveis ​​inclinadas podem ser tornadas mais normais através de transformações, como fazer o registro. No entanto, você deve considerar como isso afeta as relações entre as variáveis. Por exemplo, se você tem variáveis ​​para quotincomequot e quotspending em entertainmentquot e você acredita que a relação entre os dois é linear, substituindo quotincomequot por quotlog incomequot torna o modelo de imputação para ambas as variáveis ​​mal especificadas. Variáveis ​​Limitadas Outra situação comum é variáveis ​​limitadas. Por exemplo, quothours workquot não pode ir abaixo de zero, e as percentagens devem estar entre zero e 100. Essas variáveis ​​podem ser imputadas usando o truncreg. As opções ll () e ul () incluem o limite inferior eo limite superior da variável, que podem ser números ou variáveis. Você não precisa especificar ambos (por exemplo, as horas trabalhadas provavelmente só precisam de ll (0), a menos que você esteja preocupado que o modelo possa tentar que alguém trabalhe mais de 168 horas por semana). Infelizmente, na nossa experiência, não é incomum que o truncreg tenha problemas de convergência em modelos de imputação com muitas variáveis. O PMM é uma boa alternativa para o truncreg porque naturalmente honra os limites que existem nos dados observados. Termos não-lineares Se seu modelo de análise contém termos não-lineares, variáveis ​​muito prováveis ​​ao quadrado, isso deve ser levado em consideração ao criar seu modelo de imputação. Suponha que seu modelo de análise regride y em x e x2. Se você apenas imputou y e x. Criando x2 mais tarde (com mi passive ou c. xc. x), então os valores imputados de y dependerão somente de x e os valores imputados de x dependerão linearmente de y. Quando você executa seu modelo de análise, o coeficiente no termo quadrado será tendencioso em direção a zero, pois para observações onde o e x são imputados, você realmente não está relacionado ao x2. (Nunca esqueça que, quando você escreve o seu comando imputado, você está construindo modelos, não apenas listando variáveis ​​para imputar.) A melhor alternativa parece ser o que White, Royston e Wood chamam de QuotJust Another Variablequot approach. Crie novas variáveis ​​para armazenar os termos não-lineares (por exemplo, gen x2x2) e depois impute-os como se fossem apenas uma outra variável, não relacionada aos termos lineares. Os valores imputados dos termos não-lineares não terão a relação correta com os termos lineares (ou seja, os valores imputados x2 não serão, de fato, x2), mas, desde que sejam distribuídos adequadamente, isso não parece afetar os resultados da análise modelo. Esta é uma área de pesquisa em andamento. Termos de interação Os termos de interação levantam problemas muito semelhantes aos criados por termos não-lineares: se o termo de interação não estiver incluído no modelo de imputação, o coeficiente no termo de interação será tendencioso para zero no modelo de análise. O quotJust Another Variablequot abordagem também funciona bem para termos de interação: criar variáveis ​​armazenando os efeitos de interação (por exemplo gen gxgx) e, em seguida, imputá-los separadamente. Se, no entanto, as interações envolvem variáveis ​​binárias ou categóricas que representam grupos, considere usar a opção by () para imputar cada grupo separadamente. Isso permite que os coeficientes variem entre os grupos sem o problema de termos de interação imputados que não coincidem realmente com as variáveis ​​que estão sendo interagidas. Por exemplo, suponha que você esteja regredindo a renda na educação. experiência. E preto (um indicador para quotsubject é blackquot), mas acho que os retornos para a educação variam de acordo com a raça e, portanto, incluem blackc. education na regressão. A apenas outra abordagem variável criaria uma variável edblackblackrace e imputava-a, mas é possível que o modelo impute um zero para preto e um valor não-zero para edblack. Não há nenhuma indicação de que isso poderia causar problemas no modelo de análise, no entanto. Uma alternativa seria adicionar a opção (preta) ao comando de imputação, de modo que brancos e negros sejam imputados separadamente. Isso permitiria que você usasse blackc. education em seu modelo de análise sem viés (e isso sempre corresponderia aos valores reais de preto e educação). No entanto, executar dois modelos de imputação separados permite que os retornos experimentem variar de raça no modelo de imputação, e não apenas educação. Se você tivesse fortes razões teóricas para acreditar que não era o caso (o que é improvável), seria um problema de especificação. Um problema muito mais comum é o pequeno tamanho da amostra: certifique-se de que cada um dos seus grupos () é suficientemente grande para regressões razoáveis. Tentar usar quotJust Another Variablequot para interações entre variáveis ​​categóricas e imputá-las com logit é problemático. Use por () em vez disso. Conjuntos de variáveis ​​de indicadores Se você possui um conjunto de variáveis ​​de indicadores mutuamente exclusivas, use-as para criar uma única variável categórica e, em seguida, impute-a usando mlogit. Por exemplo, combine branco. Preto. hispânico. Outro em raça. Ou HighSchool. SomeCollege. Solteiros. Avançado para a educação. Você pode recriar as variáveis ​​do indicador após a imputação, com mi passivo ou simplesmente usando i. race ou i. education em seus modelos. Se você imputar as próprias variáveis ​​do indicador usando o logit. O modelo de imputação não impõe a restrição de que apenas um deles pode ser um. Assim, provavelmente você terá pessoas com mais de uma raça ou mais do que um nível de educação. Ao converter os indicadores em uma variável categórica e imputando a variável categórica usando mlogit, você força o modelo a escolher apenas uma categoria. Última revisão: 9152015 Imputação múltipla em Stata: Imputing Esta é parte quarta 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 mi 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 o processo leva, 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. Normally this is plenty of time for the effects of the first iteration to become insignificant and for the process to converge to a stationary state. However, you should check for convergence and increase the number of iterations if necessary to ensure it using the burnin() option. To do so, examine the trace file saved by mi impute chained. It contains the mean and standard deviation of each imputed variable in each iteration. These will vary randomly, but they should not show any trend. An easy way to check is with tsline. but it requires reshaping the data first. Our preferred imputation model uses by(). so it cannot save a trace file. Thus well remove by() for the moment. Well also increase the burnin() option to 100 so its easier to see what a stable trace looks like. Well then use reshape and tsline to check for convergence: preserve mi impute chained (logit) urban (mlogit) race (ologit) edu (pmm) exp wage female, add(5) rseed(88) savetrace(extrace, replace) burnin(100) use extrace, replace reshape wide mean sd, i(iter) j(m) tsset iter tsline expmean, title(quotMean of Imputed Values of Experiencequot) note(quotEach line is for one imputationquot) legend(off) graph export conv1.png, replace tsline expsd, title(quotStandard Deviation of Imputed Values of Experiencequot) note(quotEach line is for one imputationquot) legend(off) graph export conv2.png, replace restore The resulting graphs do not show any obvious problems: If you do see signs that the process may not have converged after the default ten iterations, increase the number of iterations performed before saving imputed values with the burnin() option. If convergence is never achieved this indicates a problem with the imputation model. Checking the Imputed Values After imputing, you should check to see if the imputed data resemble the observed data. Unfortunately theres no formal test to determine whats quotclose enough. quot Of course if the data are MAR but not MCAR, the imputed data should be systematically different from the observed data. Ironically, the fewer missing values you have to impute, the more variation youll see between the imputed data and the observed data (and between imputations). For binary and categorical variables, compare frequency tables. For continuous variables, comparing means and standard deviations is a good starting point, but you should look at the overall shape of the distribution as well. For that we suggest kernel density graphs or perhaps histograms. Look at each imputation separately rather than pooling all the imputed values so you can see if any one of them went wrong. The mi xeq: prefix tell Stata to apply the subsequent command to each imputation individually. It also applies to the original data, the quotzeroth imputation. quot Thus: mi xeq: tab race will give you six frequency tables: one for the original data, and one for each of the five imputations. However, we want to compare the observed data to just the imputed data, not the entire data set. This requires adding an if condition to the tab commands for the imputations, but not the observed data. Add a number or numlist to have mi xeq act on particular imputations: mi xeq 0: tab race mi xeq 15: tab race if missrace This creates frequency tables for the observed values of race and then the imputed values in all five imputations. If you have a significant number of variables to examine you can easily loop over them: foreach var of varlist urban race edu mi xeq 0: tab var mi xeq 15: tab var if missvar For results see the log file . Running summary statistics on continuous variables follows the same process, but creating kernel density graphs adds a complication: you need to either save the graphs or give yourself a chance to look at them. mi xeq: can carry out multiple commands for each imputation: just place them all in one line with a semicolon ( ) at the end of each. (This will not work if youve changed the general end-of-command delimiter to a semicolon.) The sleep command tells Stata to pause for a specified period, measured in milliseconds. mi xeq 0: kdensity wage sleep 1000 mi xeq 15: kdensity wage if missvar sleep 1000 Again, this can all be automated: foreach var of varlist wage exp mi xeq 0: sum var mi xeq 15: sum var if missvar mi xeq 0: kdensity var sleep 1000 mi xeq 15: kdensity var if missvar sleep 1000 Saving the graphs turns out to be a bit trickier, because you need to give the graph from each imputation a different file name. Unfortunately you cannot access the imputation number within mi xeq. However, you can do a forvalues loop over imputation numbers, then have mi xeq act on each of them: forval i15 mi xeq i: kdensity exp if missexp graph export expi. png, replace Integrating this with the previous version gives: foreach var of varlist wage exp mi xeq 0: sum var mi xeq 15: sum var if missvar mi xeq 0: kdensity var graph export chkvar0.png, replace forval i15 mi xeq i: kdensity var if missvar graph export chkvari. png, replace For results, see the log file . Its troublesome that in all imputations the mean of the imputed values of wage is higher than the mean of the observed values of wage. and the mean of the imputed values of exp is lower than the mean of the observed values of exp. We did not find evidence that the data is MAR but not MCAR, so wed expect the means of the imputed data to be clustered around the means of the observed data. There is no formal test to tell us definitively whether this is a problem or not. However, it should raise suspicions, and if the final results with these imputed data are different from the results of complete cases analysis, it raises the question of whether the difference is due to problems with the imputation model. Last Revised: 8232012

No comments:

Post a Comment