On Sat, 28 May 2016, T.Riedle wrote:

Dear R users,

I am running a logistic regression using the rms package and the code looks as follows:

crisis_bubble4<-lrm(stock.market.crash~crash.MA+bubble.MA+MP.MA+UTS.MA+UPR.MA+PPI.MA+RV.MA,data=Data_logitregression_movingaverage)

Now, I would like to calculate HAC robust standard errors using the sandwich package assuming the NeweyWest estimator which looks as follows:

coeftest(crisis_bubble4,df=Inf,vcov=NeweyWest)

Error in match.arg(type) :

'arg' should be one of "li.shepherd", "ordinary", "score", "score.binary", "pearson", "deviance", "pseudo.dep", "partial", "dfbeta", "dfbetas", "dffit", "dffits", "hat", "gof", "lp1"

As you can see, it doesn't work.

Yes. The "sandwich" package relies on two methods being available: bread() and estfun(). See vignette("sandwich-OOP", package = "sandwich") for the background details.

For objects of class "lrm" no such methods are available. But as "lrm" objects inherit from "glm" the corresponding methods are called. However, "lrm" objects are actually too different from "glm" objects (despite the inheritance) resulting in the error.

It is easy to add these methods, though, because "lrm" brings all the necessary information:

bread.lrm <- function(x, ...) vcov(x) * nobs(x)
estfun.lrm <- function(x, ...) residuals(x, "score")

Therefore, I did the same using the glm() instead of lrm():

crisis_bubble4<-glm(stock.market.crash~crash.MA+bubble.MA+MP.MA+UTS.MA+UPR.MA+PPI.MA+RV.MA,family=binomial("logit"),data=Data_logitregression_movingaverage)

If I use the coeftest() function, I get following results.

coeftest(crisis_bubble4,df=Inf,vcov=NeweyWest)

z test of coefficients:

             Estimate Std. Error z value Pr(>|z|)
(Intercept)   -5.26088    5.01706 -1.0486  0.29436
crash.MA       0.49219    2.41688  0.2036  0.83863
bubble.MA     12.12868    5.85228  2.0725  0.03822 *
MP.MA        -20.07238  499.37589 -0.0402  0.96794
UTS.MA       -58.18142   77.08409 -0.7548  0.45038
UPR.MA      -337.57985  395.35639 -0.8539  0.39318
PPI.MA       729.37693  358.60868  2.0339  0.04196 *
RV.MA        116.00106   79.52421  1.4587  0.14465
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Some of these coefficients and standard errors are suspiciously large. It might make sense to check for quasi-complete separation.

I am unsure whether the coeftest from the lmtest package is appropriate in case of a logistic regression.

Yes, this is ok. (Whether or not the application of HAC standard errors is the best way to go is a different matter though.)

Is there another function for logistic regressions? Furthermore, I would like to present the regression coefficients, the F-statistic and the HAC estimators in one single table. How can I do that?

Running first coeftest() and then lrtest() should get you close to what you want - even though it is not a single table.

I thought it would be useful to incorporate the HAC consistent covariance matrix into the logistic regression directly and generate an output of coefficients and the corresponding standard errors. Is there such a function in R?

Not with HAC standard errors, I think.

Thanks for your support.

Kind regards

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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 -- To UNSUBSCRIBE and more, see
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