Veröffentlicht am :
Statistisch CREATION_INTERNE

Goodness-of-Fit (GOF) Test für DataSet III

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Erstellung eines Datensatzes `haseman_soares` aus Online-Daten (`datalines`). Es transformiert diesen Datensatz dann, um eine Beobachtung pro Häufigkeit zu erhalten. Zwei Makros, `%GOF_BB` und `%GOF_RCB`, werden aufgerufen, um die Goodness-of-Fit-Tests durchzuführen. Die von diesen Makros generierten Residuen werden dann kombiniert, sortiert und klassifiziert, um die Erstellung von Q-Q-Plots vorzubereiten. Schließlich wird `PROC SGPANEL` verwendet, um diese Residuen in Form von Q-Q-Plots zu visualisieren, was die Bewertung der Residuenverteilung ermöglicht.
Datenanalyse

Type : CREATION_INTERNE


Der ursprüngliche Datensatz `haseman_soares` wird direkt im Skript über eine `datalines`-Anweisung erstellt und dann transformiert, um die Beobachtungen basierend auf der Spalte `freq` zu erweitern.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt den Datensatz `haseman_soares` unter Verwendung von Rohdaten, die von `datalines` bereitgestellt werden. Er liest die Variablen `m` und `t1` bis `t10`. Eine `DO OVER`-Schleife über das Array `tt` (bestehend aus `t1` bis `t10`) wird verwendet, um die Daten zu transformieren, indem Zeilen für jede nicht-null `freq` erstellt werden, wobei `t` der Spaltenindex und `freq` der entsprechende Wert ist.
Kopiert!
1DATA haseman_soares;
2 INPUT m t1-t10;
3 array tt t1-t10;
4 DO over tt;
5 t = _i_ - 1;
6 freq = tt;
7 OUTPUT;
8 END;
9 keep m t freq;
10 DATALINES;
11 1 7 . . . . . . . . .
12 2 7 . . . . . . . . .
13 3 6 . . . . . . . . .
14 4 5 2 1 . . . . . . .
15 5 8 2 1 . 1 1 . . . .
16 6 8 . . . . . . . . .
17 7 4 4 2 1 . . . . . .
18 8 7 7 1 . . . . . . .
19 9 8 9 7 1 1 . . . . .
20 10 22 17 2 . 1 . 1 1 .
21 11 30 18 9 1 2 . 1 . 1 .
22 12 54 27 12 2 1 . 2 . . .
23 13 46 30 8 4 1 1 . 1 . .
24 14 43 21 13 3 1 . . 1 . 1
25 15 22 22 5 2 1 . . . . .
26 16 6 6 3 . 1 1 . . . .
27 18 3 . 2 1 . . . . . .
28 ;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block verarbeitet den Datensatz `haseman_soares` nach. Er löscht Beobachtungen, bei denen `freq` fehlt. Für jede verbleibende Beobachtung generiert er eine Anzahl von Zeilen, die dem Wert von `freq` entspricht, wodurch die Daten entnormalisiert werden, sodass jede Zeile ein einzelnes Ereignis darstellt. Die Variablen `i` und `freq` werden dann gelöscht.
Kopiert!
1DATA haseman_soares;
2 SET haseman_soares;
3 IF freq = . THEN delete;
4 DO i=1 to freq;
5 OUTPUT;
6 END;
7 drop i freq;
8 RUN;
3 Codeblock
ODS
Erklärung :
Diese ODS (Output Delivery System)-Anweisungen aktivieren die HTML-Ausgabe und die Grafikgenerierung für die folgenden Prozeduren. Die Ausgabe wird im HTML-Format gespeichert.
Kopiert!
1ods html;
2 ods graphics on;
4 Codeblock
MACRO
Erklärung :
Dieser Block ruft zwei SAS-Makros auf, `%GOF_BB` und `%GOF_RCB`, die Goodness-of-Fit-Tests durchführen sollen. Sie verwenden den Datensatz `haseman_soares` als Eingabe und die Variablen `t` und `m` für ihre Berechnungen. Der Parameter `title2` wird verwendet, um den von den Makros generierten Ausgaben einen Untertitel hinzuzufügen.
Kopiert!
1%GOF_BB (inds=haseman_soares,t=t,m=m,title2=DataSet III -- Haseman and Soares (1976));
2%GOF_RCB(inds=haseman_soares,t=t,m=m,title2=Dataset III -- Haseman and Soares (1976));
3 
5 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP kombiniert die Datensätze `Resid_BB` und `Resid_RCB`, die die Residuen der Goodness-of-Fit-Tests enthalten, zu einem neuen, einzigen Datensatz namens `Resid_BB_RCB`. Dies bereitet die Daten für eine vereinheitlichte Analyse und Visualisierung vor.
Kopiert!
1*--- Construct QQ Plots;
2 DATA Resid_BB_RCB;
3 SET Resid_BB Resid_RCB;
4 RUN;
6 Codeblock
PROC SORT
Erklärung :
Die Prozedur `PROC SORT` sortiert den Datensatz `Resid_BB_RCB` nach der Variablen `Distribution`. Diese Sortierung ist für nachfolgende Analyseschritte, insbesondere für `PROC RANK` und `PROC SGPANEL`, die nach Gruppe sortierte Daten benötigen könnten, unerlässlich.
Kopiert!
1 
2PROC SORT
3DATA=Resid_BB_RCB;
4BY Distribution;
5 
6RUN;
7 
7 Codeblock
PROC RANK Data
Erklärung :
Die Prozedur `PROC RANK` wird verwendet, um die normalen Ränge (Normalquantile) der Residuen zu berechnen. Sie nimmt `Resid_BB_RCB` als Eingabe und erstellt einen neuen Datensatz `new_qqplots`. Die Option `normal=blom` verwendet die Blom-Formel für die Berechnung der Normal-Scores, und `ties=mean` behandelt Gleichstände, indem ihnen der mittlere Rang zugewiesen wird. Die Variable `Resid` wird gruppiert nach `Distribution` klassifiziert und das Ergebnis in der neuen Variable `NQuant` gespeichert.
Kopiert!
1PROC RANK DATA=Resid_BB_RCB out=new_qqplots normal=blom ties=mean;
2 BY Distribution;
3 var Resid;
4 ranks NQuant;
5 RUN;
8 Codeblock
PROC SGPANEL
Erklärung :
Dieser Block verwendet `PROC SGPANEL`, um Q-Q-Diagramme (Quantil-Quantil) der Residuen zu generieren. Das Diagramm wird nach `Distribution` aufgeteilt, was bedeutet, dass für jeden Wert von `Distribution` ein separates Q-Q-Diagramm erstellt wird. Titel werden festgelegt, Achsenbeschriftungen werden angepasst und eine Regressionslinie (`reg`) wird dem Diagramm hinzugefügt, um den Vergleich der Residuen mit einer theoretischen Normalverteilung zu erleichtern.
Kopiert!
1PROC SGPANEL DATA=new_qqplots noautolegend;
2 panelby Distribution;
3 title1 "DataSet III -- Haseman and Soares (1976)";
4 title2 "QQ-Plots of Residuals based on Observed and Expected Frequencies";
5 label Resid="Residuals" NQuant="Normal Quantiles";
6 reg x=Resid y=NQuant;
7 RUN;
9 Codeblock
ODS
Erklärung :
Diese Anweisungen deaktivieren die ODS-Grafikgenerierung und schließen die HTML-Ausgabe, wodurch die Ausgabe der Ergebnisse in der HTML-Datei beendet wird.
Kopiert!
1ods graphics off;
2 ods html close;
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 : Quelle: Haseman und Soares (1976)