Stata Data Analysis e Statistical Software. Nicholas J Cox, Universidade de Durham, Reino Unido Christopher Baum, Boston College. egen, ma e suas limitações. O comando mais óbvio para o cálculo de médias móveis é a função de egen Dada uma expressão, - period média móvel dessa expressão Por padrão, é tomado como 3 deve ser ímpar. No entanto, como a entrada manual indica, egen, ma não pode ser combinado com varlist e, por essa razão, não é aplicável aos dados do painel Em qualquer caso, ele está fora do conjunto de comandos especificamente escrito para as séries temporais ver série de tempo para details. Alternative approach. To calcular médias móveis para os dados do painel, existem pelo menos duas opções Ambos dependem do conjunto de dados ter sido tsset de antemão Isso é Muito vale a pena fazer não só você pode salvar-se repetidamente especificando variável de painel e variável de tempo, mas Stata se comporta inteligentemente dado quaisquer lacunas nos dados.1 Escreva sua própria definição usando generate. Using série de tempo o Peradores como L e F dão a definição da média móvel como o argumento para uma declaração de geração. Se você fizer isso, você está, naturalmente, não limitado às médias ponderadas não ponderadas igualmente ponderadas calculadas por egen, ma. Por exemplo, igualmente - ponderada de três períodos médias móveis seria dado por. e alguns pesos podem ser facilmente especificado. Você pode, claro, especificar uma expressão como log myvar em vez de um nome de variável como myvar. Uma grande vantagem desta abordagem é que Stata automaticamente faz a coisa certa para o painel de dados de liderança e valores de atraso são trabalhados dentro painéis, assim como a lógica dita que deve ser A desvantagem mais notável é que a linha de comando pode ficar bastante longo se a média móvel envolve vários termos. Uma média móvel unilateral baseada apenas em valores anteriores Isso pode ser útil para gerar uma expectativa adaptativa de que uma variável será baseada puramente em informações até à data o que alguém poderia prever para R o período atual com base nos últimos quatro valores, usando um esquema de ponderação fixo Um atraso de 4 períodos pode ser especialmente comumente usado com timeseries trimestrais.2 Use egen, filtro de SSC. Use o filtro de função egen escrito pelo usuário do pacote egenmore No SSC No Stata 7 atualizado após 14 de novembro de 2001, você pode instalar este pacote by. after que ajuda egenmore aponta para detalhes sobre o filtro Os dois exemplos acima seriam renderizados. Nesta comparação a abordagem de gerar é talvez mais transparente, mas vamos ver um exemplo do oposto em um momento Os retornos são um numlist leva sendo retornos negativos neste caso -1 1 expande para -1 0 1 ou chumbo 1, lag 0 , Lag 1 Os coeficientes, um outro numlist, multiplicar o correspondente atraso ou itens de liderança, neste caso, os itens são myvar e O efeito da opção normalizar é a escala de cada coeficiente pela soma dos coeficientes para que coef 1 1 1 normalizar é Equivalente a coeficientes de 1 3 1 3 1 3 e coef 1 2 1 normalizar é equivalente a coeficientes de 1 4 1 2 1 4. Você deve especificar não só os atrasos, mas também os coeficientes Devido a egen, ma fornecer o caso igualmente ponderado, o A principal razão para egen, filtro é apoiar o caso desigualmente ponderada, para o qual você deve especificar coeficientes Também poderia dizer-se que obrigando os usuários a especificar coeficientes é um pouco de pressão extra sobre eles a pensar sobre quais os coeficientes que eles querem A principal justificação Para os pesos iguais é, nós supomos, a simplicidade, mas os pesos iguais têm propriedades do domínio da freqüência ruim, para mencionar apenas uma consideração. O terceiro exemplo acima poderia ser. either de que é apenas aproximadamente tão complicado quanto a aproximação da gerar Há uns casos em que egen , Filtro dá uma formulação mais simples do que gerar Se você quer um filtro binomial de nove períodos, que os climatologistas acham útil, then. looks talvez menos horrível do que, e mais fácil de obter direito than. Just como com a abordagem de gerar, egen, filtro funciona corretamente Com dados do painel Na verdade, como dito acima, depende do conjunto de dados ter sido tsset previamente. Uma dica gráfica. Depois de calcular suas médias móveis, você provavelmente vai querer olhar para um gráfico O comando escrito pelo usuário tsgraph é inteligente sobre conjuntos de dados tsset Instale-o em um Stata 7 atualizado por ssc inst tsgraph. What sobre subconjunto com if. None dos exemplos acima fazer uso de se restrições Na verdade egen, ma não permitirá se a ser especificado Ocasionalmente as pessoas wa Nt para usar se ao calcular as médias móveis, mas seu uso é um pouco mais complicado do que é normalmente. O que você esperaria de uma média móvel calculada com if Vamos identificar duas possibilidades. Interpretação de Wreak Eu não quero ver quaisquer resultados para As observações excluídas. Strong interpretação Eu nem quero que você use os valores para as observações excluídas. Aqui está um exemplo concreto Suponha como uma conseqüência de alguma condição if, observações 1-42 estão incluídos, mas não observações 43 sobre Mas a média móvel Para 42 dependerá, entre outras coisas, do valor para a observação 43 se a média se estender para trás e para a frente e for de comprimento pelo menos 3, e dependerá também de algumas das observações 44 em diante em algumas circunstâncias. A maioria das pessoas iria para a interpretação fraca, mas se isso é correto, egen, o filtro não suporta se você pode sempre ignorar o que você não quer ou mesmo definir valores indesejados a falta depois b Y usando replace. Uma nota sobre os resultados faltando nas extremidades da série. Como as médias móveis são funções de retardos e leads, egen, ma produz faltando onde os atrasos e leads não existem, no início e no final da série Uma opção nomiss Força o cálculo de médias móveis mais curtas e não centralizadas para as caudas. Em contraste, nem gerar nem egen, filtro faz, ou permite, nada de especial para evitar resultados faltantes Se algum dos valores necessários para o cálculo está faltando, então esse resultado está faltando Cabe aos usuários decidir se e o que a cirurgia corretiva é necessária para essas observações, presumivelmente depois de olhar para o conjunto de dados e considerar qualquer ciência subjacente que pode ser levado a bear. Smoothing Lowess. We irá trabalhar com dados da Colômbia WFS Household Survey, Conduzida em 1975-76 I tabulou a distribuição etária de todos os membros da família e salvou-o em um arquivo ascci, que agora lemos e plot. Como você pode ver, a distribuição parece um pouco menos suave do que a Dados das Filipinas que nós estudamos anteriormente Você pode calcular o índice de Myers para esta distribuição. Meios de Ridding e Linhas. A maneira mais simples de suavizar um scatterplot é usar uma média móvel também conhecida como uma corrida média A abordagem mais comum é usar um Janela de 2k 1 observações, k à esquerda e k à direita de cada observação O valor de k é um trade-off entre suavidade de bondade de ajuste Cuidado especial deve ser tomado nos extremos da escala Stata pode calcular meios de execução via lowess Com as opções de média e noweight. Um problema comum com meios de execução é viés Uma solução é usar pesos que dão mais importância para os vizinhos mais próximos e menos para aqueles mais distantes Uma função de peso popular é Tukey s tri-cubo, definido como wd 1 - d 3 3 para d 1 e 0 caso contrário, onde d é a distância para o ponto alvo expressa como uma fração da largura de banda Stata pode fazer esse cálculo via lowess com a opção significa se você omitir noweight. An melhor solução é usar R Definimos novamente uma vizinhança para cada ponto, tipicamente os k vizinhos mais próximos de cada lado, encaixamos uma linha de regressão para os pontos da vizinhança e usamos-na para prever um valor mais suave para a observação do índice Isto soa como um monte de Mas os cálculos podem ser feitos de forma eficiente usando fórmulas de atualização de regressão Stata pode calcular uma linha em execução através lowess se você omitir médio, mas incluem noweight Melhor ainda é usar linhas ponderadas correndo dando mais peso para as observações mais próximo, que é o lowess mais suave Faz uma variante segue esta estimativa com algumas iterações para obter uma linha mais robusta Esta é claramente a melhor técnica na família Stata s lowess usa uma linha de corrida ponderada se você omitir médio e noweight. R implementa o lowess mais suave através das funções lowess e O loess mais recente, que usa uma interface de fórmula com um ou mais preditores e padrões diferentes O parâmetro controla o grau do local p Olynomial o padrão é 2 para o quadrático, as alternativas são 1 para linear e 0 para os meios de execução Ambos os implementos podem usar um estimador robusto, com o número de iterações controladas por um parâmetro iter ou iterações Tipo loess e lowess no console R para mais informações In Ggplot você pode overlay um lowess mais suave chamando geomsmooth. A figura abaixo mostra os dados colombianos e um lowess mais suave com um intervalo ou largura de banda igual a 25 dos dados. Você pode querer tentar diferentes badwidths para ver como os resultados variar. Digit preferência Revisited. Smoothing a distribuição de idade fornece uma melhor maneira de avaliar a preferência de dígito do que misturar Myers Vamos calcular o último dígito de idade e tabulate-lo em toda a gama de dados usando as freqüências observadas e um lowess suave. Preferência para idades terminando em 0 e 5, que é muito comum, e provavelmente 2 também Nós agora usamos o suave como peso. As freqüências suavizadas mostram que esperamos menos pe Agora, estamos prontos para calcular um índice de preferência de dígito, definido como metade da soma das diferenças absolutas entre freqüências observadas e suaves. Nós vemos que precisaríamos Para remodelar 5 5 das observações para eliminar a preferência de dígito Você pode comparar este resultado com o índice de Myers.2017 Germ n Rodr guez, Universidade de Princeton. Imagine que você tem dados sobre preços para muitos produtos. Para cada um dos produtos que você grava informações de preço semanais. Clear set obs 200.gen prodid n. Cada produto tem um preço médio único gen prodprice rpoisson 5 7. Você tem dados sobre os preços semanais por 200 semanas expandir 200 bysort prodid gen tn etiqueta var t Semana. Existe também alguma variação sazonal 2 sen pi 50. Assim como uma tendência geral tendência geral tendência t 005. A primeira observação não está correlacionada com nada gen preço prodprice 2 5 tendência rpoisson 10 10 se t 1 substituir preço prodprice 2 Tendência sazonal 7 preço n-1 3 rpoisson 10 10 se t 2 substituir preço prodprice tendência sazonal 5 preço n-1 2 preço n-2 3 rpoisson 10 10 se t 3 substituir preço prodprice tendência sazonal 3 preço n-1 2 preço n - 2 2 preço n-3 3 rpoisson 10 10 se t 4 substituir preço prodprice tendência sazonal 3 preço n-1 175 preço n-2 125 preço n-3 1 preço n-4 3 rpoisson 10 10 se t 4. Criar um globabl para Loja global twograph. forv i 1 6 global twograph linha preço t se prodid i. twoway twograph, legenda off title Verdadeiro preço tendências para os primeiros seis produtos. Agora vamos imaginar que os dados acima gerados é a verdadeira informação de preços que é fundamentalmente inobservável. Em vez disso você tem várias coleções de dados por semana sobre os preços que cada variam por algum erro addative aleatório expandir 3.bysort prodid t gen prodobs n. gen preço pricecollect rnormal 25. No entanto, as informações de preço que você tem tem algumas entradas que 10 foram erroneamente Entrou em erro. gen entryerror rbinomial 1, 1 gen scalarerror rnormal 1.gen priceobs pricecollect 1 entryerror scalarerror etiqueta var priceobs Preço Registrado. Além disso, 35 de seus dados de preço nunca foram coletados gen faltando rbinomial 1, 35.drop se faltando 1. Criar um globabl para armazenar global twograph. forv i 1 6 linha global twograph priceobs t se prodid i prodobs 1.twoway twograph, legenda Off title Tendências de preços observados para os primeiros seis products. keep t priceobs prodid entryerror Estou mantendo erro de entrada no conjunto de dados como meio de comparação, embora ele não seria diretamente observado. A questão é. Você pode agora com esta messy data recuperar dados de preços que é semelhante ao original. A primeira coisa que devemos explorar é a duplicação de dados gravados. scatter priceobs t se prodid 1, title É fácil ver desvios individuais. É fácil ver os desvios individuais, mas não queremos percorrer todos os 200 produtos para identificar individualmente os valores atípicos do preço. Queremos apresentar um sistema para identificar valores atípicos. Vamos gerar uma média por produto e tempo por meio de preço médio. Vamos sinalizar qualquer observação que é 120 maior do que a média ou 80 menos do que a média gen flag pricemean priceobs 1 2 pricemean priceobs 8. Vamos ver como ele está trabalhando dois scotter priceobs t se prodid 1 scatter priceobs t se prodid 1 flag 1 Msymbol lgx title Alguns dos outliers podem ser identificados apenas olhando para a legenda média off. corr flag entryerror Nossa bandeira é correlacionada cerca de 45 com os erros de entrada Isso é bom, mas podemos fazer melhor. Eu proponho que em vez de usar apenas a média que nós construímos uma média móvel de preços e ver como cada entrada desvia da média O único problema é que o comando de média móvel requer xtset e que requer apenas uma entrada por período de tempo Então, eu digo Nós redimensionamos a variável de tempo e adicionamos como se registradas em um momento diferente da semana o número de observação. Precisamos de gerar recentemente prodobs, uma vez que não sabemos qual observação está faltando em cada produto byproducts genéricos pro genóides n. gen t2 t 4 prodobs. Xtset define o id do painel de dados do painel e o nível da série de tempo xtset prodid t2. O comando que vamos usar é tssmooth. É codificado de tal forma que, especificando ma significa média móvel e janela diz Stata quantos períodos de tempo para contar à frente e quantos atrás na movimentação de movimento. Este comando pode demorar um pouco tssmooth ma mapriceobs priceobs, janela 23 0 23 23 está em Efeito 5 semanas à frente e 5 semanas atrás O 0 diz stata não incluir inself nessa média. A média móvel é de dois pontos de referência de dispersão se prodid 1 linha mapriceobs t se prodid 1 linha pricemean t se prodid 1 title A média móvel é menos succeptable para outliers. A média móvel é mais estável do que apenas a média do tempo. Vamos tentar sinalizar usando a média móvel drop flag2 gen flag2 mapriceobs priceobs 1 2 mapriceobs priceobs 8.two scatter priceobs t se prodid 1 scatter priceobs t se prodid 1 flag2 1 msymbol lgx título A Média Móvel também pode ser lenda útil off. corr Flag2 entryerror. Solte os dados sinalizados drop if flag2 1. Colapso para o nível semanal colapso priceobs, por prodid t etiqueta var priceobs Preço médio observado. forv i 1 6 global twograph scatter priceobs t se prodid i. twoway twograph, legend off title Evolução dos preços observados para Primeiros seis produtos Os dados estão procurando muito melhor, mas ainda temos claramente alguns outliers indesejados. Poderíamos tirar proveito das tendências cruzadas de produtos para ajudar a identificar valores anormais dentro dos preços dos produtos por meio de preços médios de venda, preços médios, preços médios, preços vendidos, etc., se prodid 1 prever resid1, residual. reg priceobs aveprice se prodid 2 prever resid2, residual. reg priceobs aveprice if prodid 3 prever resid3, residual. twoway line resid1 t se prodid 1 linha priceobs t se prodid 1 line resid2 t se prodid 2 line priceobs t se prodid 2 line resid3 t se prodid 3 line priceobs t se prodid 3 title Os resíduos são indicadores claros de Outliers legenda fora. Finalmente, deixe-nos cair observações com resíduos que são maiores do que 1 5 desvios-padrão da média. qui forv i 1 200 reg tasc aveprice se prodíd i prever residtemp, residual sum residtemp substituir sinalizador residtemp-r mean r sd 1 5 residtemp-r Gota média residual. Vamos ver como ele está trabalhando dois scotter priceobs t se prodid 2 scatter priceobs t se prodid 2 flag 1 msymbol lgx title Agora apenas tentando remover alguns outliers fora legenda off. Plotting product 1 pricing relativo a outliers global twograph. forv i 1 6 global de linha twograph priceobs t se prodid i. Finalmente deixando cair a queda dos outliers se flag. Um gráfico final global twograph. forv i 1 6 global twograph scatter priceobs t se prodid i. twoway twograph, a legenda fora do título Observou tendências de preços para os primeiros seis produtos. Não tão limpo como nosso primeiro gráfico, mas definitivamente muito melhorado.
No comments:
Post a Comment