| opm | R Documentation |
opm is used to fit orthogonal panel models.
opm(x, ...) ## Default S3 method: opm(x, y, n.samp, add.time.indicators = FALSE, ...) ## S3 method for class 'formula' opm(x, data = environment(x), subset = NULL, index = 1:2, n.samp, ...)
x |
a formula (see description of parameter |
... |
further arguments passed to other methods. |
y |
a matrix of dimensions |
n.samp |
number of samples to use to estimate the parameters. |
add.time.indicators |
(logical) if |
data |
an optional data frame, list, or environment containing
the variables in the model. If not found in |
subset |
an optional vector specifying a subset of observations to be used in the fitting process. |
index |
a two-element vector containing the index of the case and time variables, respectively. Variable indices can be specifed by name or position. This argument is ignored if the model is not specified by the formula, because the index is implicit in the organization of the terms and response arrays. |
The model can be either specified symbolically with the formula
response ~ term1 + term2 ... or with the terms and response
given as a pair of 3- and 2-dimensional arrays, x and
y respectively. The arrays have to be in the format
time x variable x case for terms and time x case for
the response.
The lagged dependent variable does not need to be included in the formula or data, as it is included automatically.
An object of class opm with the following elements:
samplesparameter samples used to estimate the model, as a list with following elements:
rhoa vector of n.samp samples of ρ.
va vector of n.samp samples of \frac{1}{σ^2}.
betaan n.samp x variable matrix of samples of β.
callthe matched call
indexthe index variables, when using the formula interface
time.indicatorsTRUE if dummy time variables are used (see Notes), FALSE otherwise
termsthe terms object used
The function summary (i.e., summary.opm) can be used
to obtain or print a summary of the results. The generic accessor
functions coefficients, fitted.values,
residuals, logLik, and df.residual can be used
to extract various useful features of the value returned by opm.
Dummy time variables exist as an additional column for each
wave of data, excluding the first and second wave (i.e., at
t=0 and t=1 using the terminology from Lancaster
(2000)). The new variables are named tind.t, where
t = 2, ..., and appear as such as elements of the estimated
beta coefficient.
set.seed(123)
N <- 5
T <- 2
beta <- .5
rho <- .5
v <- 1
f <- runif(N, -2, 2)
K <- length(beta)
beta <- matrix(beta, K, 1)
## $x_i = 0.75 f + N(0, 1)$:
x <- array(.75*f, dim=c(N, K, (T+1))) + rnorm(N*K*(T+1))
## $y_{i,t} = \rho y_{i,t-1} + \beta x_{i,t} + f_i + N(0,1)$:
y <- matrix(0, N, T+1)
for (t in seq_len(T+1)) {
yy <- if (t>1) y[,t-1] else 0
y[,t] <- rho * yy + f + x[,,t] %*% beta + rnorm(N, sd = sqrt(1/v))
}
d <- data.frame(i = rep(seq(N), T+1),
t = rep(seq(T+1), each = N),
as.data.frame(matrix(aperm(x, c(1, 3, 2)), N*(T+1), K,
dimnames = list(NULL, paste0('x', seq(K))))),
y = c(y))
opm(y~x1, d, n.samp = 10)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.