Monte-Carlo-Permutationstest mit PROC IML

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Das Skript beginnt mit der Erstellung eines internen Datensatzes. Es führt einen ersten T-Test durch, um den tatsächlichen Unterschied zu beobachten. Anschließend verwendet es PROC IML, um 1000 zufällige Permutationen der Zielvariablen 'Money' zu generieren. Diese Permutationen werden von PROC TTEST analysiert, um eine empirische Verteilung der Mittelwertunterschiede unter der Nullhypothese zu erzeugen. Schließlich berechnen PROC UNIVARIATE und ein DATA-Schritt den empirischen p-Wert, indem sie die beobachtete Statistik mit der simulierten Verteilung vergleichen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Skript über die DATALINES-Anweisung im Datensatz 'cash' definiert.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des ursprünglichen Datensatzes 'cash', der die Variablen 'School' und 'Money' mit integrierten Daten enthält.
Kopiert!
1DATA cash;
2 INPUT School Money;
3 
4DATALINES;
50 34
60 1200
7...
81 3
91 0
10;
2 Codeblock
PROC TTEST
Erklärung :
Ausführung des anfänglichen Student-T-Tests, um den beobachteten Mittelwertunterschied in den realen Daten zu erhalten.
Kopiert!
1PROC TTEST DATA=cash;
2 class School;
3 var Money;
4RUN;
3 Codeblock
PROC IML Data
Erklärung :
Verwendung der Matrixsprache IML zum Einlesen der Daten, Generierung von 1000 zufälligen Permutationen der Spalte 'Money' (Variable x[,2]), während 'School' fest bleibt, und Speicherung des Ergebnisses in 'newds'.
Kopiert!
1ods OUTPUT off;
2ods exclude all;
3 
4PROC IML ;
5 use cash;
6 read all var{School Money} into x;
7 p=t(ranperm(x[, 2], 1000));
8 paf=x[, 1]||p;
9 create newds from paf;
10 append from paf;
11 QUIT;
4 Codeblock
PROC TTEST
Erklärung :
Berechnung der T-Tests für die 1000 permutierten Spalten (col2 bis col1001) in Bezug auf die Gruppenvariable (col1). Die Ergebnisse (Konfidenzgrenzen einschließlich des Mittelwerts) werden in die Tabelle 'diff' exportiert.
Kopiert!
1ods OUTPUT conflimits=diff;
2 
3PROC TTEST DATA=newds plots=none;
4 class col1;
5 var col2 - col1001;
6RUN;
7 
8ods OUTPUT on;
9ods exclude none;
5 Codeblock
PROC UNIVARIATE
Erklärung :
Analyse der Verteilung der simulierten Mittelwertunterschiede (gespeichert in der Variable 'mean' der Tabelle 'diff').
Kopiert!
1PROC UNIVARIATE DATA=diff;
2 where method="Pooled";
3 var mean;
4 histogram mean;
5RUN;
6 Codeblock
DATA STEP Data
Erklärung :
Filterung der simulierten Ergebnisse, um nur diejenigen zu behalten, deren absoluter Unterschied größer oder gleich dem beobachteten Wert (114.6) ist, um den p-Wert zu berechnen.
Kopiert!
1DATA numdiffs;
2 SET diff;
3 where method="Pooled";
4 
5 IF abs(mean) >=114.6;
6RUN;
7 Codeblock
PROC PRINT
Erklärung :
Anzeige der Permutationen, die das Extremismus-Kriterium erfüllen, zur visuellen Überprüfung.
Kopiert!
1 
2PROC PRINT
3DATA=numdiffs;
4where method="Pooled";
5RUN;
6 
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.

Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.