Part-worth of a two-level attribute from mean ratings in a balanced orthogonal design

In a balanced orthogonal design with dummy coding, the least-squares part-worth of a two-level attribute equals the mean rating of the profiles showing the coded level minus the mean rating of those showing the reference level. Any design can be fitted by multiple regression on the dummy codes (HE-CF-CJA-001); the difference of means is a shortcut that holds only in a balanced orthogonal design, where every pair of levels of any two attributes appears equally often, as in a full factorial or an orthogonal fraction of it.

Signature

b_k = Rbar_1 - Rbar_0
Inputs
InputsDefinitionUnit
Rbar_1Average rating of the profiles in which attribute k takes its coded level (dummy equal to 1)rating points
Rbar_0Average rating of the profiles in which attribute k takes its reference level (dummy equal to 0)rating points
Output
b_kChange in predicted rating when attribute k moves from its reference level to its coded level, the others held fixedrating points

Function

Decomposition of whole-profile ratings into attribute part-worths in conjoint analysis

Maps a respondent's ratings of profiles, each described by levels of several attributes, to a part-worth for each level under an additive model, so that a profile's value is the intercept plus the part-worths of its levels. One level of each attribute is the reference, with a part-worth of zero. Relative importance and trade-offs between attributes follow from the part-worths. The notation follows the Conjoint Analysis article, whose outpatient clinic example is used throughout.

Computational function

  • Computational function: least-squares part-worths, fit and relative importance from a ratings design

    Fits the additive part-worth model to one respondent's ratings by least squares on dummy-coded attributes for any design, balanced or not, and returns the intercept and part-worths, R squared, each attribute's range and its relative importance (HE-FM-CJA-003). The inputs differ from the formula's: a design matrix and a vector of ratings instead of two mean ratings.

    Inputs and outputs: X: Matrix of 0 and 1 dummy codes, one row per profile and one column per non-reference level; required. Unit: none.; y: Ratings of the profiles; required. Unit: rating points.; attr: Attribute name for each column of X; required. Unit: label.; beta: Intercept followed by the part-worths. Unit: rating points.; R2: Share of rating variation explained. Unit: proportion.; range: Largest minus smallest part-worth of each attribute, the reference level counting as 0. Unit: rating points.; RI: Range of each attribute divided by the sum of ranges. Unit: proportion.

    Assumption: Ratings on an interval scale, an additive model without interactions and at least as many profiles as parameters; with several respondents the model is fitted per respondent or to pooled data with stated weights.

    Worked example (Outpatient clinic, article example): Eight profiles coded for a 12-week wait, a local clinic and a nurse lead, rated 6, 3, 8, 4, 5, 2, 6 and 4, give an intercept of 6.00, part-worths of minus 3.00, 1.50 and minus 1.00, R squared of 0.9608 and relative importances of 0.5455, 0.2727 and 0.1818. X = [[0,0,0], [1,0,0], [0,1,0], [1,1,0], [0,0,1], [1,0,1], [0,1,1], [1,1,1]]; y = [6, 3, 8, 4, 5, 2, 6, 4]; beta = [6, -3, 1.5, -1]; R2 = 0.9608; RI = [0.5455, 0.2727, 0.1818]

    Worked example (Seven profiles, design unbalanced): Dropping profile 8 gives an intercept of 6.25 and part-worths of minus 3.25, 1.25 and minus 1.25, R squared of 0.9799 and importances of 0.5652, 0.2174 and 0.2174, while the mean differences for location and lead would be 2.00 and minus 0.92 (computed here for illustration). beta = [6.25, -3.25, 1.25, -1.25]; R2 = 0.9799

    Excel: With the ratings in Ratings and the dummy codes in an eight-by-three range AttributeCodes, =LINEST(Ratings,AttributeCodes,TRUE,TRUE) returns the part-worths in reverse column order with the intercept last in the first row, and R squared in the first cell of the third row: =INDEX(LINEST(Ratings,AttributeCodes,TRUE,TRUE),3,1).

    R: partworths <- function(X, y, attr) { fit <- lm.fit(cbind(1, as.matrix(X)), y); b <- fit$coefficients; R2 <- 1-sum(fit$residuals^2)/sum((y-mean(y))^2); rng <- tapply(b[-1], factor(attr, levels = unique(attr)), function(v) max(0, v)-min(0, v)); list(beta = b, R2 = R2, range = rng, RI = rng/sum(rng)) } Base R only; with X <- cbind(W = c(0,1,0,1,0,1,0,1), L = c(0,0,1,1,0,0,1,1), N = c(0,0,0,0,1,1,1,1)) and y <- c(6,3,8,4,5,2,6,4), partworths(X, y, c("wait", "location", "lead")) returns the first example's values.

    Python: def partworths(X, y, attr): Z = np.column_stack([np.ones(len(y)), np.asarray(X, float)]); y = np.asarray(y, float); b = np.linalg.lstsq(Z, y, rcond=None)[0]; r = y-Z@b; R2 = 1-r@r/((y-y.mean())@(y-y.mean())); rng = {k: max(0, *b[1:][np.array(attr) == k])-min(0, *b[1:][np.array(attr) == k]) for k in dict.fromkeys(attr)}; return {"beta": b, "R2": R2, "range": rng, "RI": {k: v/sum(rng.values()) for k, v in rng.items()}} Needs import numpy as np; returns the same values as the R function, with X as a list of rows.

    Test (Fitted ratings average to the mean rating): With an intercept, least-squares residuals add to zero, so the fitted ratings average 4.75 in the example. Expected result: TRUE. Excel check, with the fitted ratings in Fitted: =ABS(AVERAGE(Fitted)-AVERAGE(Ratings))<1E-9

    Test (Relative importances add to one): The importances of all attributes add to 1. Expected result: TRUE. Excel check, with the importances in Importances: =ABS(SUM(Importances)-1)<1E-9

    Common error (More parameters than profiles): Regression needs at least as many profiles as parameters; three two-level attributes need four, and the eight-profile example leaves only four degrees of freedom, so real studies use more profiles per respondent or pool respondents.

    Source: Hauser JR, Rao VR. Conjoint analysis, related modeling, and applications. In: Wind Y, Green PE, eds. Marketing Research and Modeling: Progress and Prospects. Boston, MA: Springer; 2004:141-168. doi:10.1007/978-0-387-28692-1_7 (read as the MIT open-access pre-publication version). Section Regression-Based Methods (dummy variables and ordinary least squares for interval ratings; at least as many observations as parameters); Green PE, Srinivasan V. Conjoint analysis in marketing: new developments with implications for research and practice. Journal of Marketing. 1990;54(4):3-19. doi:10.1177/002224299005400402. Table 1 (metric estimation by multiple regression).

    beta = (Z'Z)^(-1) Z'y with Z = [1, X]; R2 = 1 - sum(r^2) / sum((y - mean(y))^2); range_k = max(0, beta_k) - min(0, beta_k); RI_k = range_k / sum(range)

Try this function

Implementations

  • Excel

    Part-worth from mean ratings with AVERAGEIF

    With the ratings in Ratings and the attribute's 0 and 1 codes in WaitCode, the formula returns the part-worth, held in PartWorthWait; the same formula on LocalCode and NurseCode gives PartWorthLocal and PartWorthNurse, and the intercept, held in Intercept, is the predicted rating of the reference profile, =INDEX(LINEST(Ratings,AttributeCodes),1,4), the last value LINEST returns; it is not that profile's observed rating, which equals it here only by chance. =LINEST(Ratings,AttributeCodes) fits all attributes at once and returns the coefficients in reverse column order, intercept last.

    =AVERAGEIF(WaitCode,1,Ratings)-AVERAGEIF(WaitCode,0,Ratings)

Assumptions

  • Ratings treated as an interval scale in a ratings-based conjoint study

    Differences between ratings mean the same anywhere on the scale, which justifies least-squares estimation; with only ordinal judgements a nonmetric method is used instead.

  • Balanced orthogonal design for the mean-difference part-worth

    Levels and pairs of levels appear equally often, as in the eight-profile full factorial or an orthogonal fraction, so the attribute codes are uncorrelated and each mean difference equals the regression coefficient.

  • Additive part-worths without interactions

    The trade-off between two attributes does not depend on the levels of the others (preferential independence); a main-effects design assumes this and cannot estimate interactions.

Worked examples

  • Waiting time part-worth in the outpatient clinic example

    The four 12-week profiles average (3 + 4 + 2 + 4) / 4, or 3.25, and the four 4-week profiles (6 + 8 + 5 + 6) / 4, or 6.25, so the 12-week part-worth is minus 3.00, as in the article.

    Rbar_1 = 3.25; Rbar_0 = 6.25; b_k = -3
  • Local clinic part-worth in the outpatient clinic example

    Local profiles average 5.50 and hospital profiles 4.00, so the local part-worth is plus 1.50, as in the article.

    Rbar_1 = 5.5; Rbar_0 = 4; b_k = 1.5
  • Nurse-led clinic part-worth in the outpatient clinic example

    Nurse-led profiles average 4.25 and consultant-led profiles 5.25, so the nurse-led part-worth is minus 1.00, as in the article.

    Rbar_1 = 4.25; Rbar_0 = 5.25; b_k = -1

Common errors

  • Using mean differences when profiles are missing

    If profile 8 is dropped, the mean difference for a local clinic becomes 2.00 while least squares on the seven profiles gives 1.25 (computed here for illustration); unbalanced designs need the regression.

  • Comparing part-worths across attributes without their reference levels

    A part-worth is relative to its attribute's reference level; the nurse-led value of minus 1.00 says a consultant lead is worth 1.00 more, not that nurse-led care has negative value.

Sources

  • Part-worths from dummy variables by least squares when ratings are interval

    Hauser JR, Rao VR. Conjoint analysis, related modeling, and applications. In: Wind Y, Green PE, eds. Marketing Research and Modeling: Progress and Prospects. Boston, MA: Springer; 2004:141-168. doi:10.1007/978-0-387-28692-1_7 (read as the MIT open-access pre-publication version). Section Regression-Based Methods: if the preference judgement is an approximately interval scale, the part-worths can be represented by dummy variables and ordinary least-squares regression is a natural means to estimate them; if the data are only monotonic a stress criterion replaces least squares; regression requires at least as many observations as parameters. Section Have Mercy on the Respondents: an orthogonal design implicitly assumes preferential independence and does not allow any interactions to be estimated.

    View source →

  • Part-worth function model estimated by multiple regression

    Green PE, Srinivasan V. Conjoint analysis in marketing: new developments with implications for research and practice. Journal of Marketing. 1990;54(4):3-19. doi:10.1177/002224299005400402. Section Preference Models and Table 1: the part-worth function model (piecewise linear) is the most general of the vector, ideal point and part-worth models and estimates the most parameters; estimation methods include metric methods (multiple regression), nonmetric methods (LINMAP, MONANOVA) and choice-probability methods (logit, probit).

    View source →

Canonical Identity