Analyzing the Data

You can have SAS generate the questionnaire or create the questionnaire manually following the balanced and orthogonal specification table above. For analyzing the data, input the 24 responses per subject as rows of input lines.

The input from above corresponds to a study with 30 runs. You perform the metric conjoint analysis using the PROC TRANSREG function.

In the figure above, factors are specified as class variables. This will give you the main effects and any interactions that you specify. Notice the brand|price specification. This tells you that you want the main effects of brand and price, in addition to the interaction brand X price. The coefficients for a conjoint analysis are known as part-worth utilities. Not only does it display main effects, but it performs subject level analysis. Any subject with an R^2 value less than 0.3 are flagged for exclusion. The analysis should be based on subjects who are taking the task seriously Here is the syntax for a macro that will drop subjects who do not seem to fit the model:

data model;
set utils;
if statistic in (’R-Square’, ’Adj R-Sq’, ’Model’);
Subj = scan(_depvar_, 2);
if statistic = ’Model’ then do;
value = numdf;
statistic = ’Num DF’;
output;
value = dendf;
statistic = ’Den DF’;
output;
value = dendf + numdf + 1;
statistic = ’N’;
end;
output;
keep statistic value subj;
run;
proc transpose data=model out=summ;
by subj;
idlabel statistic;
id statistic;
run;
data summ2(drop=list);
length list $ 1000;
retain list;
set summ end=eof;
if adj_r_sq < 0.3 then do;
Small = ’*’;
list = trim(list) || ’ ’ || subj;
end;
if eof then call symput(’droplist’, trim(list));
run;
%put &droplist;
proc print label data=summ2(drop=_name_ _label_); run;

You can run the analysis again, this time dropping the subjects with poor fit. Here is the code:

proc transreg data=inputdata(drop=&droplist) utilities short noprint
separators=’’ ’, ’ lprefix=0 outtest=utils method=morals;
title2 ’Conjoint Analysis’;
model identity(sub:) =
class(brand | price meat mushroom ingredients / zero=sum);
output p ireplace out=results2 coefficients;
run;