Le script commence par créer un jeu de données interne. Il effectue un premier test T pour observer la différence réelle. Ensuite, il utilise PROC IML pour générer 1000 permutations aléatoires de la variable cible 'Money'. Ces permutations sont analysées par PROC TTEST pour générer une distribution empirique des différences de moyennes sous l'hypothèse nulle. Enfin, PROC UNIVARIATE et un DATA step calculent la p-value empirique en comparant la statistique observée à la distribution simulée.
Analyse des données
Type : CREATION_INTERNE
Les données sont définies directement dans le script via l'instruction datalines dans le dataset 'cash'.
1 Bloc de code
DATA STEP Data
Explication : Création du jeu de données initial 'cash' contenant les variables 'School' et 'Money' avec des données intégrées.
Copié !
data cash;
input School Money;
datalines;
0 34
0 1200
...
1 3
1 0
;
1
DATA cash;
2
INPUT School Money;
3
4
DATALINES;
5
0 34
6
0 1200
7
...
8
13
9
1 0
10
;
2 Bloc de code
PROC TTEST
Explication : Exécution du test T de Student initial pour obtenir la différence de moyennes observée sur les données réelles.
Copié !
proc ttest data=cash;
class School;
var Money;
run;
1
PROC TTESTDATA=cash;
2
class School;
3
var Money;
4
RUN;
3 Bloc de code
PROC IML Data
Explication : Utilisation du langage matriciel IML pour lire les données, générer 1000 permutations aléatoires de la colonne 'Money' (variable x[,2]) tout en gardant 'School' fixe, et sauvegarder le résultat dans 'newds'.
Copié !
ods output off;
ods exclude all;
proc iml ;
use cash;
read all var{School Money} into x;
p=t(ranperm(x[, 2], 1000));
paf=x[, 1]||p;
create newds from paf;
append from paf;
quit;
1
ods OUTPUT off;
2
ods exclude all;
3
4
PROC 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 Bloc de code
PROC TTEST
Explication : Calcul des tests T pour les 1000 colonnes permutées (col2 à col1001) par rapport à la variable de groupe (col1). Les résultats (limites de confiance incluant la moyenne) sont exportés dans la table 'diff'.
Copié !
ods output conflimits=diff;
proc ttest data=newds plots=none;
class col1;
var col2 - col1001;
run;
ods output on;
ods exclude none;
1
ods OUTPUT conflimits=diff;
2
3
PROC TTESTDATA=newds plots=none;
4
class col1;
5
var col2 - col1001;
6
RUN;
7
8
ods OUTPUT on;
9
ods exclude none;
5 Bloc de code
PROC UNIVARIATE
Explication : Analyse de la distribution des différences de moyennes simulées (stockées dans la variable 'mean' de la table 'diff').
Copié !
proc univariate data=diff;
where method="Pooled";
var mean;
histogram mean;
run;
1
PROC UNIVARIATEDATA=diff;
2
where method="Pooled";
3
var mean;
4
histogram mean;
5
RUN;
6 Bloc de code
DATA STEP Data
Explication : Filtrage des résultats simulés pour ne garder que ceux dont la différence absolue est supérieure ou égale à la valeur observée (114.6), afin de calculer la p-value.
Copié !
data numdiffs;
set diff;
where method="Pooled";
if abs(mean) >=114.6;
run;
1
DATA numdiffs;
2
SET diff;
3
where method="Pooled";
4
5
IF abs(mean) >=114.6;
6
RUN;
7 Bloc de code
PROC PRINT
Explication : Affichage des permutations qui satisfont le critère d'extrémisme pour vérification visuelle.
Copié !
proc print data=numdiffs;
where method="Pooled";
run;
1
2
PROC PRINT
3
DATA=numdiffs;
4
where method="Pooled";
5
RUN;
6
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.