Le script commence par créer un jeu de données 'comp2010' à partir de données en ligne (datalines/cards), en calculant des variables supplémentaires. Ensuite, il définit une macro `%hw6problem1` qui encapsule la procédure `PROC GLM` pour ajuster un modèle de régression linéaire. Une seconde macro, `%hw6problem2`, utilise la première pour ajuster deux modèles (un complet et un réduit), combine leurs statistiques de sortie, et calcule manuellement un test F pour comparer les deux modèles. Enfin, le script exécute cette comparaison de modèles à deux reprises avec des configurations différentes et génère un rapport PDF.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données 'comp2010' est créé directement dans le code à l'aide d'une étape DATA avec une instruction 'cards' pour l'entrée des données.
1 Bloc de code
ODS
Explication : Ouvre une destination ODS pour générer un fichier de sortie au format PDF.
Copié !
ods pdf file="HW6NickLipanovich.pdf";
1
ods pdf file="HW6NickLipanovich.pdf";
2 Bloc de code
DATA STEP Data
Explication : Crée la table 'comp2010'. Lit les trois variables 'winper', 'score', et 'save' à partir des données en ligne (cards) et calcule trois variables supplémentaires : 'save2', 'scoresave', et 'differential'.
Explication : Affiche le contenu de la table 'comp2010' dans la sortie de résultats.
Copié !
proc print data=comp2010;
run;
quit;
1
PROC PRINTDATA=comp2010;
2
RUN;
3
QUIT;
4 Bloc de code
MACRO
Explication : Définit une macro `%hw6problem1` qui exécute la procédure GLM (General Linear Model). La macro ajuste un modèle ('model') pour une variable dépendante ('outcome') en fonction de prédicteurs ('modelx'). Elle peut optionnellement inclure une variable de classification ('classx'). Les statistiques du modèle sont sauvegardées dans une table de sortie ('myoutstat').
Explication : Définit une macro `%hw6problem2` pour comparer deux modèles (un complet et un réduit). Elle appelle deux fois la macro `%hw6problem1` pour ajuster chaque modèle. Ensuite, via des étapes DATA, elle combine les résultats, calcule la statistique du test F et la p-valeur associée pour évaluer si le modèle complet est significativement meilleur que le modèle réduit. Le résultat du test F est ensuite affiché.
Copié !
%macro hw6problem2 (outcome,classx1,classx2,modelx1,modelx2,myoutstat1,myoutstat2,indata);
%hw6problem1 (&outcome,&classx1,&modelx1,&myoutstat1,&indata);
%hw6problem1 (&outcome,&classx2,&modelx2,&myoutstat2,&indata);
data fullvsreduced;
set &myoutstat1 &myoutstat2;
if _type_="ERROR";
run;
proc sort data=fullvsreduced;
by df;
run;
data fullvsreduced2;
set fullvsreduced;
fullss=lag(ss);
fulldf=lag(df);
num = (ss-fullss)/(df-fulldf);
den = fullss/fulldf;
f = num/den;
pvalue=1-cdf('f', f, df-fulldf, fulldf);
keep f pvalue;
if _n_=1 then delete;
run;
proc print data=fullvsreduced2;
run;
%mend;
Explication : Appelle la macro de comparaison de modèles `%hw6problem2` à deux reprises. Le premier appel compare un modèle avec 'score' et 'save' comme prédicteurs à un modèle plus simple avec 'differential'. Le second appel inverse l'ordre de la comparaison. Les résultats sont écrits dans les tables 'ssout' et 'dout'.
Explication : Ferme la destination ODS PDF, finalisant ainsi la création du fichier.
Copié !
ods pdf close;
1
ods pdf close;
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.