aiDynFit | R Documentation |
Estimate a dynamic AIDS model for a system.
aiDynFit(w, dum.dif = FALSE, AR1 = FALSE,
rho.sel = c("all", "mean"), ...)
w |
a object of class |
dum.dif |
a logical value (default of FALSE) of whether to take a difference on the dummy variables passed from |
AR1 |
whether first-degree autocorrelation should be corrected. |
rho.sel |
if |
... |
additional arguments to be passed. |
This estimates a dynamic AIDS model. The residuals from the statis AIDS model are included. As it is programmed now, only one lag is allowed for the share variables on the right-hand side. Autocorrelation in the residuals can be corrected following the treatment in Berndt (1975).
Return a list object of class "aiFit" and "aiDynFit" with the following components:
w |
a object of class |
y |
data for fitting the static AIDS model, passed down by |
dum.dif |
a logical value (default of FALSE) of whether to take a difference on the dummy variables passed from |
daDyn |
data for fitting the dynamic AIDS model. |
share |
names of shares by commodity, used as depedent variables. |
price |
names of prices by commodity, used as independent variables. |
expen |
names of expenditure variable. |
shift |
names of the shifters. |
omit |
names of the omitted share variable. |
nOmit |
position of the omitted share variable in the name of share variable. |
hom |
a logical value of homogeneity test. |
sym |
a logical value of symmetry test. |
nShare |
number of share variables. |
nExoge |
number of exogenous variables (lagged share, residual, expenditure, and shifters). |
nParam |
number of parameters in one equation. |
nTotal |
number of parameters in the whole system estimated. |
formula |
formula for estimating the system. |
res.matrix |
restriction matrix for |
res.rhs |
right-hand values for tests of |
est |
the dynamic AIDS model estimated. |
One method is defined as follows:
print
:print the first several observations of the final data.
Changyou Sun (edwinsun258@gmail.com)
Berndt, E.R., and N.E. Savin. 1975. Estimation and hypothesis testing in singular equation systems with autoregressive disturbances. Econometrica 43(5/6):937-957.
Wan, Y., C. Sun, and D.L. Grebner. 2010. Analysis of import demand for wooden beds in the United States. Journal of Agricultural and Applied Economics 42(4):643-658.
systemfitAR
; aiStaFit
; aiDiag
; aiElas
; summary.aiFit
.
# --- Step 1: Read data
data(daExp, daBedRaw, daBed)
# --- Step 2: Hausman Test
# 2.1 Getting started with a static AIDS model
sh <- c("sCN", "sVN", "sID", "sMY", "sCA", "sBR", "sIT", "sRW")
pr <- c("lnpCN", "lnpVN", "lnpID", "lnpMY",
"lnpCA", "lnpBR", "lnpIT", "lnpRW")
du3 <- c("dum1","dum2","dum3")
rSta <- aiStaFit(y = daBed, share = sh, price = pr, shift = du3,
expen = "rte", omit = "sRW", hom = TRUE, sym = TRUE)
summary(rSta)
# The following steps should work. It can take a few minutes.
# 2.2 The final Hausman test and new data
(dg <- daExp[, "dg"])
rHau <- aiStaHau(x = rSta, instr = dg, choice = FALSE)
names(rHau); colnames(rHau$daHau); colnames(rHau$daFit); rHau
two.exp <- rHau$daFit[, c("rte", "rte.fit")]
bsStat(two.exp, digits = 4)
plot(data.frame(two.exp)); abline(a = 0, b = 1)
daBedFit <- rHau$daFit
# --- Step 3: Static and dynamic AIDS models
# 3.1 Diagnostics and coefficients
hSta <- update(rSta, y = daBedFit, expen = "rte.fit")
hSta2 <- update(hSta, hom = FALSE, sym = FALSE)
hSta3 <- update(hSta, hom = FALSE, sym = TRUE)
hSta4 <- update(hSta, hom = TRUE, sym = FALSE)
lrtest(hSta2$est, hSta$est)
lrtest(hSta2$est, hSta3$est)
lrtest(hSta2$est, hSta4$est)
hDyn <- aiDynFit(hSta)
hDyn2 <- aiDynFit(hSta2); lrtest(hDyn2$est, hDyn$est)
hDyn3 <- aiDynFit(hSta3); lrtest(hDyn2$est, hDyn3$est)
hDyn4 <- aiDynFit(hSta4); lrtest(hDyn2$est, hDyn4$est)
(table.2 <- rbind(aiDiag(hSta), aiDiag(hDyn)))
(table.3 <- summary(hSta))
(table.4 <- summary(hDyn))
# 3.2 Elasticity calculation
es <- aiElas(hSta); esm <- es$marsh
ed <- aiElas(hDyn); edm <- ed$marsh
esm2 <- data.frame(c(esm[1:2, 2], esm[3:4, 3],
esm[5:6, 4], esm[7:8, 5], esm[9:10, 6], esm[11:12, 7],
esm[13:14, 8], esm[15:16, 9]))
edm2 <- data.frame(c(edm[1:2, 2], edm[3:4, 3],
edm[5:6, 4], edm[7:8, 5], edm[9:10, 6], edm[11:12, 7],
edm[13:14, 8], edm[15:16, 9]))
eEM <- cbind(es$expen, esm2, ed$expen[2], edm2)
colnames(eEM) <- c("Country", "LR.expen", "LR.Marsh",
"SR.expen", "SR.Marsh")
(table.5 <- eEM[-c(15:16),])
(table.6a <- es$hicks[-c(15:16), -9])
(table.6b <- ed$hicks[-c(15:16), -9])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.