On Fri, 26 Jun 2009, Liviu Andronic wrote:

On Fri, Jun 26, 2009 at 10:11 PM, Susan Chen<suen...@yahoo.com> wrote:
Does anyone know how to report heteroskedasticity and autocorrelation-consistent standard 
errors when using the "spm" command in SemiPar package? Suppose the original 
command is
sp1<-spm(y~x1+x2+f(x3), random=~1,group=id)

There's HAC() in library(gmm), which is a modification from the
sandwich::vcovHAC(), designed to accept as input any vectors (and not
only specific objects, such as lm).

That is very wrong in several ways:
  1. It is the other way round: vcovHAC() can accept *any* input (as long
     as there are suitable methods). HAC() on the other hand can *only*
     accept matrices (or matrix-based time series).
  2. If one wants vcovHAC(obj) to work, estfun(obj) must return the
     empirical estimating function (aka score functions) and bread(obj)
     must return an estimate of the "bread" of the sandwich. The former
     can usually be easily extracted from model fits, the latter can
     usually be easily computed from vcov(obj).
  3. If one wants to compute HAC covariances for the variation about the
     overall mean one can easily do vcovHAC(lm(x ~ 1)).
  4. If one wants vcovHAC(x) to work directly, the correct approach would
     be to supply suitable methods (as outlined above) rather than copying
     and modifying the code which is really bad practice.

The details of the object-oriented nature of the package are explained in detail in
  vignette("sandwich-OOP", package = "sandwich")

The sandwich::vcovHAC() can also be relatively easily extended to
accept other fits as input (not only lm or glm, for example), but this
would require some understanding of the internals of both SemiPar and
sandwich. You might enquire if the author of SemiPar is interested in
adding such functionality. For technical details, check the first
vignette of sandwich.

I'm not sure how the asymptotic theory for the semi-parametric models implemented in spm() works. I would guess that one could implement it so that estfun() and bread(), by default, only give the corresponding return values for the parametric part of the model. But one would need to check whether this is appropriate.

Best,
Z

Once you get HAC covariance matrix for your fit, you can use either
lmtest::coeftest or library(car) to obtain the HAC std errs.
Liviu

______________________________________________
R-help@r-project.org 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.



______________________________________________
R-help@r-project.org 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.

Reply via email to