snqProfitEst( pNames, qNames, fNames = NULL, ivNames = NULL,
data, form = 0, base = 1,
weights = snqProfitWeights( pNames, qNames, data, "DW92", base = base ),
method = ifelse( is.null( ivNames ), "SUR", "3SLS" ), ... )
systemfit
).systemfit
snqProfitEst
containing following objects: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.
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
pNames <- c( "pOutput", "pVarInput", "pLabor" )
qNames <- c( "qOutput", "qVarInput", "qLabor" )
estResult <- snqProfitEst( pNames, qNames, "land", data = germanFarms )
estResult$ela # Oh, that looks bad!
# it it reasonable to account for technological progress
germanFarms$time <- c( 0:19 )
estResult2 <- snqProfitEst( pNames, qNames, c("land","time"), data=germanFarms )
estResult2$ela # Ah, that looks good!
Run the code above in your browser using DataLab