NBDdirichlet (version 1.3)

summary.dirichlet: Theoretical summary statistics from the Dirichlet model.

Description

This function summarizes a 'dirichlet' object. It is a method for the generic function summary of class 'dirichlet'. It calculate four types of theoretical summary statistics, which can be compared with the corresponding observed statistics.

Usage

# S3 method for dirichlet
summary(object, t = 1, type = c("buy", "freq", "heavy", "dup"),
digits = 2, freq.cutoff = 5, heavy.limit = 1:6, dup.brand = 1, ...)

Arguments

object

An object of "dirichlet" class.

t

Multiple of the base time period. For example, if the assumed base time period is quarterly, then t=4 would mean annually. Default to one.

type

A character vector that specifies which types of theoretical statistics (during the time period indicated by t) are to be calculated. Four character strings can be listed:

buy

Theoretical brand penetration, buying rate, and the buying rate of the category per brand buyer.

freq

Distribution of the number of brand purchases.

heavy

Theoretical brand penetration and buying rate among category buyers with a specific frequency range.

dup

Brand duplication (proportion of buyers of a particular brand also buying other brand).

digits

Number of decimal digits to control the rounding precision of the reported statistics. Default to 2.

freq.cutoff

For the type="freq" table, where to cut off and lump the tail of the frequency distribution.

heavy.limit

For the type="heavy" table, a vector containing the specific purchase frequency range of the category buyers. The upper-bound of the frequency is nstar.

dup.brand

For the type="dup" table, the focal brand. Defaul to the first brand in the brand list.

...

Other parameters passing to the generic function.

Value

A list with those components that are specified by the input type parameter.

buy

A data frame with three components: pen.brand (Theoretical brand penetration), pur.brand (buying rate of the brand), pur.cat (buying rate of the category per brand buyer).

freq

A matrix that lists the distribution of brand purchases. The number of rows is the number of brands.

heavy

A matrix with two columns. The first column (Penetration) is the theoretical brand penetration among category buyers with a specific frequency range. The second column (Avg Purchase Freq) is the brand buying rate of those category buyers. The number of rows is the number of brands.

dup

A vector with dimension as the number of brands. It reports the brand duplication (proportion of buyers of a particular brand also buying other brand) of the focal brand (dup.brand).

Details

The output corresponds to the theoretical portion of the Table 3, 4, 5, 6 in the reference paper. We also have another set of functions (available upon request) that put observed and theoretical statistics together for making tables that resemble those in the reference.

Let \(P_n\) be the probability of a consumer buying the product category \(n\) times. Then \(P_n\) has a Negative Binomial Distribution (NBD). Let \(p(r_j|n)\) be the probability of making \(r_j\) purchases of brand \(j\), gien that \(n\) purchases of the category having been make (\(r_j\leq n\)). Then \(p(r_j|n)\) has a Beta-Binomial distribution.

The theoretical brand penetration \(b\) is then $$b = 1 - \sum_{n=0} P_n p(0|n)$$

The theoretical brand buying rate \(w\) is $$w = \frac{\sum_{n=1} \{ P_n \sum_{r=1}^n r p(r|n) \}}{b} $$ and the category buying rate per brand buyer \(w_P\) is $$w_P = \frac{\sum_{n=1} \{ n P_n [ 1 - p(0|n)] \}}{b} $$

The brand purchase frequency distribution is $$ f(r) = \sum_{n \geq r} P_n p(r|n) $$

The brand penetration given a specific category purchase frequency range \(R=\{i_1, i_2, i_3, \ldots\}\) is $$1 - \frac{\sum_{n \in R} P(n) p(0|n)}{\sum_{n \in R} P(n)}$$

The brand buying rate given a specific category purchase frequency range \(R=\{i_1, i_2, i_3, \ldots\}\) is $$\frac{\sum_{n \in R} P(n) [\sum_{r=1}^n r p(r|n)]}{\sum_{n \in R} P(n) [1 - p(0|n)] }$$

To calculate the brand duplication measure, we first get the penetration \(b_{(j+k)}\) of the "composite" brand of two brands \(j\) and \(k\) as: $$ b_{(j+k)} = 1 - \sum_n P_n p_k(0|n) p_j(0|n)$$ Then the theoretical proportion \(b_{jk}\) of the population buying both brands at least once is: $$b_{jk} = b_j + b_k - b_{(j+k)}$$ and the brand duplication \(b_{j/k}\) (where brand \(k\) is the focal brand) is: $$b_{j/k} = b_{jk} / b_k$$

References

The Dirichlet: A Comprehensive Model of Buying Behavior. G.J. Goodhardt, A.S.C. Ehrenberg, C. Chatfield. Journal of the Royal Statistical Society. Series A (General), Vol. 147, No. 5 (1984), pp. 621-655

See Also

dirichlet, print.dirichlet, plot.dirichlet, NBDdirichlet-package

Examples

Run this code
# NOT RUN {
cat.pen <- 0.56 # Category Penetration
cat.buyrate <- 2.6 # Category Buyer's Average Purchase Rate in a given period.
brand.share <- c(0.25, 0.19, 0.1, 0.1, 0.09, 0.08, 0.03, 0.02) # Brands' Market Share
brand.pen.obs <- c(0.2,0.17,0.09,0.08,0.08,0.07,0.03,0.02) # Brand Penetration
brand.name <- c("Colgate DC", "Macleans","Close Up","Signal","ultrabrite",
"Gibbs SR","Boots Priv. Label","Sainsbury Priv. Lab.")

dobj <- dirichlet(cat.pen, cat.buyrate, brand.share, brand.pen.obs, brand.name)

# }
# NOT RUN {
summary(dobj)
# }
# NOT RUN {
summary(dobj, t=4, type="freq")
summary(dobj, t=4, type="heavy", heavy.limit=c(7:50))
summary(dobj, t=1, type="dup", dup.brand=2)
# }

Run the code above in your browser using DataCamp Workspace