Melhor resposta
Olá,
Deixe-me tentar responder a esta pergunta para meu entendimento . A etapa DATA fornece duas funções, LAG e DIF, para acessar os valores anteriores de uma variável ou expressão. Essas funções são úteis para calcular atrasos e diferenças de série.
Quando usados de maneira simples, LAG e DIF atuam como funções de atraso e diferença. No entanto, é importante ter em mente que, apesar de seus nomes, as funções LAG e DIF disponíveis na etapa DATA não são verdadeiras funções de atraso e diferença.
Em vez disso, LAG e DIF são funções de enfileiramento que lembram e retornar valores de argumento de chamadas anteriores. A função LAG lembra o valor que você passou para ela e retorna como resultado o valor que você passou para ela na chamada anterior. A função DIF funciona da mesma maneira, mas retorna a diferença entre o argumento atual e o valor lembrado. (LAG e DIF retornam um valor ausente na primeira vez que a função é chamada.)
Uma função verdadeira de lag não retorna o valor do argumento da “chamada anterior”, como fazem a etapa DATA LAG e Funções DIF. Em vez disso, uma função true lag retorna o valor de seu argumento para a “observação anterior”, independentemente da sequência de chamadas anteriores à função. Assim, para que uma função de defasagem verdadeira seja possível, deve estar claro qual é a “observação anterior”.
Se os dados são classificados cronologicamente, então LAG e DIF atuam como funções de defasagem e diferença verdadeiras. Em caso de dúvida, use PROC SORT para classificar seus dados antes de usar as funções LAG e DIF. Cuidado com as observações ausentes, o que pode fazer com que LAG e DIF retornem valores que não são os valores reais de atraso e diferença
A etapa DATA é uma ferramenta poderosa que pode ler qualquer número de observações de qualquer número de arquivos de entrada ou conjuntos de dados, pode criar qualquer número de conjuntos de dados de saída e pode gravar qualquer número de observações de saída em qualquer um dos conjuntos de dados de saída, tudo no mesmo programa. Portanto, em geral, não está claro o que “observação anterior” significa em um programa da etapa DATA. Em um programa da etapa DATA, a “observação anterior” existe apenas se você escrever o programa de uma forma simples que torne este conceito significativo.
Visto que, em geral, a observação anterior não está claramente definida, é não é possível fazer verdadeiras funções de lag ou diferença para a etapa DATA. Em vez disso, a etapa DATA fornece funções de enfileiramento que facilitam o cálculo de atrasos e diferenças.
Espero que esta resposta ajude