Veröffentlicht am :
Statistik EXTERNE

Makro Mean_Abs_Deviation

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Makro berechnet die mittlere absolute Abweichung, definiert als der Mittelwert der Absolutwerte der Abweichungen vom Mittelwert. Das Skript verwendet Standardprozeduren (MEANS, TRANSPOSE) und DATA-Schritte zur Manipulation der Datenstrukturen. Es hängt von externen Dienstmakros (%ranname und %get_number_column_names) für die Verwaltung von Variablennamen und temporären Dateien ab.
Datenanalyse

Type : EXTERNE


Die Daten werden über den Makroparameter &returns bereitgestellt. Das Skript erwartet numerische Daten, die Renditen darstellen.

1 Codeblock
MACRO DEFINITION
Erklärung :
Definition des Makros und Initialisierung lokaler Variablen sowie temporärer Tabellennamen über ein externes Makro %ranname. Identifizierung numerischer Spalten über %get_number_column_names.
Kopiert!
1%macro Mean_Abs_Deviation(returns, dateColumn= DATE, outData= mean_abs_dev);
2...
3%let vars= %get_number_column_names(_table= &returns, _exclude= &dateColumn);
4...
2 Codeblock
PROC MEANS Data
Erklärung :
Berechnung des Mittelwerts der Renditen für jede numerische Variable im Eingabedatensatz.
Kopiert!
1 
2PROC MEANS
3DATA= &returns mean noprint;
4OUTPUT out= &meanData;
5RUN;
6 
3 Codeblock
DATA STEP Data
Erklärung :
Bereinigung der Statistiktabelle, um nur die Mittelwerte zu behalten, Löschen unnötiger Statistiken (STD, MIN, MAX).
Kopiert!
1DATA &meanData;
2 SET &meanData;
3 drop _freq_ _type_ &dateColumn;
4 IF _stat_ = 'N' THEN delete;
5...
4 Codeblock
PROC TRANSPOSE Data
Erklärung :
Transposition der Mittelwerttabellen und Rohdaten (Preise/Renditen), um vektorielle Berechnungen später zu erleichtern.
Kopiert!
1PROC TRANSPOSE DATA= &meanData out= &meanData;
2RUN;
3...
4PROC TRANSPOSE DATA= &returns(drop=&dateColumn) out= &price_t;
5RUN;
5 Codeblock
DATA STEP Data
Erklärung :
Zusammenführung der Rohdaten mit ihren jeweiligen Mittelwerten. Verwendung eines Arrays (ARRAY) zur Berechnung des Absolutwerts der Differenz zwischen jeder Beobachtung und dem Mittelwert (Abs(Wert - Mittelwert)).
Kopiert!
1DATA &merged;
2 MERGE &price_t &meanData;
3RUN;
4...
5DATA &merged(drop= &i mean);
6 SET &merged;
7 array z[*] &z;
8 DO &i= 1 to dim(z);
9 z[&i]= sum(z[&i], -(Mean));
10 z[&i]= abs(z[&i]);
11 END;
12RUN;
6 Codeblock
PROC MEANS Data
Erklärung :
Endgültige Berechnung des Mittelwerts der absoluten Abweichungen (MAD) auf den transformierten Daten.
Kopiert!
1 
2PROC MEANS
3DATA= &merged mean noprint;
4OUTPUT out= &outData;
5RUN;
6 
7 Codeblock
PROC DATASETS
Erklärung :
Bereinigung der temporären Tabellen, die während der Makroausführung generiert wurden.
Kopiert!
1PROC DATASETS lib= work nolist;
2delete &meandata &merged &price_t;
3RUN;
4QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.