Documentation Example 5 for PROC TRANSREG
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: TREGEX5 */
/* TITLE: Documentation Example 5 for PROC TRANSREG */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: marketing research */
/* PROCS: TRANSREG */
/* DATA: */
/* */
/* SUPPORT: saswfk UPDATE: July 25, 2010 */
/* REF: PROC TRANSREG, EXAMPLE 5 */
/* MISC: */
/****************************************************************/
title 'Tire Study, Experimental Design';
proc format;
value BrandF
1 = 'Goodstone'
2 = 'Pirogi '
3 = 'Machismo ';
value PriceF
1 = '$69.99'
2 = '$74.99'
3 = '$79.99';
value LifeF
1 = '50,000'
2 = '60,000'
3 = '70,000';
value HazardF
1 = 'Yes'
2 = 'No ';
run;
%mktex(3 3 3 2, n=18, seed=448)
%mktlab(vars=Brand Price Life Hazard, out=sasuser.TireDesign,
statements=format Brand BrandF9. Price PriceF9.
Life LifeF6. Hazard HazardF3.)
%mkteval;
proc print data=sasuser.TireDesign;
run;
%mktdes(factors=Brand=3 Price=3 Life=3 Hazard=2, n=18)
data _null_;
title;
set sasuser.TireDesign;
file print;
if mod(_n_,4) eq 1 then do;
put _page_;
put +55 'Subject ________';
end;
length hazardstring $ 7.;
if put(hazard, hazardf3.) = 'Yes'
then hazardstring = 'with';
else hazardstring = 'without';
s = 3 + (_n_ >= 10);
put // _n_ +(-1) ') For your next tire purchase, '
'how likely are you to buy this product?'
// +s Brand 'brand tires at ' Price +(-1) ','
/ +s 'with a ' Life 'tread life guarantee, '
/ +s 'and ' hazardstring 'road hazard insurance.'
// +s 'Definitely Would Definitely Would'
/ +s 'Not Purchase Purchase'
// +s '1 2 3 4 5 6 7 8 9 ';
run;
title 'Tire Study, Data Entry, Preprocessing';
data Results;
input (c1-c18) (1.);
datalines;
233279766526376493
124467885349168274
262189456534275794
184396375364187754
133379775526267493
;
* Create an Object by Subject Data Matrix;
proc transpose data=Results out=Results(drop=_name_) prefix=Subj;
run;
* Merge the Factor Levels with the Data Matrix;
data Both;
merge sasuser.TireDesign Results;
run;
proc print;
title2 'Data Set for Conjoint Analysis';
run;
title 'Tire Study, Individual Conjoint Analyses';
* Fit Each Subject Individually;
proc transreg data=Both utilities short outtest=utils separators=' ';
ods select TestsNote FitStatistics Utilities;
model identity(Subj1-Subj5) =
class(Brand Price Life Hazard / zero=sum);
run;
title 'Tire Study Results';
* Gather the Importance Values;
data Importance;
set utils(keep=_depvar_ Importance Label);
if n(Importance);
label = substr(label, 1, index(label, ' '));
run;
proc transpose out=Importance2(drop=_:);
by _depvar_;
id Label;
run;
proc print;
title2 'Importance Values';
run;
proc means;
title2 'Average Importance';
run;
* Gather the Part-Worth Utilities;
data Utilities;
set utils(keep=_depvar_ Coefficient Label);
if n(Coefficient);
run;
proc transpose out=Utilities2(drop=_:);
by _depvar_;
id Label;
idlabel Label;
run;
proc print label;
title2 'Utilities';
run;