Moving Average Stata Command


Esta estrutura de dados é bastante imprópria para fins. Assumindo um id identificador você precisa remodelar. por exemplo. Então uma média móvel é fácil. Use tssmooth ou apenas gere. por exemplo. Mais informações sobre por que sua estrutura de dados é bastante imprópria: não só o cálculo de uma média móvel precisa de um loop (não envolvendo necessariamente o egen), mas você criaria várias novas variáveis ​​extras. Usar aqueles em qualquer análise subsequente estaria em algum lugar entre estranho e impossível. EDITAR Eu dou um loop de amostra, enquanto não me movendo da minha posição de que é uma técnica fraca. Eu não vejo uma razão por trás de sua convenção de nomeação, pelo que P1947 é um meio para 1943-1945. Eu suponho que isso é apenas um erro de digitação. Vamos supor que temos dados para 1913-2012. Por meio de 3 anos, perdemos um ano em cada final. Isso poderia ser escrito de forma mais concisa, à custa de uma enxurrada de macros dentro das macros. O uso de pesos desiguais é fácil, como acima. O único motivo para usar egen é que ele não desiste se houver faltas, o que acima irá fazer. Por uma questão de integridade, note que é fácil lidar com falhas sem recorrer a Egen. E o denominador Se todos os valores estiverem faltando, isso diminui para 00, ou falta. Caso contrário, se algum valor estiver faltando, adicionamos 0 ao numerador e 0 ao denominador, o que é o mesmo que ignorá-lo. Naturalmente, o código é tolerável como acima para as médias de 3 anos, mas para esse caso ou para uma média de mais de anos, substituiria as linhas acima por um loop, o que egen faz. Stata: análise de dados e software estatístico Nicholas J Cox, Universidade de Durham, Reino Unido Christopher Baum, Boston College egen, ma () e suas limitações Statarsquos comando mais óbvio para o cálculo de médias móveis é a função ma () de egen. Dada uma expressão, ela cria uma média móvel daquela expressão. Por padrão, é tomado como 3. deve ser estranho. No entanto, como a entrada manual indica, egen, ma () não podem ser combinados pela varlist:. E, por esse motivo, não é aplicável aos dados do painel. Em qualquer caso, fica fora do conjunto de comandos especificamente escritos para séries temporais veja séries de tempo para obter detalhes. Abordagens alternativas Para calcular as médias móveis para os dados do painel, existem pelo menos duas opções. Ambos dependem do conjunto de dados ter sido o tsset de antemão. Isso vale muito a pena fazer: não só você pode economizar-se especificando repetidamente a variável do painel e a variável de tempo, mas o Stata se comporta de forma inteligente com quaisquer lacunas nos dados. 1. Escreva sua própria definição usando gerar Usando operadores de séries temporais, como L. e F.. Dê a definição da média móvel como argumento para uma declaração de geração. Se você fizer isso, você, naturalmente, não está limitado às médias móveis ponderadas (não ponderadas), calculadas por egen, ma (). Por exemplo, as médias móveis de três períodos, igualmente ponderadas, seriam dadas e alguns pesos podem ser facilmente especificados: 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 a Stata faz automaticamente o que é certo para os dados do painel: os valores de liderança e atraso são elaborados dentro dos painéis, assim como a lógica determina que eles deveriam ser. A desvantagem mais notável é que a linha de comando pode ficar bastante longa se a média móvel envolver vários termos. Outro exemplo é uma média móvel unilateral baseada apenas em valores anteriores. Isso poderia ser útil para gerar uma expectativa adaptativa sobre o que uma variável será baseada apenas em informações até à data: o que alguém poderia prever para o período atual com base nos últimos quatro valores, usando um esquema de ponderação fixa (pode haver um atraso de 4 períodos Especialmente comumente usado com timeseries trimestrais.) 2. Use egen, filter () from SSC Use o filtro de função egen escrito () do egenmore package em SSC. No Stata 7 (atualizado após 14 de novembro de 2001), você pode instalar este pacote, após o qual a ajuda, além disso, aponta para detalhes no filtro (). Os dois exemplos acima serão renderizados (Nesta comparação, a abordagem de geração é talvez mais transparente, mas veremos um exemplo do oposto em um momento.) Os atrasos são um número. Leva a atrasos negativos: neste caso -11 se expande para -1 0 1 ou liderar 1, lag 0, lag 1. Os coeficientes, outro número, multiplicam os itens atrasados ​​ou atrasados ​​correspondentes: neste caso, esses itens são F1.myvar . Myvar e L1.myvar. O efeito da opção de normalização é dimensionar cada coeficiente pela soma dos coeficientes de modo que o coeficiente de coef (1 1 1) seja equivalente aos coeficientes de 13 13 13 e a normalização de coef (1 2 1) seja equivalente a coeficientes de 14 12 14 . Você deve especificar não apenas os atrasos, mas também os coeficientes. Como egen, ma () fornece o caso igualmente ponderado, a principal razão para egen, filter () é suportar o caso pontualmente ponderado, para o qual você deve especificar coeficientes. Também pode-se dizer que obrigar os usuários a especificar coeficientes é uma pressão pouco sobre eles para pensar sobre os coeficientes que eles querem. A justificativa principal para os pesos iguais é, a adivinhar, a simplicidade, mas pesos iguais têm propriedades de domínio de freqüência péssimas, para mencionar apenas uma consideração. O terceiro exemplo acima pode ser qualquer um dos quais é tão complicado quanto a abordagem gerada. Existem casos em que egen, filter () dá uma formulação mais simples do que gerar. Se você quer um filtro binomial de nove séculos, que os climatologistas acham útil, então parece talvez menos horrível do que, e mais fácil de conseguir, do mesmo modo, assim como com a abordagem de geração, egen, filter () funciona corretamente com os dados do painel. Na verdade, como afirmado acima, depende do conjunto de dados ter sido tsset de antemão. Uma dica gráfica Depois de calcular suas médias móveis, você provavelmente vai querer olhar para um gráfico. O comando do usuário tsgraph é inteligente sobre conjuntos de dados tsset. Instale-o em um Stata 7 atualizado por um ssc inst tsgraph. E quanto a subconjunto com se Nenhum dos exemplos acima faz uso de restrições if. Na verdade egen, ma () não permitirá que se especifique. Ocasionalmente, as pessoas querem usar se ao calcular 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 se. Vamos identificar duas possibilidades: interpretação fraca: não quero ver nenhum resultado para as observações excluídas. Interpretação forte: eu nem quero que você use os valores para as observações excluídas. Aqui está um exemplo concreto. Suponha que, como consequência de alguma condição, as observações 1-42 estão incluídas, mas não as observações 43. Mas a média móvel para 42 dependerá, entre outras coisas, do valor para a observação 43 se a média se prolongar para trás e para frente e for pelo menos 3, e dependerá de algumas das observações em algumas circunstâncias. Nosso palpite é que a maioria das pessoas iria pela interpretação fraca, mas se isso é correto, egen, filter () não é compatível se também. Você sempre pode ignorar o que você não quer ou mesmo definir valores indesejados a perder depois, usando o substituir. Uma nota sobre os resultados faltantes nas extremidades da série Como as médias móveis são funções de atrasos e ligações, egen, ma () produz falta onde os atrasos e as derivações 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 centradas para as caudas. Em contraste, nem gerar nem egen, filter () faz, ou permite, qualquer coisa especial para evitar resultados perdidos. Se algum dos valores necessários para o cálculo estiver faltando, esse resultado está faltando. Cabe aos usuários decidir se e qual cirurgia corretiva é necessária para essas observações, presumivelmente depois de olhar para o conjunto de dados e considerando qualquer ciência subjacente que possa ser trazida. Anúncio É a minha primeira postagem e vou tentar ser tão claro que possível. O link para o banco de dados principal está no final da publicação. Contexto Estou usando o StataSE 12.0 no Windows 10. Comecei com a Stata há poucas semanas atrás e estou tentando aprender por conta própria para uma tarefa devida em alguns dias agora (porque cada mesa ou figura me levou dias e dias) : Replicando o papel quotDoes Compulsory School Attendance Affect Schoolig e Earningsquot: web. stanford. edu pistaangrist. pdf que consiste em mostrar que as pessoas nascidas nos últimos trimestres dos anos têm mais educação em média do que as nascidas nos primeiros trimestres devido à escolaridade compulsória Leis. As primeiras figuras desenham um gráfico do número médio de anos de educação (EDUC variável) para todas as pessoas nascidas um determinado ano (variável YOB para o ano de nascimento) durante um determinado trimestre (QOB). Há uma tendência crescente geral e para destruição dos dados, eles usam uma média móvel (figura IV), que é onde eu fui bloqueado nos últimos 5 dias. Problema No banco de dados, existem 27 variáveis ​​entre as quais v4 renomeou EDUC, v27 renomeado YOB (ano de nascimento) e v18 renomeado QOB (quarto de nascimento). O que é necessário para a média móvel é, para cada conjunto de pessoas nascidas no ano c e trimestre j, calculando o número médio de anos de educação não para este ano e trimestre, mas para o trimestre imediatamente anterior, dois trimestres antes, um quarto Mais tarde e 2 trimestres mais tarde (explicou a página 985 do documento). Por exemplo, se eu olhar para os homens nascidos entre 1930 e 1939 como nesta figura (figura IV do artigo: onedrive. liveredirresi. Ntphoto2cpng), eu preciso começar com a coorte nascida em 1930, 3º trimestre e calcular o número médio De anos de educação daqueles nascidos em 1930, 2º trimestre (nascido um quarto antes da coorte dada), o mesmo para aqueles nascidos em 1930, 1º trimestre (nascido 2 quartos antes da coorte dada), o mesmo para aqueles nascidos em 1930, 4º trimestre (Um quarto após a coorte dada), e o mesmo para aqueles nascidos em 1931, 1º trimestre (2 trimestres após a coorte dada). Em seguida, a média móvel é obtida adicionando estes 4 valores e dividindo-se por 4. Este processo inteiro deve ser repetido para cada coorte entre 1930, 3º trimestre e 1939, 2º trimestre. Do-File Para o do-file (onedrive. liveredirresid6919D329B3BF1EF23227ampauthkeyAO2cxEN AGpZMgsMampithintfile2cdo), comecei com o modelo das outras figuras e tentei usar o loop foreach e muitas outras coisas (não me lembro das mensagens de erro não sabia que eu iria publicar aqui) Mas ainda não descobrimos como dizer Stata: por cada YOBQn. Média de cálculo (EDUC) de YOBQ n-1, YOBQ n-2, YOBQ n1, YOBQ n2quot. Para fazer a soma e dividir por 4 depois disso, isso deve ser mais fácil. Recebi uma sugestão excepcional do assistente de ensino: tente o comando tssmooth. Você primeiro terá que criar uma variável de tempo para a qual o comando egen group será muito útil. quot, mas de acordo com minha pesquisa sobre quotegenquot e quottssetquot nos manuais de dados e no livro Cameron amp Trivedi, quotEconometrics using Stataquot (último link): Statamanuals14degen. Tfolder2cdta statamanuals14gsw11.pdf statamanuals14u11.p. Languagesyntax statamanuals14u13.p. Isubsedir onedrive. liveredirresi. Intfile2cpdf Eu deveria colocar os dados antes de tssmooth, mas eu não consegui passar por esse estágio desde que aparentemente, a notação n não é permitida com quotegenquot (erro r (101) quotweights not allowedquot) e ainda estou muito confuso com a forma de combinar egen, tsset E tssmooth. Seria ótimo se alguém pudesse me ajudar com a forma de resolver o erro quotweights not allowedquot e como combinar os comandos quotegen, quottssetquot e quottssmoothquot. Muito obrigado Postscript: aqui está o banco de dados, por sinal onedrive. liveredirresi. Tfolder2cdta Nota: Eu tenho o arquivo do-mail para as outras figuras e tabelas mais importantes do artigo, exceto a tabela I, mas este arquivo provavelmente não é necessário apenas para informações: onedrive. liveredirresi. Hintfile2cdo Última edição por Amarylis Durand 25 Mar 2016, 01:55. 25 de março de 2016, 22:50 Aqui está uma versão mais curta da minha pergunta: como evitar o erro abaixo (r451 em negrito) e como dizer ao Stata que a média móvel de quotmedstay1quot deve ser calculada para cada valor de tps por YOB QOB para Todos os que nasceram no mesmo ano e no mesmo trimestre, classificam aumentando anos e trimestres e calculando o número médio de anos de educação pela YOB QOB. Ordenar: egen medstay1 mean (EDUC) gerar uma nova variável YOBNew porque o comando yq requer que o primeiro argumento seja entre 1000 e 9999 e nossos dados para YOB no Censo de 1980 estão entre 30 e 49 em vez de 1930 e 1949 gen YOBNewYOB substituem YOBNew YOB1900 se CENSUS80 gerar uma variável de tempo que tenha o formato necessário na ajuda tsset gen tpsyq (YOBNew, QOB) formato tq tps a seguinte instrução retorna r451. Valores de tempo repetidos em painel, provavelmente porque existem milhares de pessoas nascidas no mesmo ano e no mesmo trimestre, obviamente com o mesmo número médio de anos de educação. Como evitar este erro tsset medstay1 tps instrução para ter a M média em movimento, mas eu quero que a mudança de média de medstay1 seja calculada para cada valor do quottpsquot de timevariable. Qual comando me permitiria fazer isso ou é feito automaticamente tssmooth ma MA medstay1. Janela (2 0 2) Espero que alguém possa ajudar.

Comments

Popular posts from this blog

Best Option Trading Brokerage

Odds Enhancers Forex Cargo