* ===================================================================; * Analyse sensorielle =; * P5. Profil sensoriel : plusieurs produits et attributs =; * Pierre DESMET Décembre 2012 =; * ===================================================================; footnote1 h=1 j=l "Université Paris-Dauphine" j=r "(c) DESMET Pierre, 2012"; ODS rtf ; ********************************************************************; * Données : Tennenhaus ; * https://studies2.hec.fr/jahia/webdav/site/hec/shared/sites/tenenhaus/acces_anonyme/home/fichier_excel/orange.xls ; ********************************************************************; title3 "Analyse sensorielle jus d'orange"; data in ; length produit $20 ; input Produit $ Glucose Fructose Saccharose Pouvoir_sucrant pH_brut pH_apres_centrif Titre Acide_citrique VitamineC int_odeur typ_odeur car_pulpeux int_goût car_acide car_amer car_sucre Juge1-Juge96 @@; * x1-x9 : donnees instrumentales ; * x10-x17 : donnees sensorielles ; * juge = preference des juges ; cards ; A_pampryl 25.32 27.36 36.45 89.95 3.59 3.55 13.98 0.84 43.44 2.82 2.53 1.66 3.46 3.15 2.97 2.6 2 1 2 4 2 2 3 2 4 1 2 2 2 2 4 4 5 2 1 1 2 3 2 2 3 4 4 4 3 3 2 3 2 4 2 2 4 3 4 3 3 4 2 3 3 3 4 1 3 2 3 2 2 4 1 3 2 2 2 3 3 5 2 3 3 2 4 2 1 3 2 2 2 4 4 4 2 1 1 2 3 5 4 2 3 3 3 3 2 3 1 2 4 1 4 3 A_tropicana 17.33 20 44.15 82.55 3.89 3.84 11.14 0.67 32.7 2.76 2.82 1.91 3.23 2.55 2.08 3.32 2 3 3 4 3 4 2 2 3 3 4 3 2 2 5 3 5 2 3 2 2 3 2 4 4 5 3 4 4 3 3 3 2 3 4 2 3 4 5 2 3 4 1 2 4 1 5 3 2 2 5 3 1 2 2 2 3 4 4 5 5 4 3 3 4 2 4 3 2 3 3 3 2 4 3 2 3 3 2 2 3 2 2 4 1 3 4 5 2 2 4 4 2 3 2 3 R_fruvita 23.65 25.65 52.12 102.22 3.85 3.81 11.51 0.69 37 2.83 2.88 4 3.45 2.42 1.76 3.38 3 3 4 4 2 5 3 3 2 2 4 4 1 1 3 2 3 4 3 5 5 3 2 2 4 3 4 3 2 4 3 4 3 4 4 3 4 3 4 3 2 3 4 4 2 2 3 4 5 4 4 4 4 3 3 2 2 3 3 5 4 4 3 2 1 4 3 3 5 4 4 4 5 3 3 3 2 4 3 3 3 2 4 4 1 5 4 2 4 3 4 4 2 3 4 4 A_joker 32.42 34.54 22.92 90.71 3.6 3.58 15.75 0.95 36.6 2.76 2.59 1.66 3.37 3.05 2.56 2.8 2 2 2 2 2 3 2 3 5 2 2 2 2 3 3 1 4 1 4 1 3 4 3 3 2 4 4 3 2 2 3 2 2 2 3 3 1 3 4 2 3 5 2 4 4 2 3 3 2 3 3 2 4 1 2 3 3 2 3 2 1 2 3 3 4 2 4 1 1 2 3 4 2 4 3 4 1 4 1 2 4 3 3 2 3 3 4 3 3 2 2 2 5 2 3 2 R_tropicana 22.7 25.32 45.8 94.87 3.82 3.78 11.8 0.71 39.5 3.2 3.02 3.69 3.12 2.33 1.97 3.34 4 4 3 4 3 3 2 4 2 2 3 5 1 1 2 3 3 3 3 3 4 2 1 3 4 4 2 2 3 3 3 2 4 2 4 3 2 3 5 3 4 3 4 3 4 3 2 4 1 4 2 3 3 2 3 2 1 4 4 5 4 4 3 2 1 3 2 3 4 2 3 4 4 3 4 3 3 2 4 2 2 3 4 4 1 4 3 4 3 3 3 2 2 1 4 4 R_pampryl 27.16 29.48 38.94 96.51 3.68 3.66 12.21 0.74 27 3.07 2.73 3.34 3.54 3.31 2.63 2.9 3 1 1 2 2 3 1 2 3 2 2 3 4 2 2 1 4 3 1 4 4 4 4 3 3 3 3 2 3 3 2 4 3 2 3 3 4 3 4 4 4 3 1 4 3 1 4 1 4 2 4 2 4 2 1 4 3 1 4 2 2 1 2 4 2 4 2 3 2 2 3 3 3 4 3 3 3 3 2 1 2 3 3 3 2 2 2 5 3 3 2 3 2 1 1 1 ; run; ods rtf ; Title1 "Evaluations sensorielles"; Title2 "Données Jus Orange de Tennenhaus "; proc tabulate data=in ; class produit ; var int_odeur typ_odeur car_pulpeux int_goût car_acide car_amer car_sucre; table (produit all),(int_odeur typ_odeur car_pulpeux int_goût car_acide car_amer car_sucre)*mean ; run ; Title1 "Mesures techniques"; Title2 "Données Jus Orange de Tennenhaus "; proc tabulate data=in ; class produit ; var glucose--vitamineC ; table (produit all), (glucose--vitamineC)*mean; run ; Title1 "Corrélation des mesures techniques"; Title2 "Données Jus Orange de Tennenhaus "; proc corr data=in cov ; var glucose--vitamineC ; run ; ******************************************************************; * constitution d'un tableau "long" : 1 évaluation par ligne ; ******************************************************************; data in_long ; set in ; keep produit att valeur ; att = "int_odeur" ; valeur = int_odeur ; output ; att = "typ_odeur" ;valeur =typ_odeur ; output ; att= "car_pulpeux";valeur =car_pulpeux; output ; att= "int_goût" ;valeur = int_goût; output ; att= "car_acide";valeur =car_acide ; output ; att= "car_amer" ;valeur =car_amer ; output ; att= "car_sucre";valeur =car_sucre; output ; run ; ******************************************************************; * Graphiques RADAR ; ******************************************************************; Title1 "Graphique radar superposés des profils sensoriels"; Title2 "Données Jus Orange de Tennenhaus "; proc gradar data=in_long; where produit="R_tropicana" or produit="R_pampryl" or produit="R_fruitvita"; chart att / freq=valeur overlay=produit cstarfill=(CX7C95CA CXDE7E6F blue ) /* autant de couleur que de produits */ starfill=(solid solid) /* autant de SOLID que de produits */ spider; run; Title1 "Graphique radar juxtaposés des profils sensoriels"; Title2 "Données Jus Orange de Tennenhaus "; proc gradar data=in_long; where produit="R_tropicana" or produit="R_pampryl" or produit="R_fruitvita"; chart att / across = produit freq= valeur intertile=0.5 cframe=CXB3B2BF cframetop=CX83838C cstarfill=(CX7C95CA ) starfill=(solid) starlegend=clock starlegendlab='Critère d"évaluation' cstars=depk; run; ******************************************************************; * ACP mesures techniques ; ******************************************************************; ods graphics on ; title1 "ACP sur corrélations des mesures techniques" ; proc factor data=in ; var glucose--vitamineC ; run ; Title4 " si 2 facteurs seulement retirer vitamine C "; proc factor data=in method=prin priors=one nfactors=2 out=out_factor plots=all ; var glucose--Acide_citrique ; run; title1 "Graphique ACP sur mesures techniques" ; data work ; set out_factor; keep X Y Xsys Ysys text size color ; X=factor1 ;Y=factor2; size=1; xsys='2'; ysys='2'; text=produit ; /* variable d'identification des produits */ Label X='PH' Y='Pouvoir sucrant' ; /* titres des axes */ run; Proc gplot data=work; symbol1 V=none i=none ; plot Y*X=1 / annotate=work Frame Href=0 Vref=0; run; ******************************************************************; * ACP perceptions ; ******************************************************************; ods graphics on ; title1 "ACP sur corrélations des perceptions" ; proc factor data=in ; var int_odeur typ_odeur car_pulpeux int_goût car_acide car_amer car_sucre ; run ; Title4 " Rotation Varimax "; proc factor data=in method=prin priors=one nfactors=2 out=out_factor rotate = varimax plots=all ; var int_odeur typ_odeur car_pulpeux int_goût car_acide car_amer car_sucre ; run; title1 "Graphique ACP sur perceptions" ; data work ; set out_factor; keep X Y Xsys Ysys text size color ; X=factor1 ;Y=factor2; size=1; xsys='2'; ysys='2'; text=produit ; /* variable d'identification des produits */ Label X='Amertume' Y='Odeur & Pulpe' ; /* titres des axes */ run; Proc gplot data=work; symbol1 V=none i=none ; plot Y*X=1 / annotate=work Frame Href=0 Vref=0; run;