Package 'prais'

Title: Prais-Winsten Estimator for AR(1) Serial Correlation
Description: The Prais-Winsten estimator (Prais & Winsten, 1954) takes into account AR(1) serial correlation of the errors in a linear regression model. The procedure recursively estimates the coefficients and the error autocorrelation of the specified model until sufficient convergence of the AR(1) coefficient is attained.
Authors: Franz X. Mohr [aut, cre] , Michael Škvrňák [ctb]
Maintainer: Franz X. Mohr <[email protected]>
License: GPL-2
Version: 1.1.3
Built: 2024-11-20 20:27:56 UTC
Source: https://github.com/franzmohr/prais

Help Index


Barium

Description

Monthly microeconomic data from the U.S. chemical industry from February 1978 to December 1988 as used in Krupp and Pollard (1996) and subsequently re-used by Wooldridge (2000) as a textbook dataset. Raw data was obtained from http://fmwww.bc.edu/ec-p/data/wooldridge/barium.dta.

Usage

data("barium")

Format

A data frame with 131 rows and 31 variables:

chnimp

Chinese imports, bar. chl.

bchlimp

Total imports, bar. chl.

befile6

Dummy varialbe, which is 1 for all six months before filing.

affile6

Dummy varialbe, which is 1 for all six months after filing.

afdec6

Dummy varialbe, which is 1 for all six months after decision

befile12

Dummy varialbe, which is 1 for all twelve months before filing.

affile12

Dummy varialbe, which is 1 for all twelve months after filing.

afdec12

Dummy varialbe, which is 1 for all twelve months after decision.

chempi

Chemical production index.

gas

Gasoline production.

rtwex

Exchange rate index.

spr

Dummy varialbe, which is 1 for spring months.

sum

Dummy varialbe, which is 1 for summer months.

fall

Dummy varialbe, which is 1 for fall months.

lchnimp

Log of chnimp.

lgas

Log of gas.

lrtwex

Log of rtwex.

lchempi

Log of chempi.

t

Time trend.

feb

Dummy varialbe for February.

mar

Dummy varialbe for March.

apr

Dummy varialbe for April.

may

Dummy varialbe for May.

jun

Dummy varialbe for June.

jul

Dummy varialbe for July.

aug

Dummy varialbe for August.

sep

Dummy varialbe for September.

oct

Dummy varialbe for October.

nov

Dummy varialbe for November.

dec

Dummy varialbe for December.

percchn

Percent of imports from China.

References

Krupp, C.M., & Pollard, P.S., (1996). Market responses to antidumpting laws: Some evidence from the U.S. chemical industry. Canadian Journal of Economics 29(1), 199–227. doi:10.2307/136159

Wooldridge, J., (2000). Instructional Stata datasets for econometrics. [barium]. Boston College Department of Economics.


Glance

Description

Glance

Usage

## S3 method for class 'prais'
glance(x, ...)

Arguments

x

an object of class 'prais', usually, the result of a call to prais_winsten.

...

additional arguments. Not used. Needed to match generic signature only. **Cautionary note:** Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95.

# load libraries for models and data library(prais) library(wooldridge) data("barium")

pw <- prais_winsten(lchnimp ~ lchempi + lgas + lrtwex + befile6 + affile6 + afdec6, data = barium, index = "t")

tidy(pw)

glance(pw)

See Also

[glance()], [prais::prais_winsten()]


Prais-Winsten Estimator for AR(1) Serial Correlation

Description

The Prais-Winsten estimator takes into account AR(1) serial correlation of the errors in a linear regression model. The procedure recursively estimates the coefficients and the error autocorrelation of the specified model until sufficient convergence of the AR(1) coefficient is reached. All estimates are obtained by OLS.

Usage

prais_winsten(
  formula,
  data,
  index,
  max_iter = 50L,
  tol = 1e-06,
  twostep = FALSE,
  panelwise = FALSE,
  rhoweight = c("none", "T", "T1"),
  ...
)

## S3 method for class 'prais'
print(x, digits = max(3L, getOption("digits") - 3L), ...)

Arguments

formula

an object of class "formula" (or one that can be coerced to that class): a symbolic description of the model to be fitted.

data

a data frame containing the variables in the model. If panel data is used, it must also contain the ID and time variables.

index

a character vector specifying the ID and time variables. If only one variable is provided, it is assumed to be the time variable and the data will be reordered accordingly.

max_iter

integer specifying the maximum number of allowed iterations. Default is 50.

tol

numeric specifying the maximum absolute difference between the estimator of rhorho in the current and the previous iteration that has to be attained to reach convergence. Default is 1e-6.

twostep

logical. If TRUE, the estimation will stop after the first iteration.

panelwise

logical. If TRUE, ρ\rho will be calculated for each panel separately. Default is FALSE. Only used for panel data. See 'Details'.

rhoweight

character specifying how ρ\rho should be calculated if panelwise = TRUE. See 'Details'.

...

arguments passed to lm.

x

an object of class "prais", usually, a result of a call to prais_winsten.

digits

the number of significant digits to use when printing.

Details

If ρ\rho takes a value above 1 during the estimation process, the Prais-Winsten transformation cannot be applied to the first observations, because (1ρ2)(1/2)(1 - \rho^2)^{(1 / 2)} is not real. These observations are dropped during the respective iteration and the estimator effectively becomes the Cochrane-Orcutt estimator.

If panelwise = TRUE, twostep = FALSE and rhoweight = "none", each individual estimate of rhorho is re-estimated until convergence is achieved for all coefficients.

If panelwise = TRUE, the calculation of ρ\rho can be further specified in argument rhoweight. If rhoweight = "none", ρ\rho is assumed to be panel-specific. If rhoweight = "T", ρ\rho is calculated as a weighted mean of panel-specific estimates, where the number of available observations per panel, i.e. TiT_i, is used as weight. If rhoweight = "T1", ρ\rho is calculated as a weighted mean of panel-specific estimates, where the number of available observations per panel minus one, i.e. Ti1T_i - 1, is used as weight.

Value

A list of class "prais" containing the following components:

coefficients

a named vector of coefficients.

rho

the values of the AR(1) coefficient ρ\rho from all iterations.

residuals

the residuals, that is the response minus the fitted values.

fitted.values

the fitted mean values.

rank

the numeric rank of the fitted linear model.

df.residual

the residual degrees of freedom.

call

the matched call.

terms

the terms object used.

model

the original model frame, i.e., before the Prais-Winsten transformation.

index

a character specifying the ID and time variables.

References

Beck, N. L. and Katz, J. N. (1995): What to do (and not to do) with time-series cross-section data. American Political Science Review 89, 634-647.

Prais, S. J. and Winsten, C. B. (1954): Trend Estimators and Serial Correlation. Cowles Commission Discussion Paper, 383 (Chicago).

Wooldridge, J. M. (2013): Introductory Econometrics. A Modern Approach. 5th ed. Mason, OH: South-Western Cengage Learning Cengage.

Examples

# Generate an artificial sample
set.seed(1234567)
n <- 100
x <- sample(20:40, n, replace = TRUE)
rho <- .5

# AR(1) errors
u <- rnorm(n, 0, 5)
for (i in 2:n) {
  u[i] <- u[i] + rho * u[i - 1]
}
pw_sample <- data.frame("x" = x, "y" = 10 + 1.5 * x + u, "time" = 1:n)

# Estimate
pw <- prais_winsten(y ~ x, data = pw_sample, index = "time")
summary(pw)

Summarising the Prais-Winsten Estimator

Description

Summary method for class "prais".

Usage

## S3 method for class 'prais'
summary(object, ...)

## S3 method for class 'summary.prais'
print(
  x,
  digits = max(3L, getOption("digits") - 3L),
  signif.stars = getOption("show.signif.stars"),
  ...
)

Arguments

object

an object of class "prais", usually, a result of a call to prais_winsten.

...

further arguments passed to or from other methods.

x

an object of class "summary.prais", usually, a result of a call to summary.prais.

digits

the number of significant digits to use when printing.

signif.stars

logical. If TRUE, 'significance stars' are printed for each coefficient.

Value

summary.prais returns a list of class "summary.prais", which contains the following components:

call

the matched call.

residuals

the residuals, that is the response minus the fitted values.

coefficients

a named vector of coefficients.

rho

the values of the AR(1) coefficient ρ\rho from all iterations.

sigma

the square root of the estimated variance of the random error.

df

degrees of freedom, a 3-vector (p, n-p, p*), the first being the number of non-aliased coefficients, the last being the total number of coefficients.

r.squared

R^2, the 'fraction of variance explained by the model',

R2=1(yiy^i)2(yiy)2,R^2 = 1 - \frac{\sum {(y_i - \hat{y}_i)^2}}{\sum {(y_i - \overline{y})^2}},

where y\overline{y} is the mean of yiy_i for yi=1,...,Ny_i = 1, ..., N if there is an intercept and zero otherwise.

adj.r.squared

the above R^2 statistic 'adjusted', penalising for higher p.

fstatistic

(for models including non-intercept terms) a 3-vector with the value of the F-statistic with its numerator and denominator degrees of freedom.

cov.unscaled

a p×pp \times p matrix of (unscaled) covariances of the coef[j], j=1, ..., p.

dw

a named 2-vector with the Durbin-Watson statistic of the original linear model and the Prais-Winsten estimator.

index

a character specifying the ID and time variables.


Tidy

Description

Tidy

Usage

## S3 method for class 'prais'
tidy(x, conf.int = FALSE, conf.level = 0.95, ...)

Arguments

x

an object of class 'prais', usually, the result of a call to prais_winsten.

conf.int

logical indicating whether or not to include a confidence interval in the tidied output. Defaults to FALSE.

conf.level

the confidence level to use for the confidence interval if conf.int = TRUE. Must be strictly greater than 0 and less than 1. Defaults to 0.95, which corresponds to a 95 percent confidence interval.

...

additional arguments. Not used. Needed to match generic signature only. **Cautionary note:** Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95.

# load libraries for models and data library(prais) library(wooldridge) data("barium")

pw <- prais_winsten(lchnimp ~ lchempi + lgas + lrtwex + befile6 + affile6 + afdec6, data = barium, index = "t")

tidy(pw)

glance(pw)


Semirobust Covariance Matrix Estimators

Description

Semirobust covariance matrix estimators for models of class "prais".

Usage

## S3 method for class 'prais'
vcovHC(x, type = c("const", "HC1", "HC0"), ...)

Arguments

x

an object of class "prais", usually, the result of a call to prais_winsten.

type

a character string specifying the estimation type.

...

not used.

Details

vcovHC is a function for estimating a robust covariance matrix of parameters for the Prais-Winsten estimator. The weighting schemes specified by type are analogous to those in vcovHC in package sandwich with the caveat that only "const", "HC0" and "HC1" are available.

Value

An object of class "matrix" containing the estimate of the asymptotic covariance matrix of coefficients.

See Also

vcovHC


Extract Panel-Corrected Variance Covariance Matrix

Description

Panel-corrected covariance matrix estimators for models of class "prais".

Usage

## S3 method for class 'prais'
vcovPC(x, pairwise = FALSE, ...)

Arguments

x

an object of class "prais", usually, the result of a call to prais_winsten.

pairwise

logical. If FALSE (default), only those residuals from periods that are common to all panels are used to computed the covariances. If TRUE all observations that can be matched by period between two panels are used.

...

not used.

Details

vcovPC is a function for estimating a panel-corrected covariance matrix of parameters for the Prais-Winsten estimator.

Value

An object of class "matrix".

References

Beck, N. L. and Katz, J. N. (1995): What to do (and not to do) with time-series cross-section data. American Political Science Review 89, 634-647.

See Also

vcovPC