[R-sig-ME] lmer() for conjoint analysis? (interpreting coefficients)
Marianne Promberger
marianne.promberger at kcl.ac.uk
Fri Aug 6 15:33:06 CEST 2010
Dear Andy,
Many thanks for the quick reply. Sorry if I was unclear, a few
clarifications below:
Andy Fugard <andyfugard at gmail.com> 06-Aug-10 12:41:
> On Thu, Aug 5, 2010 at 19:00, Marianne Promberger
> <marianne.promberger at kcl.ac.uk> wrote:
> >
> > Each of 98 subjects made 9 choices, choosing one alternative each
> > time from pairs of two.
>
> Is this coded so that the model is predicting probability of choosing
> the a priori determined best option for all 9 comparisons?
Not entirely sure what you mean, but it is coded so "1" = "subject
chooses the alternative" (which in each case was either alt1 or alt2
or alt3; "0" = "subject chooses standard med". One clarification is
that the alternatives are all non-medical (behavioral), i.e., they are
mores similar to each other than any is to standard med.
> > We had prior evidence that subjects would prefer the standard
> > treatment to any of the alternatives, at equal effectiveness. Hence,
> > to reduce number of pairs to present to each subject, one option in
> > each pair was always standard medication at lowest level of
> > effectiveness (10 out of 100), and the other option was one of the
> > three alternatives, at equal or better effectiveness: 10 out of 100,
> > 20 out of 100, 40 out of 100.
> >
> > str(long)
> > 'data.frame': 882 obs. of 5 variables:
> > $ subject : Factor w/ 98 levels "subject 001",..: 1 2 3 4 5 6 7 8 9 10 ...
> > $ alternative : Factor w/ 3 levels "alt1","alt2",..: 1 1 1 1 1 1 1 1 1 1 ...
> > $ effectiveness: Factor w/ 3 levels "10","20","40": 1 1 1 1 1 1 1 1 1 1 ...
> > $ choice : Factor w/ 2 levels "0","1": 1 2 2 1 1 1 1 2 1 2 ...
>
> (Just a thought: I find it easier to interpret logistic fits if I
> encode the dependent variable values to be numerical 0s and 1s, rather
> than a factor.)
Thanks, makes sense. I've done this now but so far for the lmer() no difference in output.
> > I fit this model: (model 1)
> > lmer(choice ~ 0 + alternative + effectiveness + (1|subject), family = binomial, data = long)
> >
> > Estimate Std. Error z value Pr(>|z|)
> > alternativealt1 -0.363 0.446 -0.81 0.42
> > alternativealt2 -0.679 0.448 -1.51 0.13
> > alternativealt3 2.422 0.459 5.28 1.3e-07 ***
>
> Is one of these the standard medication, then?
No. Standard med is not explicitly coded, as it is always the
"backdrop" (always the constant option).
Exhaustive list of choices each subject saw:
med (helps 10%) vs alt1 (helps 10%)
med (helps 10%) vs alt1 (helps 20%)
med (helps 10%) vs alt1 (helps 40%)
med (helps 10%) vs alt2 (helps 10%)
med (helps 10%) vs alt2 (helps 20%)
med (helps 10%) vs alt2 (helps 40%)
med (helps 10%) vs alt3 (helps 10%)
med (helps 10%) vs alt3 (helps 20%)
med (helps 10%) vs alt3 (helps 40%)
> Also why did you get rid of the intercept? Might make sense to push
> the standard medication into the intercept, then you can see if
> participants always prefer it over the others (i.e., the others will
> have negative coefficients).
This is why I set it to have no intercept -- because I find it
confusing when one of the three alternatives is in the intercept, if
that makes sense. Coefficients for the alternatives are meaningful as
compared to the (implicit, constant) "standard med" option. Negative
coefficients should mean standard med is preferred, positive
coefficients should mean alternative is preferred (since it is coded
as 1). This matches the result visible in the barplot (bars represent
which alternative was shown, but the choice was always between that
type of alternative and standard med, and colors in the barplot
correspond to that).
> > effectiveness20 2.543 0.321 7.93 2.3e-15 ***
> > effectiveness40 3.846 0.376 10.22 < 2e-16 ***
>
> Okay, so these three are comparisons with effectiveness20, which is coded as 0.
Yes.
> > Of interest in conjoint analysis are the relative preferences, or
> > "part-worth utilities", and to my understanding I can get these by
> > comparing coefficients, e.g. increasing effectiveness from 10 to 40
> > (3.846) is about 1.5 times as important as increasing effectiveness
> > from 20 to 40 (revealed in choice behaviour in that more subjects
> > choose the alternative). Alternatives 1 and 2 are not significant
> > because standard and alternative get chosen about equally often, but
> > they can be compared in that alternative 3 is preferred to medication,
> > and that preference is, e.g., 2.42/.67= 3.6 times stronger than the
> > slight preference of medication over alternative 2.
>
> Have you tried getting the mean predictions from the model, feeding
> them through invlogit? Can be helpful to see what's going on
> within-subject between conditions.
No. I didn't know about invlogit, thanks.
> Also you could use relevel to code the variables to make the
> comparisons you want. Or use one of the multiple comparisons
> packages, sometimes discussed on this list.
Ok, I'll look into that, too.
I'm still interested in whether I can directly compare the
coefficients in the model. I like this because it is straightforward,
and there is previous literature in the field where this is aimed at
in terms of publication using this method with a "random effects
probit" (of unspecified statistical package provenance).(*)
I guess I'm just not sure whether lmer() is sufficiently different for
this interpretation not to be warranted, and/or whether the
interpretation will not work for coefficients of variables sitting at
different levels, as it were (type of alternative and effectiveness
are at the level of each choice, respcause at the level of subject).
> > We also asked each subject once about their perceptions of
> > responsibility for smoking, and had a hypothesis that high perceptions
> > would lead to rejection of the alternative treatment.
> >
> > $ respcause : int 4 5 6 6 5 5 6 5 4 5 ...
>
> This sounds like a hypothesized interaction between respcause and alternative.
No. I hope this is clearer now, as it refers to subjects choosing any
of the three alternative (i.e., proportion picking "1") given their
rating for respcause -- regardless of which is the type of alternative.
But I have compared my model 1 and model 2 using anova() and the model
including the main effect of respcause comes out better.
I am currently trying to generate plots that show the effect of
respcause, by giving a different barplot for subjects answering at
each level of the latter and collapsing once across level, of
effectiveness and once across type of alternative.
Thanks
Marianne
(*)
Ryan, M. and Farrar, S. (2000). Using conjoint analysis to elicit
preferences for health care. BMJ, 320(7248):1530-1533.
Ratcliffe, J., Bekker, H. L., Dolan, P., and Edlin,
R. (2009). Examining the attitudes and preferences of health care
decision-makers in relation to access, equity and cost-effectiveness:
A discrete choice experiment. Health Policy, 90(1):45-57.
--
Marianne Promberger PhD, King's College London
http://promberger.info
R version 2.11.1 (2010-05-31)
Ubuntu 9.10
More information about the R-sig-mixed-models
mailing list