Moving average window stata no Brasil


Eu tenho uma lista de pessoas, tempos de registro e pontuação Em Stata eu quero calcular uma média móvel de pontuação com base em uma janela de tempo em torno de cada observação não uma janela com base no atraso número principal de observações. Por exemplo, supondo - 2 dias em Cada lado e não incluindo a observação atual, estou tentando calcular algo como this. I ve tentou definir o conjunto de dados com tsset e, em seguida, usar tssmooth mas couldn t get it para trabalhar uma vez que pode haver várias observações para um determinado período de tempo I M não tenho certeza se é mesmo a abordagem certa Também, na realidade a variável dia é um tc timestamp. asked Dezembro 6 13 at 16 04.tsset não pode ajudar aqui, mesmo se você fez seus tempos regularmente espaçados, como você tem alguns valores repetidos para Mas o problema deve render a um loop sobre possibilidades Primeiro, vamos tomar seu exemplo literalmente usando dias inteiros. Aqui assumimos que não há valores faltantes O princípio a ser levado adiante é. média De outros soma de todos - este valor número de valores - 1.Na prática, você não quer loop sobre todos os possíveis data-vezes em milissegundos Então, tente um loop sobre as observações desta forma Nota pseudocódigo elements. This papel também é relevante Se as faltas forem possíveis, uma linha precisa ser mais complicada. Isso significa que se o valor atual estiver ausente, subtrair 0 da soma e 0 da contagem de observações. EDIT Por 2 dias em milissegundos, aproveite a função incorporada e use Cofd estrutura de dados 2.This é completamente imprópria para a finalidade Assumindo um identificador id você precisa remodelar e g. Then uma média móvel é fácil Use tssmooth ou apenas gerar e g. Mais sobre por que sua estrutura de dados é totalmente impróprios Não só seria cálculo de Uma média móvel precisa de um loop não necessariamente envolvendo egen, mas você estaria criando várias novas variáveis ​​extras Usando aqueles em qualquer análise subseqüente seria em algum lugar entre estranho e impossível. EDIT Eu vou dar um loop de amostra, enquanto não se movendo da minha posição que ele Eu S pobre técnica Eu não vejo uma razão por trás de sua convenção de nomenclatura em que P1947 é um meio para 1943-1945 Suponho que é apenas um erro tipográfico Vamos supor que temos dados para 1913-2017 Por meios de 3 anos, perdemos um ano Em cada extremidade. Isso poderia ser escrito de forma mais concisa, à custa de uma enxurrada de macros dentro de macros Usando pesos desiguais é fácil, como acima A única razão para usar egen é que ele não desiste se houver falhas, o que acima Será feito. Por uma questão de completude, note que é fácil lidar com falhas sem recorrer a egen. and o denominador. Se todos os valores estão faltando, isso reduz a 0 0, ou faltando Caso contrário, se algum valor está faltando, nós adicionamos 0 para o numerador e 0 para o denominador, o que é o mesmo que ignorá-lo Naturalmente, o código é tolerável como acima para médias de 3 anos, mas para esse caso ou para a média durante mais anos, nós substituir as linhas acima por um Loop, que é o que egen faz. Quando a computação uma corrida média móvel, colocando t A média no período de tempo médio faz sentido. No exemplo anterior, calculamos a média dos três primeiros períodos de tempo e colocamos próximo ao período 3 Poderíamos ter colocado a média no meio do intervalo de tempo de três períodos, isto é , Próximo ao período 2 Isso funciona bem com períodos de tempo ímpar, mas não tão bom para mesmo períodos de tempo Então, onde seria a primeira média móvel quando M 4.Technically, a média móvel iria cair em t 2 5, 3 5.To Evite este problema, suavizamos as MAs usando M 2 Assim, suavizamos os valores suavizados. Se tivermos um número médio de termos, precisamos suavizar os valores suavizados. A tabela a seguir mostra os resultados usando M4.

Comments

Popular Posts