snqProfitEst( priceNames, quantNames, fixNames = NULL, instNames = NULL,
data, form = 0, base = 1, scalingFactors = NULL,
weights = snqProfitWeights( priceNames, quantNames, data, "DW92", base = base ),
method = ifelse( is.null( instNames ), "SUR", "3SLS" ), ...)
systemfit
).systemfit
snqProfitEst
containing following objects:snqProfitEla
that contains
(amongst others) the price elasticities at mean prices and mean
quantities (see snqProfitEla
).systemfit
.form
equals 0):
$$\pi \left( p, z \right) =
\sum_{i=1}^{n} \alpha_{i} p_{i} +
\frac{1}{2} w^{-1} \sum_{i=1}^{n} \sum_{j=1}^{n} \beta_{ij} p_{i} p_{j} +
\sum_{i=1}^{n} \sum_{j=1}^{m} \delta_{ij} p_{i} z_{j} +
\frac{1}{2} w \sum_{i=1}^{m} \sum_{j=1}^{m} \gamma_{ij} z_{i} z_{j}$$
with $\pi$ = profit, $p_i$ = netput prices,
$z_i$ = quantities of fixed inputs,
$w=\sum_{i=1}^{n}\theta_{i}p_{i}$ = price index for normalization,
$\theta_i$ = weights of prices for normalization, and
$\alpha_i$, $\beta_{ij}$, $\delta_{ij}$ and
$\gamma_{ij}$ = coefficients to be estimated.
The netput equations (output supply in input demand) can be obtained
by Hotelling's Lemma ($q_{i} = \left. \partial \pi \right/ \partial p_{i}$):
$$x_{i} = \alpha_{i} +
w^{-1} \sum_{j=1}^{n} \beta_{ij} p_{j} -
\frac{1}{2} \theta_{i} w^{-2} \sum_{j=1}^{n} \sum_{k=1}^{n}
\beta_{jk} p_{j} p_{k} +
\sum_{j=1}^{m} \delta_{ij} z_{j} +
\frac{1}{2} \theta_{i} \sum_{j=1}^{m} \sum_{k=1}^{m} \gamma_{jk} z_{j} z_{k}$$
In my experience the fit of the model is sometimes not very good,
because the effect of the fixed inputs is forced to be proportional
to the weights for price normalization $\theta_i$.
In this cases I use following extended SNQ profit function
(this functional form is used if argument form
equals 1):
$$\pi \left( p, z \right) =
\sum_{i=1}^{n} \alpha_{i} p_{i} +
\frac{1}{2} w^{-1} \sum_{i=1}^{n} \sum_{j=1}^{n} \beta_{ij} p_{i} p_{j} +
\sum_{i=1}^{n} \sum_{j=1}^{m} \delta_{ij} p_{i} z_{j} +
\frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{m} \sum_{k=1}^{m}
\gamma_{ijk} p_i z_{j} z_{k}$$
The netput equations are now:
$$x_{i} = \alpha_{i} +
w^{-1} \sum_{j=1}^{n} \beta_{ij} p_{j} -
\frac{1}{2} \theta_{i} w^{-2} \sum_{j=1}^{n} \sum_{k=1}^{n}
\beta_{jk} p_{j} p_{k} +
\sum_{j=1}^{m} \delta_{ij} z_{j} +
\frac{1}{2} \sum_{j=1}^{m} \sum_{k=1}^{m} \gamma_{ijk} z_{j} z_{k}$$ The prices are scaled that they are unity in the base period or - if there
is more than one base period - that the
means of the prices over the base periods are unity.
The argument base
can be either
(a) a single number: the row number of the base prices,
(b) a vector indicating several observations: The means of these
observations are used as base prices,
(c) a logical vector with the same length as the data
: The
means of the observations indicated as 'TRUE' are used as base prices, or
(d) NULL
: prices are not scaled.
If the scaling factors are explicitly specified (argument 'scalingFactors'),
the argument 'base' is ignored.
Diewert, W.E. and T.J. Wales (1992) Quadratic Spline Models for Producer's Supply and Demand Functions. International Economic Review, 33, p. 705-722.
Kohli, U.R. (1993) A symmetric normalized quadratic GNP function and the US demand for imports and supply of exports. International Economic Review, 34, p. 243-255.
snqProfitEla
and snqProfitWeights
.data( germanFarms )
germanFarms$qOutput <- germanFarms$vOutput / germanFarms$pOutput
germanFarms$qVarInput <- -germanFarms$vVarInput / germanFarms$pVarInput
germanFarms$qLabor <- -germanFarms$qLabor
priceNames <- c( "pOutput", "pVarInput", "pLabor" )
quantNames <- c( "qOutput", "qVarInput", "qLabor" )
estResult <- snqProfitEst( priceNames, quantNames, "land", data = germanFarms )
estResult$ela # Oh, that looks bad!
# it it reasonable to account for technological progress
germanFarms$time <- c( 0:19 )
estResult2 <- snqProfitEst( priceNames, quantNames, c("land","time"), data=germanFarms )
estResult2$ela # Ah, that looks good!
Run the code above in your browser using DataLab