par.ancova {PLRModels} | R Documentation |
Parametric analysis of covariance (based on linear models)
Description
This routine tests the equality of L
vector coefficients, (\beta_1, ..., \beta_L
), from samples {(Y_{ki}, X_{ki1},...,X_{kip})}
:
i=1,...,n
, k=1,...,L
, where:
\beta_k = (\beta_{k1},...,\beta_{kp})
is an unknown vector parameter and
Y_{ki} = X_{ki1}*\beta_{k1}+ ... + X_{kip}*\beta_{kp} + \epsilon_{ki}.
The random errors, \epsilon_{ki}
, are allowed to be time series. The test statistic used for testing the null hypothesis, H0: \beta_1 = ...= \beta_L
, derives from the asymptotic normality of the ordinary least squares estimator of \beta_k
(k=1,...,L
), this result giving a \chi^2
-test.
Usage
par.ancova(data = data, time.series = FALSE, Var.Cov.eps = NULL,
p.max = 3, q.max = 3, ic = "BIC", num.lb = 10, alpha = 0.05)
Arguments
data |
|
time.series |
it denotes whether the data is independent (FALSE) or if data is a time series (TRUE). The default is FALSE. |
Var.Cov.eps |
|
p.max |
if |
q.max |
if |
ic |
if |
num.lb |
if |
alpha |
if |
Details
If Var.Cov.eps=NULL
and the routine is not able to suggest an approximation for Var.Cov.eps
, it warns the user with a message saying that the model could be not appropriate and then it shows the results. In order to construct Var.Cov.eps
, the procedure suggested in Domowitz (1982) can be followed.
The implemented procedure particularizes the parametric test in the routine plrm.ancova
to the case where is known that the nonparametric components in the corresponding PLR models are null.
Value
A list with a dataframe containing:
Q.beta |
value of the test statistic. |
p.value |
p-value of the corresponding statistic test. |
Moreover, if data
is a time series and Var.Cov.eps
is not especified:
pv.Box.test |
p-values of the Ljung-Box test for the model fitted to the residuals. |
pv.t.test |
p-values of the t.test for the model fitted to the residuals. |
ar.ma |
ARMA orders for the model fitted to the residuals. |
Author(s)
German Aneiros Perez ganeiros@udc.es
Ana Lopez Cheda ana.lopez.cheda@udc.es
References
Domowitz, J. (1982) The linear model with stochastic regressors and heteroscedastic dependent errors. Discussion paper No 543, Center for Mathematical studies in Economic and Management Science, Northwestern University, Evanston, Illinois.
Judge, G.G., Griffiths, W.E., Carter Hill, R., Lutkepohl, H. and Lee, T-C. (1980) The Theory and Practice of Econometrics. Wiley.
Seber, G.A.F. (1977) Linear Regression Analysis. Wiley.
See Also
Other related functions are np.ancova
and plrm.ancova
.
Examples
# EXAMPLE 1: REAL DATA
data(barnacles1)
data <- as.matrix(barnacles1)
data <- diff(data, 12)
data <- cbind(data[,1],1,data[,-1])
data(barnacles2)
data2 <- as.matrix(barnacles2)
data2 <- diff(data2, 12)
data2 <- cbind(data2[,1],1,data2[,-1])
data3 <- array(0, c(nrow(data),ncol(data),2))
data3[,,1] <- data
data3[,,2] <- data2
par.ancova(data=data3)
# EXAMPLE 2: SIMULATED DATA
## Example 2a: dependent data - true null hypothesis
set.seed(1234)
# We generate the data
n <- 100
t <- ((1:n)-0.5)/n
beta <- c(0.05, 0.01)
x1 <- matrix(rnorm(200,0,1), nrow=n)
sum1 <- x1%*%beta
epsilon1 <- arima.sim(list(order = c(1,0,0), ar=0.7), sd = 0.01, n = n)
y1 <- sum1 + epsilon1
data1 <- cbind(y1,x1)
x2 <- matrix(rnorm(200,1,2), nrow=n)
sum2 <- x2%*%beta
epsilon2 <- arima.sim(list(order = c(0,0,1), ma=0.5), sd = 0.02, n = n)
y2 <- sum2 + epsilon2
data2 <- cbind(y2,x2)
data_eq <- array(cbind(data1,data2),c(100,3,2))
# We apply the test
par.ancova(data_eq, time.series=TRUE)
## Example 2a: dependent data - false null hypothesis
# We generate the data
n <- 100
beta3 <- c(0.05, 0.01)
beta4 <- c(0.05, 0.02)
x3 <- matrix(rnorm(200,0,1), nrow=n)
sum3 <- x3%*%beta3
epsilon3 <- arima.sim(list(order = c(1,0,0), ar=0.7), sd = 0.01, n = n)
y3 <- sum3 + epsilon3
data3 <- cbind(y3,x3)
x4 <- matrix(rnorm(200,1,2), nrow=n)
sum4 <- x4%*%beta4
epsilon4 <- arima.sim(list(order = c(0,0,1), ma=0.5), sd = 0.02, n = n)
y4 <- sum4 + epsilon4
data4 <- cbind(y4,x4)
data_neq <- array(cbind(data3,data4),c(100,3,2))
# We apply the test
par.ancova(data_neq, time.series=TRUE)