aidsEst {micEcon} | R Documentation |
aidsEst
does a full demand analysis with the Almost Ideal
Demand System (AIDS): econometric estimation, calculation
of elasticities, ...
aidsEst( pNames, wNames, xtName, data = NULL, ivNames = NULL, qNames = wNames, method = "LA:L", hom = TRUE, sym = TRUE, elaFormula = "Ch", pxBase, estMethod = ifelse( is.null( ivNames ), "SUR", "3SLS" ), maxiterMk = 50, tolMk = 1e-5, alpha0 = 0, ... )
pNames |
a vector of strings containing the names of prices. |
wNames |
a vector of strings containing the names of expenditure shares. |
xtName |
a name of the total expenditure variable. |
data |
a data frame containing the data. |
ivNames |
a vector of strings containing the names of instrumental variables. |
qNames |
an optional vector of strings containing the names of the quantities (just to label elasticities). |
method |
the method to estimate the aids (see details). |
hom |
should the homogeneity condition be imposed? |
sym |
should the symmetry condition be imposed? |
elaFormula |
the elasticity formula (see aidsEla ). |
pxBase |
The base to calculate the LA-AIDS price indices
(see aidsPx ). |
estMethod |
estimation method (e.g. "SUR",
see systemfit ). |
maxiterMk |
maximum number of iterations of the Michalek and Keyzer estimation. |
tolMk |
tolerance level of the Michalek and Keyzer iteration. |
alpha0 |
the intercept of the translog price index (α_0). |
... |
arguments passed to systemfit . |
At the moment two basic estimation methods are available:
The 'Linear Approximate AIDS' (LA) and the iterative estimation method
of Michalek and Keyzer (MK).
The LA-AIDS can be estimated with
* Stone price index ('LA:S'),
* Stone price index with lagged shares ('LA:SL'),
* loglinear analogue to the Paasche price index ('LA:P'),
* loglinear analogue of the Laspeyres price index ('LA:L'), and
* Tornqvist price index ('LA:T').
The iterative estimation method of Michalek and Keyzer needs starting values for the (translog) price index. Which price index is used to calculate the initial price index can be specified in the same way as for the LA-AIDS (e.g. 'MK:L')
a list of class aidsEst
containing following objects:
coef |
a list containing the vectors/matrix of the estimated coefficients (alpha = α_i, beta = β_i, gamma = gamma_{ij}. |
ela |
a list containing the elasticities
(see aidsEla ). |
r2 |
R^2-values of all budget share equations. |
r2q |
R^2-values of the estimated quantities. |
wFitted |
fitted budget shares. |
wResid |
residuals of the budget shares. |
qObs |
observed quantities / quantitiy indices. |
qFitted |
fitted quantities / quantitiy indices. |
qResid |
residuals of the estimated quantities. |
iter |
iterations of SUR/3SLS estimation a vector containing the iterations of each iteration of the Michalek and Keyzer estimation. |
iterMk |
iterations of the Michalek and Keyzer estimation. |
method |
the method used to estimate the aids (see details). |
lnp |
log of the price index used for estimation. |
hom |
was the homogeneity condition imposed? |
sym |
was the symmetry condition imposed? |
estMethod |
estimation method (see systemfit ). |
rcovformula |
formula used to calculate the estimated residual
covariance matrix (see systemfit ). |
Arne Henningsen ahenningsen@agric-econ.uni-kiel.de
Deaton, A.S. and J. Muellbauer (1980) An Almost Ideal Demand System. American Economic Review, 70, p. 312-326.
Michalek, J. and M. A. Keyzer (1992) Estimation of a two-stage LES-AIDS consumer demand system for eight EC countries. European Review of Agricultural Economics, 19 (2), p. 137-163.
## Repeating the demand analysis of Blanciforti, Green & King (1986) data( Blanciforti86 ) estResult <- aidsEst( c( "pFood1", "pFood2", "pFood3", "pFood4" ), c( "wFood1", "wFood2", "wFood3", "wFood4" ), "xFood", data = Blanciforti86, method = "LA:SL", elaFormula = "Ch", maxiter = 1, rcovformula = 1, tol = 1e-7 ) print( estResult ) ## Repeating the evaluation of different elasticity formulas of ## Green & Alston (1990) data( Blanciforti86 ) pNames <- c( "pFood1", "pFood2", "pFood3", "pFood4" ) wNames <- c( "wFood1", "wFood2", "wFood3", "wFood4" ) # AIDS estResultA <- aidsEst( pNames, wNames, "xFood", data = Blanciforti86[ 2:nrow( Blanciforti86 ), ], maxiter = 1, elaFormula = "AIDS", rcovformula=1, tol=1e-7, method = "MK:L" ) print( diag( estResultA$ela$marshall ) ) # LA-AIDS + formula of AIDS estResultL1 <- aidsEst( pNames, wNames, "xFood", data = Blanciforti86, maxiter = 1, elaFormula = "AIDS", rcovformula=1, tol=1e-7, method = "LA:SL" ) print( diag( estResultL1$ela$marshall ) ) # LA-AIDS + formula of Eales + Unnevehr estResultL2 <- aidsEst( pNames, wNames, "xFood", data = Blanciforti86, maxiter = 1, elaFormula = "EU", rcovformula=1, tol=1e-7, method = "LA:SL" ) print( diag( estResultL2$ela$marshall ) ) # LA-AIDS + formula of Chalfant: estResultL3 <- aidsEst( pNames, wNames, "xFood", data = Blanciforti86, maxiter = 1, elaFormula = "Ch", rcovformula=1, tol=1e-7, method = "LA:SL" ) print( diag( estResultL3$ela$marshall ) )