*! Help file ver 1.17 16May2018 for 1.23 of qscope by Shunjie Tu, Mead Over, and Svetlana Pivovarova

Title

qscope -- Estimate the classic or generalized economies of scope
from a multi-output cost function

Syntax

qscope
[if] [in]
,
[options]

Options

outputs(varlist)
List of the (untransformed) output variables. When -chain- and -chainrhs-
are blank, coefficients for these variables are expected in the retained
estimation results. When -chain- or -chainrhs- specifies a transformation,
coefficients of the transformations of these variables are
expected in the retained estimation results. Required >=2.

depvar(varname) Dependent variable from the estimated cost function in memory. Must be specified for multi-equation estimation.

epsilon(numlist) A list of the values of epsilon for which QSCOPE is to be evaluated.
Each value in the list must be between 0 and 1/K,
where K is the number of outputs.
The default is 0, which reduces QSCOPE to the traditional SCOPE measure.

chain(string) The transformation (-ln-, -log10-, -sqrt-, -boxcox- or none) on both cost and outputs.

chainlhs(string) The transformation on cost. May be left blank if the option chain(string) is defined.

chainrhs(string) The transformation on outputs. May be left blank if the option chain(string) is defined.

lambda(real) The parameter for Box-Cox transformation on outputs; default is 0,
which is equivalent to -ln- transformation.

reference(stat) The reference point in the sample space of firm outputs at which the economies of scope will be estimated.
Eligible choices for stat are mean min max p1 p5 p10 p25 p50 p75 p90 p95 p99.
Select only one of these alternatives. The statistic is computed on the raw
variable, not on the transformed version that may appear in the regression.
The default statistic is mean.

reference(numlist) As an alternative to choosing the reference
vector of outputs as a statistic like the mean or 75th percentile,
common to all outputs, the user may specify the reference firm for which
economies of scope are calculated by providing a list of the numerical values
of each of the outputs. If there are K outputs listed in the outputs(varlist)
option, there must be K values in the numlist.

contstat(stat) For the calculation of qscope,
all continuous right-hand-side variables not listed
in the outputs(varlist) option are set equal to a value determined by
this statistic. When these variables have been transformed by e.g. a natural log
or square-root function, the statistic is computed on the transformed,
not the raw variable. The default statistic is mean.

fvstat(stat) For the calculation of qscope,
all discrete right-hand-side variables specified using factor variable syntax
are set equal to a value determined by this statistic. The margins command
prefers that factor variables be set to their mean.
The default statistic is mean.

df(real) User-specified number of degrees of freedom for calculating the p-value
of a test of the hypothesis that the value of qscope is zero,
using a two-tailed t-test. The default is 9999, equivalent to the
assumption that the deviation of qscope from zero is distributed normally.

verbose Report the results of each execution of the margins command
and print the r(spec_outputs) and the r(spec_tc) matrices which show the mechanics
of computing the elasticity of scope.

spec1(string) - spec5(string) The speck option
allows the user to specify additional at(spec) specification(s)
which apply only to the firm specializing in the k'th output.
For example, if the cost function contains a dummy variable which
equals one only for the k'th specialized firm,
then this option could be used to set that dummy to 1.0 for
the k'th firm and to 0.0 for other firm types.
Allows up to five specifications that must come in the same order as the outputs in outputs.

joint(string) at(spec) specification for the margins command for the joint production
when specialized inputs or dummy variables are present.

* Any additional options are passed through to the margins command.
Potentially useful margins options include force, noesample, etc.
See margins.

allset options undocumented.

Description

This program, qscope, is a post-estimation utility
to be executed after the user has estimated a K-output cost function
which is linear in the parameters.
qscope computes both the classic Baumol, Panzar and Willig (1982)
definition of economies of scope (when the user includes zero among the values
of the option epsilon(numlist)) and the Pulley and Humphrey (1991)
generalization of that index (for values of epsilon(numlist)
between zero and 1/K). Thus qscope can be applied to a variety of
flexible cost functions, including functions with permit firms to
specialize in only one output (like the generalized translog, the generalized
Leontief and the quadratic) and those that do not (the translog and Cobb-Douglas).

Discussion

As originally defined by Baumol, Panzar and Willig (1982, p. 71-75),
economies of scope consist of the cost-saving in producing specified amounts of
K outputs in a single firm rather than in K separate firms, each of which is
specialized in only one of the K outputs. Consider a sample of N multiproduct firms
each of which produces one or more of the K outputs. Suppose that the technology
of production for all the firms can be characterized by a multiproduct cost function
written as C(Y1, Y2, ..., Yk, ..., YK; X), where Yk is the quantity produced of the
k'th output and X is the vector of other determinants of cost including factor prices
and other firm characteristics. Choose a point in sample space at which to
evaluate the economies of scope. For example, one could choose as the reference point
the mean or the median of the vectors Y and X. Designate the vectors of the elements
of Y and X at that reference point by Yr and Xr, with typical elements Ykr and Xkr.
Thus, total cost C(Yr; Xr) denotes the total cost of producing
the reference quantity of all K outputs in the same firm.

Define a vector Y_rk as a vector of dimension K consisting entirely of zeros except
for its k'th element, which is equal to the reference level of k'th output. Thus,
Y_r1 = (Y1r, 0, 0, ...,0) and Y_rK = (0, 0, ..., YKr). With this notation,
the cost of producing the reference quantity of output k in a firm specializing in
that output and facing the reference levels of all other determinants is designated
C(Y_rk,Xr). Thus, the total cost of producing the entire reference vector of outputs
in K separate and specialized firms, Cs, can be written:

Cs(Yr; Xr) = Sum over k of C(Y_rk; Xr)

Economies of scope are achieved at the reference point in sample space if
joint production of the K outputs in the same firm is cheaper than
specialized production of the K outputs in K separate firms, that is if

C(Yr; Xr) < Cs(Yr; Xr).

Baumol, Panzar and Willig (1982, p. 71) define the above condition as strong economies of scope
while equality between the aggregate cost of the specialized firms and the joint
cost is defined as weak economies of scope. Of course it is also possible that
the cost of joint production would exceed the aggregate cost of the specialized
firms. In that case the production technology manifests diseconomies of scope.

Baumol, Panzar and Willig (1982, Definition 4B2, p. 73) propose a measure of the
magnitude of economies of scope, which in our notation can be written:

SCOPE(Yr; Xr) = [Cs(Yr;Xr) - C(Yr;Xr)]/C(Yr;Xr)

Values greater than zero indicate economies of scope, while values less than zero
indicate diseconomies of scope.

Computation of the Baumol, Panzar and Willig index, SCOPE(Yr;Xr),
on an estimated cost function requires the cost function to
be well-defined not only for a firm facing Xr and jointly producing Yr,
but also for a firm producing zero units of all but one of the outputs.
This condition is not met by the translog multiple output cost function,
because the log of zero is undefined. To address this problem,
Pulley and Humphrey (1991) propose a generalized measure
of economies of scope which they call "QSCOPE".

Let the constant e lie in the interval 0 < e < 1/K.
Define Yke as a proportion of the reference value of Yk,
Ykr, such that Yke = e * Ykr.
Then define the constant Ykm1e = [1 - (K-1)*e] * Ykr.
The total reference amount of the k'th output, Ykr, can be distributed across
the K firms, such that the almost specialized firm produces Ykm1e of the output,
while K-1 other firms each produce Yke of that output,
and thus Ykr = Ykm1e + (K - 1) * Yke .
Typical values of e are small, so that most of the k'th output
is produced by the almost specialized firm.
With these definitions, the vector, Y_ek, is
defined as consisting of the proportion e of all the reference output levels
except for the k'th, which contains Ykm1e.
For example, firms that are almost specialized in producing outputs k=1 or k=K
would have output vectors Y_e1 = (Y1m1e, Y2e, Y3e, ...,YKe) or Y_eK = (Y1e, Y2e, ...,YKm1e),
respectively.

The aggregate cost of producing all K outputs in almost specialized firms
can be defined as:

Cse(Yr; Xr | e) = Sum over k of C(Y_ek; Xr)

Using this definition, Pulley and Humphrey's generalized measure of
economies of scope can be written:

QSCOPE(Yr; Xr | e) = [Cse(Yr;Xr | e) - C(Yr;Xr)]/C(Yr;Xr)

Examples

The examples require that the latest version of the program flexmake
already be installed. After using cost data from a sample of 161 health
care facilities producing antiretroviral therapy (ART) in Africa, the examples
use flexmake to prepare the data for estimating a translog cost function
to characterize this production process. The two outputs are person-years
of ART and person-years of pre-ART care.

Example 1. Generalized economies of scope for a translog cost function.

After reading and preparing the data, the first example uses
regress to estimate a translog cost function and then computes several point
estimates of "QSCOPE" and their standard errors. The "QSCOPE" measure
is estimated for two different values of epsilon, 0.1 and 0.01,
and at two different reference points in sample space, the point of means and
the point of medians. (click to run)

Example 2. Sensitivity of QSCOPE results to using sureg instead of regress.

This second example changes only the approach to estimating the translog parameters.
When the the translog cost function is estimated jointly with its factor share equations
and the cross-equation constraints consistent with economic theory are imposed,
the estimates of economies of scope are affected. (click to run)

Stored Results

qscope returns the following results:

scalars:
r(totalcost) : Value of joint cost common to all epsilon values
r(df) : Degrees of freedom used to compute the p-value
r(p) : p-value for test that qscope is different from zero
r(noutputs) : total number of output variables specified. Must be >= 2.
r(lambda) : Value of lambda assumed to unwind a boxcox transformation
r(last_eps) : Value of the last epsilon in the list
r(sum_spclzd) : Value of specialized cost for the last epsilon
r(last_qscope) : Estimated value of qscope for the last epsilon
r(se) : Estimated standard error of qscope

macros:
r(statsum) : Corresponding statistic used in the summarize command
r(epsilon) : List of values of epsilon

matrices:
r(qscope) : Matrix of results for all values of epsilon
r(spec_tc) : Total cost for producing each specialized output
r(spec_outputs) : Outputs produced by each specialized firm

References

Baumol, W.J., Panzar, J. and Willig, R. (1982).
Contestable markets and the theory of industrial structure.
Harcout Brace Javanovich Ltd., New York.

Pulley, L. B., & Humphrey, D. B. (1991). "Scope economies: Fixed costs,
complementarity, and functional form".
Federal Reserve Bank of Richmond Working Paper, (91-3).

Pulley, L. B. and Y. M. Braunstein (1992). "A composite cost function for
multiproduct firms with an application to economies of scope in banking",
Review of Economics and Statistics, 74(2), 221-30.

Authors

Shunjie Tu wrote the first version of this program during August of 2016,
while working at CGD. Mead Over and Svetlana Pivovarova have made subsequent revisions.

Contact Mead Over at:
Email: MOver@CGDev.Org if you observe any
problems.