snqProfitEst {micEcon} | R Documentation |
Estimation of a Symmetric Normalized Quadratic (SNQ) Profit function.
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" ), ... )
priceNames |
a vector of strings containing the names of netput prices. |
quantNames |
a vector of strings containing the names of netput quantities (inputs must be negative). |
fixNames |
an optional vector of strings containing the names of the quantities of (quasi-)fixed inputs. |
instNames |
an optional vector of strings containing the names of instrumental variables (for 3SLS estimation). |
data |
a data frame containing the data. |
form |
the functional form to be estimated (see details). |
base |
the base period(s) for scaling prices (see details). |
scalingFactors |
factors to scale prices (see details). |
weights |
vector of weights of the prices for normalization. |
method |
the estimation method (passed to
systemfit ). |
... |
arguments passed to systemfit |
The Symmetric Normalized Quadratic (SNQ) profit function is defined as
follows (this functional form is used if argument form
equals 0):
π ( p, z ) = sum_{i=1}^{n} α_{i} p_{i} + frac{1}{2} w^{-1} sum_{i=1}^{n} sum_{j=1}^{n} β_{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 π = 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
α_i, β_{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} = <=ft. partial π right/ partial p_{i} ):
x_{i} = α_{i} + w^{-1} sum_{j=1}^{n} β_{ij} p_{j} - frac{1}{2} theta_{i} w^{-2} sum_{j=1}^{n} sum_{k=1}^{n} β_{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):
π ( p, z ) = sum_{i=1}^{n} α_{i} p_{i} + frac{1}{2} w^{-1} sum_{i=1}^{n} sum_{j=1}^{n} β_{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} = α_{i} + w^{-1} sum_{j=1}^{n} β_{ij} p_{j} - frac{1}{2} theta_{i} w^{-2} sum_{j=1}^{n} sum_{k=1}^{n} β_{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.
a list of class snqProfitEst
containing following objects:
coef |
a list containing the vectors/matrix of the estimated
coefficients: * alpha = α_i. * beta = β_{ij}. * delta = delta_{ij} (only if quasi-fix inputs are present). * gamma = gamma_{ij} (only if quasi-fix inputs are present). * allCoef = vector of all coefficients. * allCoefCov = covariance matrix of all coefficients. * stats = all coefficients with standard errors, t-values and p-values. * liCoef = vector of linear independent coefficients. * liCoefCov = covariance matrix of linear independent coefficients. |
ela |
a list of class snqProfitEla that contains
(amongst others) the price elasticities at mean prices and mean
quantities (see snqProfitEla ). |
fixEla |
matrix of the fixed factor elasticities at mean prices and mean quantities. |
hessian |
hessian matrix of the profit function with respect to prices evaluated at mean prices. |
convexity |
logical. Convexity of the profit function. |
r2 |
R^2-values of all netput equations. |
est |
estimation results returned by systemfit . |
weights |
the weights of prices used for normalization. |
normPrice |
vector used for normalization of prices. |
data |
data frame of originally supplied data. |
fitted |
data frame that contains the fitted netput quantities and the fitted profit. |
pMeans |
means of the scaled netput prices. |
qMeans |
means of the scaled netput quantities. |
fMeans |
means of the (quasi-)fixed input quantities. |
priceNames |
a vector of strings containing the names of netput prices. |
quantNames |
a vector of strings containing the names of netput quantities (inputs must be negative). |
fixNames |
an optional vector of strings containing the names of the quantities of (quasi-)fixed inputs. |
instNames |
an optional vector of strings containing the names of instrumental variables (for 3SLS estimation). |
form |
the functional form (see details). |
base |
the base period(s) for scaling prices (see details). |
weights |
vector of weights of the prices for normalization. |
scalingFactors |
factors to scale prices (and quantities). |
method |
the estimation method. |
Arne Henningsen
Diewert, W.E. and T.J. Wales (1987) Flexible functional forms and global curvature conditions. Econometrica, 55, p. 43-68.
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!