Saturday 4 November 2017

How To Handle Missing Data In Stata Forex


Bem-vindo ao Instituto de Pesquisas Digitais e Educação Stata FAQ: Como posso ver o número de valores e padrões faltantes de valores perdidos no meu arquivo de dados Às vezes, um conjunto de dados pode ter quothassesquot, isto é, valores em falta. Alguns procedimentos estatísticos, como a análise de regressão, também não funcionam, ou em tudo, em um conjunto de dados com valores faltantes. As observações com valores em falta devem ser excluídas ou os valores em falta devem ser substituídos para que um procedimento estatístico produza resultados significativos. A maioria dos programas estatísticos (incluindo SAS, SPSS e Stata) removerá automaticamente esses casos de qualquer análise que você executar (sem excluir os casos do conjunto de dados). É por isso que o quotnquot muitas vezes varia de análise para análise, mesmo que o conjunto de dados seja o mesmo. Diferentes variáveis ​​têm quantidades diferentes de dados ausentes e, portanto, alterar as variáveis ​​em um modelo altera o número de casos com dados completos em todas as variáveis ​​do modelo. Como o software deixa cair casos com valores faltantes para nós, é muito fácil abordar completamente os dados perdidos. No entanto, a presença de dados em falta pode influenciar nossos resultados, especialmente quando um conjunto de dados ou mesmo uma única variável, tem uma porcentagem elevada de valores em falta. Assim, é sempre uma boa idéia verificar um conjunto de dados para dados em falta e pensar sobre como os dados em falta podem influenciar nossas análises. Esta página mostra alguns métodos para analisar os valores em falta em um conjunto de dados, esta informação pode ser usada para tomar decisões mais bem informadas sobre como lidar com os valores em falta. Antes de começar, precisamos de alguns dados com valores em falta, o código abaixo insere um pequeno conjunto de dados no Stata e, em seguida, exibe esses dados. Em um conjunto de dados pequeno, como o abaixo, é muito fácil olhar para os dados brutos e ver onde os valores estão faltando. No entanto, quando os conjuntos de dados são amplos, precisamos de uma maneira mais sistemática de examinar nosso conjunto de dados para os valores em falta. Abaixo, mostramos algumas maneiras de fazer isso, usando os dados abaixo como exemplo. 1. Número de valores faltantes em relação ao número de valores não perdidos A primeira coisa que vamos fazer é determinar quais variáveis ​​têm muitos valores faltantes. Criamos um pequeno programa Stata chamado mdesc que conta o número de valores faltantes em variáveis ​​numéricas e de caracteres. Você pode baixar o mdesc dentro do Stata digitando findit mdesc (consulte Como posso usar o comando findit para procurar programas e obter ajuda adicional para obter mais informações sobre o uso de finidit). Então você pode executar o mdesc para uma ou mais variáveis, conforme ilustrado abaixo. Agora, conhecemos o número de valores em falta em cada variável. Por exemplo, o salespric variável tem quatro valores faltantes e saltoapr tem dois valores faltantes. 2. Obtendo o número de valores faltantes por observação, também podemos observar a distribuição de valores faltantes nas observações. O código abaixo cria uma variável chamada nmis que dá o número de valores faltantes para cada observação. A função rmiss2 () usada aqui é uma extensão para a função egen rmiss (). Ele conta o número de valores em falta na lista var. Rmiss2 () aceita variáveis ​​de string e numéricas. (Stata rmiss () apenas aceita variáveis ​​numéricas.) Você pode baixar o rmiss2 () pela Internet a partir do Stata, digitando findit rmiss2 (consulte Como posso usar o comando findit para procurar programas e obter ajuda adicional para obter mais informações sobre o uso do findit ). Abaixo, nós tabulamos a variável que acabamos de criar. Olhando para a tabela de frequências, sabemos que existem quatro observações sem valores ausentes, nove observações com valores faltantes, uma observação com dois valores faltantes e uma observação com três valores faltantes. 3. Padrões de valores em falta Também podemos observar os padrões de valores em falta. Você pode fazer o download de mvpatterns pela internet a partir do Stata digitando findit mvpatterns (consulte Como posso usar o comando findit para procurar programas e obter ajuda adicional para obter mais informações sobre o uso do findit). O mvpatterns de comando produz saída para todas as variáveis ​​no conjunto de dados, para os padrões de dados ausentes em um subconjunto de variáveis, uma lista de variáveis ​​pode ser incluída, por exemplo, ovalvalvalvalvalvalvalvalvalvalvnterns de mvpatterns. A saída produzida por mvpatterns é mostrada abaixo. A primeira tabela lista as variáveis, o tipo de armazenamento (tipo), o número de observações (obs), o número de valores ausentes (mv) e o rótulo variável se as variáveis ​​tiverem um. A segunda tabela contém as informações sobre o padrão de valores em falta. O primeiro bloco de colunas na saída mostra os padrões de dados ausentes. Dentro do bloco, cada variável é representada por uma coluna, um quotquot indica que os valores dessa variável estão presentes em um dado padrão de dados faltando, um quot. quot indica que eles estão faltando. As colunas seguem a mesma ordem que a lista de variáveis ​​na primeira tabela, de modo que a primeira coluna na saída abaixo representa landval. A segunda melhoria. e assim por diante. Os padrões de dados ausentes estão listados na freqüência descendente, aqui o padrão de dados faltando mais comum é o de dados completos (quotquot). A tabela também mostra o número de valores ausentes nesse padrão (mv) e o número de casos com o padrão de dados ausente (freq). Com base nas informações da segunda tabela, sabemos que há quatro observações sem valores faltantes, faltando dois casos apenas na variável salepric. E uma observação com valores faltantes na melhoria. Salepric e saltoapr. 4. Quando todas as variáveis ​​de interesse são numéricas. Os exemplos acima tudo funcionam independentemente de as variáveis ​​de interesse (ou seja, as variáveis ​​cujos padrões de dados perdidos você deseja examinar) são numéricas ou de cadeia. Quando todas as variáveis ​​que você deseja verificar por valores em falta são numéricas, podemos usar um programa chamado misschk para simplificar as etapas de examinar os dados que faltam em nosso conjunto de dados. (Nota: as variáveis ​​numéricas incluem aquelas com rótulos de valores que são strings, desde que os valores reais das variáveis ​​sejam armazenados como números.) Você pode fazer o download do misschk dentro do Stata digitando findit misschk (consulte Como posso usar o comando findit para Procure programas e obtenha ajuda adicional para obter mais informações sobre o uso de findit). Abaixo está o comando para a misschk. Nós incluímos as cinco variáveis ​​em nosso conjunto de dados na lista de variáveis ​​após o comando misschk. No entanto, poderíamos ter deixado a lista de variáveis ​​em branco (ou seja, usamos apenas misschk. Gen (miss)), se tivéssemos, a misschk teria executado usando todas as variáveis ​​em nosso conjunto de dados. A lista de variáveis ​​só é necessária se quisermos executar o misschk em apenas algumas das variáveis ​​em nosso conjunto de dados. A opção gen (miss) diz ao misschk que queremos que ele crie duas novas variáveis, ambas começando com quotmissquot. Essas duas variáveis ​​serão denominadas misspattern e missnumber. A variável misspattern indica quais dos padrões de dados faltantes que cada caso segue. O número de falta variável indica o número de valores em falta para cada caso. A saída para misschk consiste em três tabelas. A primeira tabela lista o número de valores em falta, bem como a percentagem em falta para cada variável, isto é semelhante à tabela produzida pelo mdesc na parte 1 acima. Esta tabela também contém uma coluna rotulada que atribui a cada variável um número que é usado para identificar a variável mais tarde na saída. A segunda tabela mostra a distribuição dos valores em falta. O padrão de falta é descrito usando os números variáveis ​​da primeira tabela e sublinhados (). Os números indicam quais variáveis ​​estão faltando nesse padrão, os sublinhados representam observações não faltantes. Por exemplo, a partir da segunda tabela, vemos que dois casos têm valores em falta na variável 1 (landval), mas dados completos em todas as outras variáveis ​​e que um caso está faltando dados nas variáveis ​​2, 4 e 5. A linha inferior mostra Que quatro casos não estão faltando nenhum valor (todos os sublinhados). Esta tabela mostra a mesma informação gerada na terceira parte acima, mas em um formato ligeiramente diferente. O padrão de dados faltando para cada caso é descrito na variável misspattern. Finalmente, a terceira tabela mostra a distribuição do número de valores faltantes por caso. Esta é a mesma informação discutida acima na parte 2. O número de variáveis ​​que cada caso está faltando também está contido na variável missnumber. O conteúdo deste site não deve ser interpretado como um endosso de qualquer site, livro ou produto de software específico da University of California. Stata: análise de dados e software estatístico Nicholas J. Cox, Universidade de Durham, Reino Unido 1. Os problemas Os usuários geralmente desejam substituir os valores perdidos por valores não transmissos vizinhos, particularmente quando as observações ocorrem em alguma ordem definida, muitas vezes (mas nem sempre) uma ordem do tempo. Normalmente, isso ocorre quando os valores de alguma variável devem ser idênticos em blocos de observações, mas, por algum motivo, os valores são explicitamente negativos no conjunto de dados apenas para certas observações, na maioria das vezes o primeiro. Portanto, há um desejo de copiar valores dentro de blocos de observações. Alternativamente, os usuários geralmente querem substituir os valores faltantes em uma seqüência, geralmente em uma seqüência de tempo. Esses problemas podem ser resolvidos com métodos semelhantes. Uma situação diferente, não abordada diretamente nesta FAQ, é quando os valores de alguma variável variável no tempo são conhecidos apenas para certas observações. Existe então uma necessidade de imputação ou interpolação entre valores conhecidos. Copiar o último valor para a frente é improvável que seja um bom método de interpolação, a menos que, como acabei de ser dito, sabe-se que os valores permaneceram constantes em um nível declarado até o próximo nível indicado. De qualquer forma, os usuários que aplicam os métodos descritos aqui para a imputação ou a interpolação assumem a responsabilidade pelo que fazem. 2. Sem tsset: copiando valores sem permissão Vamos primeiro olhar para o caso em que você não apresentou seus dados (veja, por exemplo, ts tsset para uma explicação), mas assumiremos que os dados foram colocados na ordem de classificação correta , Digamos, digitando Se os valores em falta ocorreram individualmente, então eles poderiam ser substituídos pelo valor anterior ou pelo seguinte valor. Aqui, a notação de subscrito usada é que n se refere sempre a qualquer observação dada, nminus1 à observação anterior e n1 à seguinte Observação, dada a ordem de classificação atual. Não há, é claro, qualquer observação antes da primeira, ou após a última, então myvar0 sempre está faltando, assim como myvar para qualquer número de observação que seja negativo ou maior do que o número de observações nos dados. Veja U 13.7 Subscritos explícitos para obter mais informações sobre subscritos. Faltando (myvar) pega missões numéricas e falhas de cordas. Se myvar for numérico, você poderia escrever porque. Lt. a lt. b lt. Lt. z são os valores faltantes numéricos. A maioria dos problemas envolve valores numéricos em falta, portanto, a partir de agora, os exemplos serão apenas para variáveis ​​numéricas. No entanto, se myvar fosse uma string, seria a sintaxe correta, e não o comando anterior, porque a string vazia está faltando a cadeia. 3. Copiando os valores anteriores para baixo: o efeito em cascata Os valores ausentes podem ocorrer em blocos de dois ou mais. Suponha que você queira substituir as faltas pelo valor anterior não faltando, sempre que ocorreu, de modo que, quando quiser substituir não somente myvar2. Mas também myvar3 com 42. é uma solução interativa, mas, para conjuntos de dados maiores, você precisa de uma maneira mais sistemática de proceder. Para obter isso, ajuda a saber que a substituição sempre usa a ordem de classificação atual: o valor para a observação 2 sempre é substituído antes da observação 3, portanto, o valor de substituição para 2 pode ser usado no cálculo do valor de substituição para 3. atinge isso Propósito. Myvar1 está inalterado, porque myvar1 não está faltando. Myvar2 é substituído pelo valor de myvar1. 42, porque myvar2 está faltando. Mas myvar3 é substituído pelo novo valor de myvar2. 42, não o seu valor original, faltando (.). Desta forma, os valores não transmissíveis são copiados em cascata pela ordem de classificação atual. Naturalmente, um ou mais valores faltantes no início dos dados não podem ser substituídos dessa maneira, pois nenhum valor sem aviso prévio precede qualquer um deles. E se você quiser usar apenas o valor anterior e não quiser este efeito em cascata Você precisa copiar a variável e substituir por isso: Nenhuma substituição está sendo feita na mycopy. Então não há efeito em cascata. Substitua apenas olhe através da mycopy e volte uma observação. 4. Copiar os seguintes valores para cima O caso oposto é substituído pelos seguintes valores, mas, porque substituir respeita a ordem de classificação atual, esta não é apenas a imagem espelhada de substituição por valores anteriores. Na prática, é mais fácil reverter a série e trabalhar de outra maneira. Gsort permite que você obtenha ordem de classificação reversa veja D gsort. O tempo de ordenação do disco coloca os valores mais altos por último, enquanto que gsort minustime coloca os valores mais altos primeiro. É como se você tivesse gerado uma variável multiplicada por menos1 e classificada nela e, de fato, isso é exatamente o que o gsort faz nos bastidores, embora a variável seja temporária e tenha caído após ter servido o objetivo. Não produz um efeito em cascata. Myvar2 seria substituído por myvar3 existente. Myvar3 seria substituído por myvar4 existente. e assim por diante. No máximo, um de qualquer bloco de valores faltantes seria substituído. Isso pode, é claro, ser exatamente o que você deseja. Mais uma vez, nada pode ser feito sobre quaisquer valores faltantes no final da série (colocados no início após o gsort). Após a substituição, você provavelmente irá reverter a classificação mais uma vez por 5. Complicações: várias variáveis ​​e estrutura do painel Duas complicações comuns Você deseja fazer isso com várias variáveis: use foreach. Classifique ou gsort uma vez, substitua todas as variáveis ​​usando foreach. E, se necessário, remonta novamente. Você tem dados do painel, portanto, a substituição apropriada é um valor vizinho não relacionado para cada indivíduo no painel. Suponha que os indivíduos sejam identificados por id. Existem apenas alguns detalhes extras a serem revisados, como a chave para muitos problemas de gerenciamento de dados com os dados do painel reside no seguinte ordenamento por alguns cálculos por:. Para mais informações, veja as seções do manual indexadas por:. 6. Com tsset Se você tiver tsset seus dados, digamos, digitando tem o efeito de copiar em cascata, enquanto não tem nenhum efeito. O valor do tsset é que leva em conta lacunas em seus dados e (se você declarou uma variável de painel) de qualquer estrutura de painel para seus dados. 7. Valores faltantes em seqüências Em alguns conjuntos de dados, as variáveis ​​de tempo vêm com lacunas, algo como Nós podemos usar um método semelhante e confiar em cascata: a diferença é simplesmente que cada valor é mais do que o anterior. Se os dados fossem uma vez por década, cada valor seria de mais 10, e assim por diante. Novamente os valores faltantes no início de uma seqüência precisam de cirurgia especial, como mostrado aqui. Com os dados do painel tsset, use L. year 1 em vez de yearn-1 1.

No comments:

Post a Comment