# par.ancova: Parametric analysis of covariance (based on linear models) In PLRModels: Statistical inference in partial linear regression models

## Description

This routine tests the equality of L vector coefficients, (β_1, ..., β_L), from samples {(Y_{ki}, X_{ki1},...,X_{kip})}: i=1,...,n, k=1,...,L, where:

β_k = (β_{k1},...,β_{kp})

is an unknown vector parameter and

Y_{ki} = X_{ki1}*β_{k1}+ ... + X_{kip}*β_{kp} + ε_{ki}.

The random errors, ε_{ki}, are allowed to be time series. The test statistic used for testing the null hypothesis, H0: β_1 = ...= β_L, derives from the asymptotic normality of the ordinary least squares estimator of β_k (k=1,...,L), this result giving a χ^2-test.

## Usage

 ```1 2``` ```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` `data[, 1, k]` contains the values of the response variable, Y_k, for each model k (k=1, ..., L); `data[, 2:(p+1), k]` contains the values of the explanatory variables, X_{k1}, ..., X_{kp}, for each model k (k=1, ..., L). `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` `Var.Cov.eps[, , k]` contains the `n x n` matrix of variances-covariances associated to the random errors of the regression model k (k=1, ..., L). If NULL (the default), the function tries to estimate it: it fits an ARMA model (selected according to an information criterium) to the residuals from the fitted linear regression model and, then, it obtains the var-cov matrix of such ARMA model. `p.max` if `Var.Cov.eps=NULL`, the ARMA models are selected between the models ARMA(p,q) with 0<=p<=p.max and 0<=q<=q.max. The default is 3. `q.max` if `Var.Cov.eps=NULL`, the ARMA models are selected between the models ARMA(p,q) with 0<=p<=p.max and 0<=q<=q.max. The default is 3. `ic` if `Var.Cov.eps=NULL`, `ic` contains the information criterion used to suggest the ARMA models. It allows us to choose between: "AIC", "AICC" or "BIC" (the default). `num.lb` if `Var.Cov.eps=NULL`, it checks the suitability of the ARMA models according to the Ljung-Box and the t.test. It uses up to `num.lb` delays in the Ljung-Box test. The default is 10. `alpha` if `Var.Cov.eps=NULL`, `alpha` contains the significance level (default is 0.05) which the ARMA models are checked.

## 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 [email protected]

Ana Lopez Cheda [email protected]

## 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.

Other related functions are `np.ancova` and `plrm.ancova`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68``` ```# 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) ```