PROC FREQ en SAS, comme son nom l’indique, nous donne les comptages de fréquence, ainsi que d’autres statistiques qui aident à analyser les données. Mais la procédure Proc Freq peut faire plus que de donner le compte.
Contenu de la page
Qu’est-ce que PROC FREQ ?
PROC FREQ est une procédure d’analyse du dénombrement des données. Elle est utilisée pour obtenir des comptages de fréquence pour une ou plusieurs variables individuelles ou pour créer des tableaux à deux voies (tableaux croisés) à partir de deux variables.
PROC FREQ est également utilisé pour effectuer des tests statistiques sur les données de comptage.
PROC MEANS est une autre procédure SAS, que vous pouvez utiliser pour calculer des statistiques descriptives comme trouver la moyenne, l’écart type, les valeurs minimales et maximales, et beaucoup d’autres calculs statistiques.
Proc freq peut être la première procédure à laquelle vous pensez lorsque le résultat nécessaire est un comptage. Pour les besoins de ce tutoriel, j’ai pris l’exemple du jeu de données SASHELP.HEARTS. Ici, Il peut être utilisé pour trouver le nombre de sujets avec bp_status=’Normal’, compter le nombre de sujets MALE et FEMALE dans l’ensemble de données.
Mais que faire si le résultat nécessaire n’est pas nécessairement un comptage ? Proc freq peut être un outil utile à d’autres fins que le comptage. Voici quelques-uns des types courants de questions qui peuvent se poser et qui entrent dans cette catégorie :
- Quel est le pourcentage d’Hommes et de Femmes qui ont une maladie cardiaque ?
- Quel est le décompte des sujets qui sont décédés à cause d’un taux de cholestérol élevé ?
- Quelle est la cause de décès des sujets ?
- Qui sont les sujets impactés ?
- Y a-t-il des sujets qui ont des enregistrements non uniques ?
Proc freq n’est peut-être pas la première méthode à laquelle on pense pour répondre à des questions comme celles-ci, mais elle peut être une option très rapide et efficace à utiliser.
Pourquoi proc freq pourrait-elle être un bon candidat pour ces réponses rapides ? Tout d’abord, dans ces cas, il y a moins de saisie que d’autres méthodes. Cela peut permettre de gagner du temps ainsi que de réduire les fautes de frappe.
En outre, il peut déjà y avoir des freqs en cours pour vérifier un problème lorsque d’autres questions se posent. Ainsi, obtenir les résultats des comptages de fréquences existants plutôt que le traitement des données peut être une prochaine étape logique.
Enfin, en utilisant les ensembles de données de sortie fournis par proc freq, il existe des listes facilement disponibles de valeurs uniques, de combinaisons et de comptages.
Syntaxe de PROC FREQ
PROC FREQ <options>; BY variables ; EXACT / <statistic-options> ; OUTPUT <OUT=sas dataset options> ; TABLES requests </options> ; TEST </options> ; WEIGHT variable </options> ;
Enoncés de PROC FREQ
- BY Fournit des analyses séparées pour chaque groupe BY
- EXACT Demande des tests exacts.
- OUTPUT Demande un ensemble de données de sortie.
- TABLES Spécifie les tables et demande des analyses.
- TEST Demande des tests pour les mesures d’association et d’accord.
- Weigh Identifie une variable de poids.
Options de PROC FREQ
PROC FREQ a plusieurs demandes de sortie possibles. La plus courante est l’option OUT= qui est utilisée pour créer un jeu de données SAS d’une tabulation particulière.
Les options de l’instruction table sont suivies d’une barre oblique. Le « / » résout l’ambiguïté quant à savoir si le mot que vous utilisez est un nom de variable ou un mot-clé SAS et donc le « / » indique à SAS les arguments pour la fin de la table et tout ce qui se trouve après les options doit modifier le comportement par défaut de l’énoncé.
Un autre exemple est l’option NOCOL lorsqu’elle est utilisée, demande à SAS de ne pas montrer les pourcentages des colonnes.
Exemple de PROC FREQ
Vous trouverez ci-dessous une utilisation de base de PROC FREQ dans SAS, pour obtenir des comptages du nombre d’étudiants observés dans chaque catégorie de sexe.
proc freq data=sashelp.class;table sex;run;
TABLES âge*poids / CHISQ ;
L’énoncé ci-dessus demande que le chi-deux et les statistiques associées soient rapportés pour le tableau croisé A*B.
Scénario 1. Quel est le nombre d’hommes et de femmes avec bp_status de High et Weight Status de Overweight?
Pour ce type de scénarios, on pourrait utiliser des Sorts et des data steps ou proc SQL est une autre option. Une étape de données pourrait être la première pensée pour une solution. Cela implique d’abord de trier les besoins en données en utilisant proc sort. Ensuite, les enregistrements présentant un intérêt et un sexe unique doivent être sélectionnés (étape de données). Puis la sortie de l’enregistrement (proc print).
Mais proc freq peut répondre à cette question en un bloc de code sans étape de données ! Un proc freq peut être utilisé avec une instruction WHERE pour faire un sous-ensemble au bp et au statut pondéral.
proc freq data=sashelp.heart;where bp_status='High' and weight_status='Overweight';tables sex /nocum;run;
Une instruction TABLES de sexe peut ensuite être utilisée pour obtenir une liste unique du sexe inclus dans ce sous-ensemble. L’option NOCUM est utilisée pour exclure la fréquence cumulée du résultat.
Scénario 2 : Quels produits ont été affectés par la valeur de prédiction ?
Pour ce scénario, j’ai utilisé le jeu de données SASHELP.PRDSALE. Imaginons qu’il a été constaté qu’il existe certains produits dont le prix de vente réel est supérieur au prix prédit.
La première question est vraisemblablement : Quels sont ces produits dont le prix réel est supérieur au prix prédit ?
Mais c’est le type de question où les résultats peuvent conduire à de nombreuses questions de suivi et où le champ de l’enquête et de l’analyse peut s’étendre nécessitant des étapes de codage supplémentaires pour aller à la racine du problème.
Quelle que soit la méthode suivie, l’enquête commencera par un ensemble de données contenant à la fois les données de laboratoire et la date de consentement éclairé à des fins de comparaison.
On peut répondre à cette question en travaillant dans une étape de données ou en utilisant la méthode proc freq.
Méthode d’étape de données:
Travaillant dans une étape de données, si l’ensemble de données n’est pas déjà trié, un proc sort viendrait d’abord et ensuite une étape de données pour sélectionner les valeurs uniques de produit d’intérêt.
proc sort data=sashelp.prdsale out=sale;by product;run;data unique_product(keep=product);set sale(where=(actual > predict));by product;if first.product;run;
Méthode proc freq:
Travaillant avec un proc freq, nous pourrions simplement faire un freq avec USUBJID dans l’instruction TABLES en plus d’utiliser l’instruction WHERE pour faire un sous-ensemble aux enregistrements avec issue :
proc freq data=sashelp.prdsale;where actual gt predict;tables product /list missing nocum;run;
Tables de fréquence à une voie
.Way Frequency Tables
Vous pouvez utiliser PROC FREQ pour produire des tableaux des fréquences/effectifs par catégorie et effectuer sur les effectifs.
Utiliser l’option ORDER=FREQ
proc freq data=data.flighttravelers order=freq;table day_of_booking;run;
.
- PROC FREQ dans l’exemple ci-dessus comprend l’option ORDER=FREQ.
- L’utilisation de l’option ORDER=FREQ vous aide à effectuer rapidement une analyse des catégories qui ont le plus et le moins de comptes.
- La colonne « Fréquence » donne le compte du nombre de fois que la variable day_of_booking prend la valeur de la colonne.
- La colonne « Pourcentage » donne le pourcentage du total.
- Les colonnes « Fréquence cumulée » et « Pourcentage » signalent une augmentation du compte et du pourcentage pour les valeurs de day_of_booking.
Vous utilisez ce type d’aperçus pour connaître la distribution des catégories dans votre ensemble de données.
Par exemple, dans ces données, 28 personnes ont réservé des vols le dimanche.
Utilisation de l’option ORDER=FORMATTED.
En utilisant l’option ORDER=FORMATTED, vous pouvez contrôler l’ordre dans lequel les catégories seront affichées dans le tableau.
Avant d’utiliser cette option, vous devez créer un format personnalisé pour définir l’ordre que vous souhaitez dans la sortie.
proc freq order=formatted data=data.flighttravelers;tables day_of_booking;title "Example of PROC FREQ with Formatted Values";format day_of_booking $dayfmt.;run;
Création d’un tableau de fréquence à une voie à partir de données résumées.Way Frequency table à partir d’une donnée résumée
Si les données sont déjà résumées, vous pouvez utiliser l’instruction WEIGHT pour indiquer les variables qui représentent le comptage.
proc freq;weight count;title 'Reading Summarized Count data';tables category;run;
LE POIDS COUNT indique à PROC FREQ que les données de la variable COUNT sont des comptages. Même s’il existe deux enregistrements pour CENTS, le programme est capable de combiner le POIDS en une seule catégorie de CENTS (252 CENTS).
Tester la qualité de l’ajustement à l’aide de PROC FREQ en SAS
PROC FREQ en SAS peut également être utilisé pour tester la qualité de l’ajustement pour un tableau à sens unique. Un test de qualité d’ajustement d’une population unique est un test qui sert à déterminer si la distribution des fréquences observées dans les données de l’échantillon représente le nombre attendu d’occurrences pour la population.
En supposant que le nombre d’observations est fixe.
Les hypothèses testées sont les suivantes :
- H:0 La population suit la distribution hypothétique.
- H : a La population ne suit pas la distribution hypothétique.
Le test du chi-deux est l’un des tests de qualité d’ajustement. Une décision peut être prise en fonction de la valeur p associée à cette statistique.
Une valeur p faible indique que les données ne suivent pas la distribution hypothétique, ou théorique.
Si la valeur p est suffisamment faible (généralement <0.05), vous rejetterez l’hypothèse nulle.
La syntaxe pour effectuer un test de qualité d’ajustement est la suivante :
PROC FREQ;
TABLES variable / CHISQ TESTP=(liste de ratios);
Exemple :
Une compagnie aérienne exploitait des vols quotidiens vers plusieurs villes indiennes. L’un des problèmes de cette compagnie aérienne est les préférences alimentaires des passagers. Le capitaine cuisinier responsable des opérations pense que 35 % de leurs passagers préfèrent la nourriture végétarienne, 40 % la nourriture végétarienne. 20 % la nourriture hypocalorique et 5 % demandent de la nourriture pour diabétiques.
Un échantillon de 500 passagers a été choisi au hasard pour analyser les préférences alimentaires et les données sont présentées ci-dessous.
Nous allons effectuer un test CHI-SQURE pour vérifier si la croyance de Captain Cook est vraie à alpha=0.05
Type d’aliment | Végétarien | Non végétarien | Peu de calories | Diabétique |
---|---|---|---|---|
Nombre de passagers | 190 | 185 | 90 | 35 |
Solution :
proc freq data=airlines order=data;weight no_of_passengers;title 'goodness of fit analysis';tables foodtype / nocum chisq testp=(0.35 0.40 0.20 0.05);run;
- Les données sont résumées comme par le POIDS Nombre_de_passagers.
- L’ORDER=DATA est utilisé pour ordonner les données comme dans l’ensemble de données d’entrée. Les fréquences sont basées sur la variable Food_Type.
- Les instructions /NOCUM CHISQ et TESTP= sont utilisées pour calculer le test d’adéquation.
- Les ratios de test sont basés sur le pourcentage de progéniture attendu de chacune des quatre catégories.
- L’option NOCUM demande un tableau sans la colonne cumulative.
Note : Vous devez utiliser l’option ORDER=DATA pour vous assurer que les ratios hypothétiques listés dans l’instruction TESTP= correspondent correctement aux catégories des données d’entrée.
La valeur p du test du chi-deux(p=7,4107) est supérieure à la valeur critique(a=0,05), nous concluons donc que la croyance du capitaine Cook sur les préférences alimentaires est vraie.
Test d’indépendance du chi carré – Analyse de tableaux à deux voies à l’aide de PROC FREQ en SAS
En utilisant PROC FREQ en SAS, nous pouvons effectuer le test d’indépendance du chi carré, nous testons si deux groupes ou plus sont statistiquement indépendants ou non.
L’instruction TABLES avec deux variables ou plus listées et séparées par un astérisque crée un tableau croisé pour mettre en relation deux variables.
Le tableau croisé est souvent appelé tableau de contingence.
Le décompte du nombre d’occurrences dans un échantillon à travers deux variables de regroupement crée un tableau croisé.
Dans l’exemple ci-dessous, nous voulons déterminer la relation entre le crim et la consommation d’alcool.
La variable indépendante est le CRIME et la variable dépendante est le DRINKER.
Donc, l’énoncé du tableau croisé sera
Tableaux CRIME*DRINKER
L’hypothèse nulle et alternative dans ce cas est :
- h_0 : Les variables sont indépendantes ce qui signifie qu’il n’y a pas d’association du crime et de la consommation d’alcool
- h_a : Les variables sont dépendantes ce qui signifie que le taux de criminalité dépend de la consommation d’alcool
proc freq data=drinkers;weight count;tables crime*drinker/chisq expected norow nocol nopercent;title 'chi square analysis of a contingency table';run;
Par défaut, le tableau affichera quatre chiffres dans chaque cellule sont la fréquence globale, le pourcentage global, le pourcentage de la ligne et le pourcentage de la colonne comme ci-dessous.
L’EXPECTED précise que les valeurs attendues doivent être incluses dans le tableau, et NOROW, NOCOL et NOPERCENT indiquent à SAS d’exclure ces valeurs du tableau.
Observez les statistiques de la sortie. La valeur du chi-deux est de 49,5660 et p<0,0001.
Donc, vous rejetez l’hypothèse nulle c’est-à-dire qu’il n’y a pas d’association (indépendance) et vous concluez qu’il existe des preuves d’une relation entre le statut de consommation d’alcool et le type de crime commis.
La plupart des valeurs attendues sont proches des valeurs observées, tandis que dans le cas de Fraude, la valeur observée(63) est différente de ce qui était attendu(109.14).
Cette information permet de conclure que les personnes impliquées dans la fraude sont moins susceptibles de consommer de l’alcool.
Calcul du risque relatif à l’aide de PROC FREQ dans SAS
Les tableaux de contingence deux par deux sont souvent utilisés lors de l’examen d’une mesure du risque. Dans un test médical, ces types de tableaux sont construits lorsqu’une variable représente la présence ou l’absence de la maladie et que l’autre indique un certain facteur de risque.
Une mesure de ce risque dans une étude cas-témoins est appelée odds ratio (OR).
Dans une étude cas-témoins, un chercheur prélève un échantillon de sujets et recherche dans le passé toute exposition ou non-exposition à une maladie.
Dans une étude de cohorte, les sujets sont sélectionnés en fonction de la présence ou de l’absence d’un risque, puis observés dans le temps pour voir s’ils développent un résultat, la mesure de ce risque est appelée risque relatif (RR).
Le ratio DODDS est le nombre de fois que les chances de trouver une exposition chez une personne atteinte de la maladie sont plus élevées que chez une personne non atteinte de la maladie.
Le risque relatif indique combien de fois plus ou moins probable une personne exposée développe un résultat par rapport à une personne non exposée.
Dans les deux cas, une mesure de risque (OR ou RR) égale à 1 indique l’absence de risque.
Une mesure de risque différente de 1 représente un risque. En supposant que le résultat étudié est indésirable.
- La mesure de risque >1 indique un risque accru du résultat.
- La mesure de risque <1 implique un risque réduit du résultat.
- La mesure de risque = 1 indique l’absence de risque.
Dans PROC FREQ, l’option permettant de calculer les valeurs de l’OR ou du RR est RELRISK et apparaît comme une option de l’instruction TABLES comme indiqué ici :
TABLES CHOLESTROLDIET*OUTCOME / CHISQ RELRISK ;
Exemple
proc freq data=HeartDisese order=data;title 'Case-Control Study of High Fat/Cholesterol Diet';TABLES CHOLESTROLDIET*OUTCOME / CHISQ RELRISK;exact pchi or;weight Total;run;
La fréquence nous indique combien de sujets nous avons dans le régime LOW Cholesterol avec NO/YES résultat de maladie cardiaque.
En interprétant la première ligne, nous avons 6 sujets au régime LOW Cholesterol qui n’ont PAS de maladie cardiaque alors que 2 sujets au régime LOW cholesterol ont une maladie cardiaque.
L’attendu indique la valeur réelle par rapport à la valeur observée.
Le pourcentage est le pourcentage global qui indique que parmi tous les sujets, 26,09 % des personnes suivent le régime à FAIBLE taux de cholestérol et n’ont pas de maladie cardiaque.
Le pourcentage global nous indique le pourcentage de sujets qui suivent le régime à faible taux de cholestérol n’a PAS de maladie cardiaque sur 8 sujets qui suivent le régime à faible taux de cholestérol. C’est-à-dire que 75% des personnes qui sont dans le régime LOW Cholesterol n’ont pas de maladie cardiaque.
Le pourcentage deCOL nous indique le pourcentage de sujets qui n’ont pas de maladie cardiaque est dans le régime LOW cholesterol. c’est-à-dire 6 sur 10 ce qui est 60%. Alors qu’il y a 80% des personnes qui ont des maladies cardiaques sont dans le régime HIGH Cholesterol.
L’interprétation du test CHI-SQUARE nous indique l’association de ces variables entre ce qui était attendu et ce qui est observé.
La statistique du chi-deux (4.9597) sont inférieures à la valeur P(0,0259) ce qui indique que, il existe une association entre ce qui était attendu et ce qui est observé.
L’avertissement
L’une des hypothèses du test du CHI-SQUARE est que la valeur observée dans chaque cellule doit être supérieure à 5. Dans l’exemple ci-dessus, nous avons 4 et 2 qui sont inférieurs à 5. Dans ces cas, il est plus approprié d’utiliser le test exact de Fisher.
Le test exact de Fisher (0.0393) qui est statistiquement significatif à un alpha de 5%. donc nous pouvons dire qu’il y a une association et peut-être qu’un régime HIGH-Fat est associé à un HAUT risque pour les maladies cardiaques.
L’énoncé EXACT est pour PICHI qui signifie valeur P pour les sorties de CHI-SQUARE le tableau ci-dessous.
- text{Odds ratio} = frac {text{ods d’exposition dans un groupe}{text{ods d’exposition hors groupe}}.
- LARGE frac {6/2} {4/11} = 8,25
Odds ratio – 8,25 avec une limite de confiance de 95% ce qui signifie que la probabilité d’avoir une maladie cardiaque est 8 fois plus élevée que les personnes qui n’ont pas de maladie cardiaque
Le risque relatif de 2,88 indique que la maladie cardiaque est 2,88 fois plus élevée dans le groupe HIGH FAT. (Risque accru).
Le risque relatif de 0,34 nous indique que, Il y a une diminution du risque (0,34 fois Moins)d’un faible taux de cholestérol et d’une maladie cardiaque.
Puisque nous avons spécifié EXACTEMENT sur le ratio ODDs, nous obtiendrons le dernier tableau comme ci-dessous.
Le rapport de cotes est le même que le précédent qui est de 8.25 mais il donne également la limite de confiance exacte.
Télécharger Proc-Freq, les fichiers d’exercices,…
.