data CarPref;
input Make $12. Model $13. (S1-S25) (1.);
datalines;
Cadillac Deville 8007990491240508971093809
Chevrolet Aveo 0051200423451043003515698
Chevrolet Cavalier 4053305814161643544747795
Chevrolet Malibu 6027400723121345545668658
Dodge Intrepid 7006000434101107333458708
Dodge Stratus 3005005635461302444675655
Dodge Neon 4005003614021602754476555
Ford Taurus 2024006715021443530648655
Ford Mustang 5007197705021101850657555
Ford Focus 0021000303030201500514078
Honda Accord 5956897609699952998975078
Honda Civic 4836709507488852567765075
Lincoln LS 7008990592230409962091909
Pontiac Firebird 0107895613201206958265907
Volkswagen Jetta 4858696508877795377895000
Volkswagen Beetle 4858509709695795487885000
Volvo S40 9989998909999987989919000
;
run;
* Compute Two Component Model;
ods graphics;
ods exclude all;
ods output mdprefplot=plotdata;
proc prinqual data=CarPref n=2 replace mdpref method=mgv;
id model;
transform monotone(S1-S25);
run;
ods select all;
proc template;
define statgraph vectorplot;
begingraph;
entrytitle "Multidimensional Preference Analysis";
entrytitle "of Preference Ratings for Automobiles";
layout overlayequated / equatetype=fit cycleattrs=true;
referenceline y=0 / datatransparency=.7;
referenceline x=0 / datatransparency=.7;
vectorplot y=vec2 x=vec1 xorigin=0 yorigin=0 /
datalabel=label2var;
scatterplot y=prin2 x=prin1 /
datalabel=idlab1 primary=true
markerattrs=(symbol=circlefilled);
endlayout;
endgraph;
end;
run;
proc sgrender data=plotdata template=vectorplot;
run;