*****************************************************************************; * echelle de snacking ; * items issus réunion de groupe ; ****************************************************************************; data in_E ; input num sn1-sn14 freq sn15 ; label sn1="Dès que j'ai un petit creux je mange" sn2 ="Je grignotte entre les repas" sn3 ="J'aime grignotter" sn4="Quand je stresse je mange" sn5="Quand je m'ennuie je mange" sn6="Je grignotte quand je n'ai pas le temps de prendre un repas" sn7="Je snacke sain" sn8="Je fais attention à ce que je mange" sn9="J'évite de grignotter" sn10="J'évite d'avoir des snacks chez moi" sn11="Je grignote toujours devant la télé" sn12="Je grignotte pour avoir de l'énergie" sn13="Je pense que le snaking est mauvais pour la santé" sn14="Je culpabilise en mangeant des snacks" sn15="Je n'arrive pas à résister à l'envie d'un snack" freq="A quelle fréquence snackez vous?" ; cards ; 1 5 5 6 4 6 3 3 3 3 2 3 2 5 5 2 2 2 2 2 5 5 5 2 2 5 5 5 2 1 6 5 2 4 3 3 5 6 6 6 3 6 6 4 6 3 6 7 6 1 3 4 5 5 3 1 2 1 5 7 4 1 1 4 5 3 3 3 5 6 7 7 4 4 7 1 1 1 1 4 5 7 1 1 7 6 3 4 5 2 5 3 3 4 5 6 2 4 6 5 2 4 7 7 6 7 7 7 5 1 3 3 7 6 2 6 7 2 5 8 4 3 4 6 1 1 4 7 6 7 2 4 1 3 1 3 9 6 7 6 1 6 5 2 4 2 2 5 3 5 2 1 6 10 2 4 6 6 7 2 2 5 5 7 2 1 6 7 3 2 11 3 3 4 4 1 7 4 4 3 1 1 1 6 4 3 3 12 4 4 6 2 6 6 5 3 3 3 4 4 6 5 1 5 13 6 7 5 5 5 5 1 1 4 1 3 5 6 5 1 5 14 3 5 6 4 6 5 3 4 5 6 3 3 4 5 2 6 15 2 3 2 2 2 5 6 6 5 2 1 5 6 2 3 2 16 5 3 6 3 2 2 5 7 3 3 2 5 5 5 2 3 17 4 3 3 7 6 3 5 7 7 6 5 2 7 4 2 3 18 7 5 7 7 1 7 5 6 2 2 1 1 1 1 2 6 19 2 1 2 1 1 6 6 7 6 7 1 1 7 4 4 1 20 2 2 6 6 2 6 1 5 5 6 1 2 7 7 3 3 21 7 6 7 6 6 7 3 3 1 1 6 3 3 6 2 6 22 5 5 4 2 6 2 1 3 4 4 4 2 6 4 2 5 23 1 2 6 5 6 3 2 5 7 7 5 2 7 7 3 3 ; proc format ; value freq_fmt 1="Tous les jours" 2="2 à 4 fois /sem" 3="1 fois /sem" 4="Rarement"; proc freq data=in_E ; table freq ; format freq freq_fmt. ; run ; proc corr data=in_E ; var sn1-sn15 ; run ; **********************************************************************************; * analyse exploratoire ; **********************************************************************************; ods graphics on ; proc factor data=in_E rotate= varimax plots=all ; var sn1-sn15 ; run ; **********************************************************************************; * analyse exploratoire par VARCLUS : "typologie" des variables ; * analyse de classification en composantes obliques centroïdes; **********************************************************************************; proc varclus data=in_E centroid cov; var sn1-sn15; run; **********************************************************************************; * analyse raffinée avec items du premier axe; **********************************************************************************; proc factor data=in_E plots=all ; var sn1 sn2 sn3 sn8 sn9 ; run ; **********************************************************************************; * inverser les items ; **********************************************************************************; data in_E ; set in_E ; sn8c= 8-sn8 ; sn9c= 8-sn9 ; label sn8c="Je fais attention à ce que je mange (R)" sn9c="J'évite de grignotter (R)"; run ; proc corr data=in_E alpha ; var sn1 sn2 sn3 sn8c sn9c ; run ; **********************************************************************************; * enlever "j'aime grignotter"; * car évaluation hédonique (J'aime) et non conative (comportement); **********************************************************************************; proc corr data=in_E alpha ; var sn1 sn2 sn8c sn9c ; run ; ods graphics on ; proc factor data=in_E plots=all priors=smc ; var sn1 sn2 sn8c sn9c ; run ; **********************************************************************************; * enlever "je fais attention à ce que je mange "; * car bien plus que le snacking. Il aurait fallu mettre en plus "entre les repas" ; **********************************************************************************; proc corr data=in_E alpha ; var sn1 sn2 sn9c ; run ; ods graphics on ; proc factor data=in_E plots=all priors=smc n=1 out=in_E (rename=(factor1=snacking )); var sn1 sn2 sn9c ; run ; ods graphics off ; proc print data = in_E; run ; **********************************************************************************; * exemple de segmentation sur la variable snacking ; * discretisation en 3 groupes ; **********************************************************************************; proc rank data=in_E group= 3 out=in_E ; var snacking ; ranks r_snacking ; run ; proc format ; value r_snack_fmt 0="Peu" 1="Assez" 2="Beaucoup" ; run ; proc univariate data =in_E normal ; var snacking ; histogram snacking / normal ; run ; **********************************************************************************; * vérification de la pertinence de l'échelle; * est-elle capable de prédire le comportement de fréquence de consommation ; **********************************************************************************; proc corr data =in_E spearman; var r_snacking freq ; run ; proc freq data=in_E ; table r_snacking * freq / cmh chisq nocol nopercent; format freq freq_fmt. r_snacking r_snack_fmt. ; run ; **********************************************************************************; * le snack ennui; **********************************************************************************; proc corr data=in_E alpha ; var sn5 sn11 ; run ; **********************************************************************************; * Equations structurelles; * contrairement à l'analyse factorielle qui construit le facteur à partir des variables; * F1 = a1* SN1 + a2* SN2 + a3*SN9c ; * on postule ici à partir d'un modèle théorique déterminé à l'avance ; * que chaque variable est déterminée par une variable latente plus une variable aléatoire ; * SN1 = a1*F1+ e1 ; * SN2 = a2*F2 + e2; * etc ; * puis on regarde si ce modèle s'ajuste bien aux données ; * ce qui n'est pas le cas ici ; **********************************************************************************; proc corr data=in_E alpha ; var sn1 sn2 sn9c sn5 sn11 ; run ; proc calis data=in_E method = gls ; var sn1 sn2 sn9c sn5 sn11; lineqs /* décrire chaque équation */ /* pour chaque variable latente, mettre un coefficient à 1*/ sn1 = a11 F1 + e1, sn2 = a12 F1 + e2, sn9c = 1. F1 + e3, sn5 = a21 F2 + e4, sn11 = 1. F2 + e5; std /* variance des variables aléatoires */ /* forcer celle des facteurs à 1. */ e1-e5 = eps:, F1-F2 = 1. ; cov /* covariance entre les facteurs */ F1 F2 = C12 ; run; 1. F2 + e4, sn11 = a22 F2 + e5; /* attention "," et ";" pour le dernier */ /* F1 = g1 F2 + d1; * pour l'erreur d'une latente mettre "d__"; */ std /* variance des variables aléatoires */ e1-e5 = eps:, F1-F2 = e_F: ; cov /* covariance entre les facteurs */ F1 F2 = phi1 ; run;