Tuesday 25 July 2017

Mudar Média De Valores Em Falta


Um método simples e geral para preencher os dados em falta, se tiver execuções de dados completos, é usar a regressão linear. Digamos que você tem 1000 execuções de 5 em uma linha com nenhuma falta. Configurar o vetor 1000 x 1 y e 1000 x 4 matriz X: regressão lhe dará 4 números a b c d que dão uma melhor correspondência para suas 1000 linhas de dados mdash dados diferentes, diferentes a b c d. Então você usa estas a b c d para estimar (prever, interpolar) wt0 ​​ausente. (Para os pesos humanos, eu esperava que abcd fosse em torno de 14.) (Há centenas de livros e artigos sobre regressão, em todos os níveis. Para a conexão com interpolação, porém, eu não sei de uma boa introdução ninguém) Stata: Data Análise e Software Estatístico Nicholas J. Cox, Universidade de Durham, Reino Unido Christopher Baum, Faculdade de Boston egen, ma () e suas limitações Statarsquos comando mais óbvio para calcular médias móveis é a função ma () de egen. Dada uma expressão, cria uma média móvel - period 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 esse motivo, 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éries de tempo para obter detalhes. Abordagens alternativas Para calcular médias móveis para dados de painel, existem pelo menos duas opções. Ambos dependem do conjunto de dados ter sido tsset previamente. Isso vale muito a pena fazer: não só você pode salvar a si mesmo 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 Usando operadores de séries temporais como L. e F. Dar a definição da média móvel como o argumento para uma declaração de geração. Se você fizer isso, você não estará, naturalmente, limitado às médias móveis ponderadas (não ponderadas) centradas calculadas por egen, ma (). Por exemplo, as médias móveis ponderadas de três períodos seriam dadas por e alguns pesos podem ser facilmente especificados: Você pode, naturalmente, especificar uma expressão como log (myvar) em vez de um nome de variável como myvar. Uma grande vantagem dessa abordagem é que a Stata automaticamente faz a coisa certa para os dados do painel: os valores iniciais e retardatários são elaborados dentro dos painéis, exatamente como a lógica determina que eles devam 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 do que uma variável será baseada puramente em informações até à data: o que alguém poderia prever para o período atual baseado nos últimos quatro valores, usando um esquema de ponderação fixo Especialmente comumente usado com timeseries trimestrais.) 2. Use egen, filter () de SSC Use o filtro de função egen escrito pelo usuário () do pacote egenmore em SSC. No Stata 7 (atualizado após 14 de novembro de 2001), você pode instalar este pacote após o qual a ajuda egenmore aponta para detalhes sobre filter (). Os dois exemplos acima seriam renderizados (nesta comparação, a abordagem de gerar é talvez mais transparente, mas veremos um exemplo do oposto em um momento). Os retornos são um numlist. Leva-se a defasagens negativas: nesse caso -11 se expande para -1 0 1 ou chumbo 1, atraso 0, atraso 1. Os coeficientes, outro número, multiplicam os itens correspondentes retardados ou principais: neste caso, esses itens são F1.myvar . Myvar e L1.myvar. O efeito da opção de normalização é escalar cada coeficiente pela soma dos coeficientes para que o coeficiente (1 1 1) normalize seja equivalente aos coeficientes de 13 13 13 e o coeficiente (1 2 1) normalize seja equivalente aos 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 razão principal para egen, filter () é suportar o caso desigualmente ponderado, para o qual você deve especificar coeficientes. Poderia também ser dito que obrigar os usuários a especificar coeficientes é uma pequena pressão extra sobre eles para pensar sobre quais coeficientes eles querem. A principal justificativa para pesos iguais é, suponhamos, simplicidade, mas pesos iguais têm propriedades de domínio de frequência ruim, para mencionar apenas uma consideração. O terceiro exemplo acima pode ser qualquer um dos quais é quase tão complicado quanto a abordagem gerar. Há casos em que egen, filter () dá uma formulação mais simples do que gerar. Se você quer um filtro binomial de nove períodos, que os climatologistas acham útil, então parece talvez menos horrível do que, e mais fácil de obter do que, Assim como com a abordagem de geração, egen, filter () 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 tsgraph escrito pelo usuário é inteligente sobre conjuntos de dados tsset. Instale-o em um Stata 7 atualizado por ssc inst tsgraph. O que sobre subconjunto com se nenhum dos exemplos acima fazer uso de se restrições. Na verdade egen, ma () não permitirá se a ser especificado. 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 if. Vamos identificar duas possibilidades: Fraca interpretação: Eu 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 como conseqüência de alguma condição if, as observações 1-42 estão incluídas, mas não as observações 43 sobre. Mas a média móvel de 42 dependerá, entre outras coisas, do valor de 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. Nossa suposição é que a maioria das pessoas iria para a interpretação fraca, mas se isso está correto, egen, filter () não suporta se. Você sempre pode ignorar o que você donrsquot quer ou mesmo definir valores indesejados para desaparecer depois, usando substituir. Uma nota sobre os resultados faltando nas extremidades da série Como as médias móveis são funções de defasagens e derivações, egen, ma () produz faltando onde não existem os retornos e as derivações, 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, filter () faz, ou permite, nada de especial para evitar resultados em falta. Se algum dos valores necessários para o cálculo estiver faltando, então esse resultado está ausente. 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. Calculating Médias Móveis com valores ausentes set obs 10 obs foi 0, agora 10 tsset t variável de tempo: t, 1 a 10 delta: 1 unidade tssmooth ma y3 y, w (1 1 1) O mais suave aplicado foi (13) x (t-1) 1x (t) x (t1) x (t ) X t (x) x (x) x (x) x (x) x (x) x (t) Tssmooth mapeia o melhor que pode nas extremidades da série (o que não é o mesmo que tratar falhas como 0s, caso contrário os resultados acima não seriam obtidos). Jeff pode substituir os resultados de - ssmooth - se ele não quer isso. Substitua y3. Se ausente (L1.y, F1.y) substituir y5. Se ausente (L1.y, L2.y, F1.y, F2.y) Por exemplo, L1.y está ausente no início de uma série y e F1.y no final. Isso também funciona com dados de painel. Uma alternativa escrita por usuário para - tssmooth - é a função - egen - filter () - de - egenmore-. Em alternativa, especifique qualquer forma de lidar com os fins que preferir. Quando uso a função tssmooth para criar médias móveis de 2 ou 5 anos, a Stata calcula estas médias móveis até ao final da série temporal em vez de parar 1 ano (no caso da média móvel de 2 anos) ou 4 anos Caso da média móvel de 5 anos) antes do final da série temporal. Você saberia uma estratégia possível para corrigir este problema? Estou tentando criar médias móveis, olhando para lag - lag 1 e lag2 valores de recompensas redenção. Aqui está a fórmula atual (lag - lag2) (lag2 - lag3). No entanto, o valor atual não é armazenado sequencialmente nas linhas na atualização. Significado, quando eu encontrar row4 valor atual está faltando, estou usando esta fórmula para vir acima com recompensas row4. Agora, row4 - gt current 100 Ao mover para row5 - novas recompensas calculadas em row4 isnt disponíveis. Lag1 - gt row4gt current 0 (eu acho que os valores de atraso não são dinâmicos) DATA vtest SET v10 pelo grupo vid id lagred1 lag (newredemption1) lag2red1 lag2 (newredemption) lag3red1 lag3 (newredemption) expectedincreasepts (lagred1 (lagred1 lag2red1)) - lag2red1 previosredeemgrowth Isso realmente ajudaria a entender o que você está tentando se você fornecer alguns dados sob a forma de um datastep para entrada e o que você espera para a saída para esse exemplo de dados. Voltar para o início Eu me pergunto, uma vez que você diz que a corrente está às vezes faltando que você deseja que a soma atual (corrente. (Expectedincreasepts previosredeemgrowth)) Algo a considerar: você precisa resolver todos os valores em falta potencial antes de fazer divisão com os valores defasados. Lag3 não existirá até chegar à quarta observação. Então você vai ter divisão por falta que você pode querer considerar. E se sua variável newredemption é evermissing youre vai obter intermitente outros cálculos com valores faltantes. Valores Lag são somente para variáveis ​​lidas através de uma instrução SET ou MERGE. Se você quiser manter uma variável calculada, use RETAIN. Quando para redefinir para valores iniciais ou ausente para variáveis ​​retidos é por vezes interessante. Você pode querer algo como: Retenção TempCurrent 0 este conjunto de um valor intial de 0 se ausente (atual), em seguida, currentsum (TempCurrent, (expectedincreasepts previosredeemgrowth)) else current sum (atual (expectedincreasepts previosredeemgrowth)) e redefinir o valor retido

No comments:

Post a Comment