# Using Moving/Rolling Windows, here we do an OLS Regression with corrections
for #Heteroscedasticity and Autocorrelations (HAC) using Newey West Method.
This code is a #extension of Ajay Shah?s code for moving windows simple OLS
regression.
# The easiest way to adjust for Autocorrelations and Heteroscedasticity in the
OLS residuals is to #use the coeftest function that is included in the ?lmtest?
packages.
# The ?lmtest? package includes the coeftest (model, NeweyWest) command which
returns # the ?HAC? consistent estimators along with its standard error, t-stat
and pvalue.
# To implement the corrections for Heteroscedasticity and Autocorrelations for
a moving/rolling
# window OLS regression, here is the actual function:
#---------------------------------------------------------------------------------------------------------
>movingWindowRegression <- function(data, T, width, model, K) {
results = matrix(nrow=T, ncol=4*K)
for (i in width:T) {
details <-coeftest(lm(model,data[(i-width+1):i,]),NeweyWest)
n=1;
for (j in 1:K) {
results[i,n:(n+3)] = details[j, 1:4]
n=n+4
}
}
return(results)
}
#------------------------------------------------------------------------------------------------------
#STEP1: Install ?lmtest? package using library (lmtest).
#STEP 2: Copy and paste the function defined above into the console and submit
it.
# The function returns a matrix with T rows (You will find ?NA ?values on all
rows less than width.)
#The columns are organized as : beta1 se1 tstat1 pvalue1 beta2 se2 tstat2
pvalue2
# i.e. we have each coefficient followed by its s,e., t-stat and p-value. Note
that K is the no of #variables in the regression.
#STEP3: Get the results using
> r= movingWindowRegression(CAPM, 240, 60,Y~X1+X2,3)
# Here CAPM is the data set, T=240 monthly data, K =60 as we want to find the 5
year #(5*12=60) rolling regression with adjustment to Autocorrelations and
Heteroscedasticity
#and the model is Y~X1+X2.
# Note that if you want only the ?Heteroscedasticity-Consistent (HC) standard
errors? in the #moving/rolling window framework then install ?sandwich? package
and change the ?NeweyWest? # to ?sandwich? in the ?details? of the function.
# Please send your comments/suggestions to <[EMAIL PROTECTED]>[EMAIL PROTECTED]
# www.igidr.ac.in
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.