Learn R Programming

tvReg (version 0.5.0)

tvOLS: Time-Varying Ordinary Least Squares

Description

tvOLS estimate time-varying coefficient of univariate linear models using the kernel smoothing OLS.

Usage

tvOLS(x, ...)

# S3 method for matrix tvOLS( x, y, z = NULL, ez = NULL, bw, est = c("lc", "ll"), tkernel = c("Epa", "Gaussian"), singular.ok = TRUE, ... )

# S3 method for tvlm tvOLS(x, ...)

# S3 method for tvar tvOLS(x, ...)

# S3 method for tvvar tvOLS(x, ...)

Arguments

x

An object used to select a method.

...

Other arguments passed to specific methods.

y

A vector with dependent variable.

z

A vector with the variable over which coefficients are smooth over.

ez

(optional) A scalar or vector with the smoothing values. If values are included then the vector z is used.

bw

A numeric vector.

est

The nonparametric estimation method, one of "lc" (default) for linear constant or "ll" for local linear.

tkernel

The type of kernel used in the coefficients estimation method, one of Epanesnikov ("Epa") or "Gaussian".

singular.ok

Logical. If FALSE, a singular model is an error.

Value

tvOLS returns a list containing:

coefficients

A vector of length obs, number of observations time observations.

fitted

A vector of length obs with the fitted values from the estimation.

residuals

A vector of length obs with the residuals from the estimation.

See Also

bw for bandwidth selection, tvLM and tvAR.

Examples

Run this code
# NOT RUN {
tau <- seq(1:500)/500
beta <- data.frame(beta1 = sin(2*pi*tau), beta2 = 2*tau)
X <- data.frame(X1 = rnorm(500), X2 = rchisq(500, df = 4))
error <- rt(500, df = 10)
y <- apply(X*beta, 1, sum) + error
coef.lm <- stats::lm(y~0+X1+X2, data = X)$coef
coef.tvlm <-  tvOLS(x = as.matrix(X), y = y, bw = 0.1)$coefficients
plot(tau, beta[, 1], type="l", main="", ylab = expression(beta[1]), xlab = expression(tau),
ylim = range(beta[,1], coef.tvlm[, 1]))
abline(h = coef.lm[1], col = 2)
lines(tau, coef.tvlm[, 1], col = 4)
legend("topright", c(expression(beta[1]), "lm", "tvlm"), col = c(1, 2, 4), bty="n", lty = 1)

# }

Run the code above in your browser using DataLab