Migliore risposta
Salve,
Fammi provare a rispondere a questa domanda per quanto mi è chiaro . Il passaggio DATA fornisce due funzioni, LAG e DIF, per accedere ai valori precedenti di una variabile o di unespressione. Queste funzioni sono utili per calcolare ritardi e differenze di serie.
Quando utilizzati in modo semplice, LAG e DIF agiscono come funzioni di ritardo e differenza. Tuttavia, è importante tenere presente che, nonostante i loro nomi, le funzioni LAG e DIF disponibili nel passaggio DATA non sono vere funzioni di ritardo e differenza.
Piuttosto, LAG e DIF sono funzioni di accodamento che ricordano e restituisce i valori degli argomenti dalle chiamate precedenti. La funzione LAG ricorda il valore che le passi e restituisce come risultato il valore che le hai passato nella chiamata precedente. La funzione DIF funziona allo stesso modo ma restituisce la differenza tra largomento corrente e il valore memorizzato. (LAG e DIF restituiscono un valore mancante la prima volta che la funzione viene chiamata.)
Una funzione true lag non restituisce il valore dellargomento per la “chiamata precedente”, come fanno il passo DATA LAG e Funzioni DIF. Invece, una vera funzione lag restituisce il valore del suo argomento per l “osservazione precedente”, indipendentemente dalla sequenza di chiamate precedenti alla funzione. Pertanto, affinché una vera funzione di ritardo sia possibile, deve essere chiaro quale sia l “osservazione precedente”.
Se i dati sono ordinati cronologicamente, LAG e DIF agiscono come vere funzioni di ritardo e differenza. In caso di dubbio, utilizzare PROC SORT per ordinare i dati prima di utilizzare le funzioni LAG e DIF. Fai attenzione alle osservazioni mancanti, che possono far sì che LAG e DIF restituiscano valori che non sono i valori effettivi di ritardo e differenza
Il passaggio DATA è uno strumento potente in grado di leggere un numero qualsiasi di osservazioni da qualsiasi numero di file di input o set di dati, può creare un numero qualsiasi di set di dati di output e può scrivere un numero qualsiasi di osservazioni di output su qualsiasi set di dati di output, tutto nello stesso programma. Quindi, in generale, non è chiaro cosa significhi “osservazione precedente” in un programma passo DATA. In un programma passo DATA, l “osservazione precedente” esiste solo se scrivi il programma in un modo semplice che renda significativo questo concetto.
Poiché, in generale, losservazione precedente non è chiaramente definita, è non è possibile eseguire il vero ritardo o le funzioni di differenza per il passo DATA. Invece, il passaggio DATA fornisce funzioni di accodamento che semplificano il calcolo di ritardi e differenze.
Spero che questa risposta aiuti