/*----------------------------------------------------------* | Using external data to help interpret MDS solutions with | | the vector model and ideal point model. | *----------------------------------------------------------*/ Title 'Similarities of Automobiles'; data DISSIM; input MAKE $1-9 NAME $10-17 @20 (MUSTANG CADILAC LINCOLN FORD CORVETTE CHEVETTE NISSAN RENAULT PORSCHE JAGUAR MERCEDES) (3.0); drop MAKE; if NAME=' ' then NAME=MAKE; datalines; Mustang . Cadillac 27 . Lincoln 26 01 . Ford Escort 17 38 39 . Corvette 13 28 29 36 . Chevette 25 41 42 10 35 . Nissan 300ZX 15 32 30 45 09 48 . Renault 24 40 02 12 43 11 34 . Porsche 16 33 31 46 08 49 14 44 . Jaguar 37 07 05 50 18 52 19 51 21 . Mercedes 47 06 04 53 23 55 22 54 20 03 . ; proc mds data=DISSIM level=ORDINAL shape=TRIANGLE out=CONFIG oconfig; id name; proc plot data=CONFIG; plot DIM2 * DIM1 $NAME; run; /*--------------------------------------------------* | Mean ratings of each auto on 12 property scales | *--------------------------------------------------*/ data property; input MAKE $ SOPHIST EXCITING STRONG UNCONVEN BOLD COMPLEX SPORTY FRESH SWIFT ELEGANT RELIABLE MASCULIN; datalines; MUSTANG 0.3 1.5 1.7 1.2 0.5 1.6 0.9 0.5 2.6 1.5 0.8 1.2 CADILLAC 2.0 -1.0 1.2 0.5 -0.2 0.3 -1.8 -2.0 1.5 0.5 0.4 -0.5 LINCOLN 2.2 -0.8 1.5 1.0 0.3 0.8 -2.6 -1.5 1.8 0.8 1.3 0.4 FORD -1.0 -2.0 -1.4 -1.4 -1.8 -2.4 -0.3 0.3 -0.4 -2.0 0.2 -0.8 CORVETTE 1.2 2.0 1.8 1.3 2.2 -0.1 1.5 0.7 2.2 -0.8 0.9 1.3 CHEVETTE -2.7 -1.8 -1.6 -2.0 -2.0 -2.5 0.2 -0.5 -2.5 -2.8 0.0 -1.2 NISSAN 1.4 2.2 1.0 1.5 0.9 1.2 0.5 1.6 2.0 1.7 1.9 1.0 RENAULT -2.5 -1.8 -1.5 -1.6 -1.5 -1.8 0.0 -0.2 2.1 -2.5 -1.7 -1.5 PORSCHE 1.6 2.5 0.5 2.5 2.5 0.6 2.0 1.8 1.8 1.3 -0.8 0.9 JAGUAR 3.0 1.4 1.4 1.8 1.2 1.5 -2.4 2.0 0.2 2.3 -1.0 -2.0 MERCEDES 2.8 1.1 1.2 2.2 1.8 1.9 -2.9 1.3 1.1 2.7 2.1 2.2 ; proc print; id MAKE; /*-------------------------------------------------* | Use Vector Model to fit properties to MDS space | *-------------------------------------------------*/ data STIM; merge CONFIG PROPERTY; drop _DIMENS_ _MATRIX_ _TYPE_ _NAME_; proc cancorr data=STIM wdep smc b probt outstat=VECTORS VNAME = 'Dimensions' VPREFIX=CAN WNAME = 'Properties'; var DIM1-DIM2; with SOPHIST EXCITING STRONG UNCONVEN BOLD SPORTY FRESH ELEGANT; Title2 'Multiple & Canonical Vector Regression'; /*------------------------------------------------------------* | Extract regression coefficients and canonical coefficients | | to plot MDS space with property vectors. | *------------------------------------------------------------*/ data VECTORS; set VECTORS; keep _TYPE_ NAME DIM1 DIM2; NAME=_NAME_; if _TYPE_='B' | (_TYPE_='RAWSCORE' & NAME=:'CAN'); proc print data=VECTORS; data ORIGIN; DIM1=0; DIM2=0; NAME='+'; data ATTPLOT; set CONFIG VECTORS ORIGIN; proc PLOT data=ATTPLOT; plot DIM2*DIM1 $NAME; /*----------------------------------------------------* | Fit Ideal point model, using SSQ variable | *----------------------------------------------------*/ data STIM2; set STIM; SSQ = USS(of DIM1-DIM2); proc cancorr data=STIM2 wdep smc b probt ncan=2 outstat=VECTORS VNAME = 'Dimensions' VPREFIX=CAN WNAME = 'Properties'; var SSQ DIM1-DIM2; with SOPHIST EXCITING STRONG UNCONVEN SPORTY FRESH ELEGANT; Title2 'Multiple & Canonical Ideal Point Regression'; /*------------------------------------------------------------* | Extract regression coefficients and claculate locations | | of ideal points in MDS space. | *------------------------------------------------------------*/ data VECTORS; set VECTORS; keep _TYPE_ NAME DIM1 DIM2; NAME=_NAME_; if _TYPE_='B' | (_TYPE_='RAWSCORE' & NAME=:'CAN'); DIM1 = -.5*(DIM1/SSQ); DIM2 = -.5*(DIM2/SSQ); proc print data=VECTORS; data ATTPLOT; set CONFIG VECTORS; proc PLOT; plot DIM2*DIM1 $NAME; run;