[R] extend summary.lm for hccm?
Frank E Harrell Jr
f.harrell at vanderbilt.edu
Sun Dec 24 17:44:29 CET 2006
John Fox wrote:
> Dear Frank,
>
> If I remember Freedman's recent paper correctly, he argues that sandwich
> variance estimator, though problematic in general, is not problematic in the
> case that White described -- an otherwise correctly specified linear model
> with heteroscedasticity estimated by least-squares.
>
> Regards,
> John
That's right John although the precision of the variance estimators is
still worth studying in that case.
Best regards,
Frank
>
> --------------------------------
> John Fox
> Department of Sociology
> McMaster University
> Hamilton, Ontario
> Canada L8S 4M4
> 905-525-9140x23604
> http://socserv.mcmaster.ca/jfox
> --------------------------------
>
>> -----Original Message-----
>> From: r-help-bounces at stat.math.ethz.ch
>> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Frank
>> E Harrell Jr
>> Sent: Sunday, December 24, 2006 10:29 AM
>> To: John Fox
>> Cc: r-help at stat.math.ethz.ch; 'ivo welch'; 'Dirk Eddelbuettel'
>> Subject: Re: [R] extend summary.lm for hccm?
>>
>> John Fox wrote:
>>> Dear Dirk and Ivo,
>>>
>>> It's true that the sandwich package has more extensive
>> facilities for
>>> sandwich variance estimation than the hccm function in the car
>>> package, but I think that the thrust of Ivo's question is to get a
>>> model summary that automatically uses the adjusted standard errors
>>> rather than having to compute them and use them "manually." Here's
>>> one approach, which could be modified slightly if Ivo wants
>> "hc0" as
>>> the default; it could also be adapted to use the sandwich package.
>>>
>>> I hope this helps,
>>> John
>> Another approach:
>>
>> library(Design) # also requires library(Hmisc) f <- ols(y ~
>> x1 + x2, x=TRUE, y=TRUE)
>> f <- robcov(f) # sandwich; also allows clustering. Also see bootcov
>> anova(f) # all later steps use sandwich variance matrix
>> summmary(f)
>> contrast(f, list(x1=.5), list(x1=.2))
>>
>> BUT note that sandwich covariance matrix estimators can have
>> poor mean squared error (a paper by Bill Gould in Stata
>> Technical Bulletin years ago related to logistic regression
>> showed an example with a 100-fold increase in the variance of
>> a variance estimate) and can give you the right estimate of
>> the wrong quantity (reference below).
>>
>> Frank Harrell
>>
>> @Article{free06so,
>> author = {Freedman, David A.},
>> title = {On the so-called ``{Huber} sandwich
>> estimator'' and
>> ``robust standard errors''},
>> journal = The American Statistician,
>> year = 2006,
>> volume = 60,
>> pages = {299-302},
>> annote = {nice summary of derivation of sandwich
>> estimators;questions why we should be interested in getting
>> the right variance of the wrong parameters when the model
>> doesn't fit} }
>>
>>
>>> ----------- snip --------------
>>>
>>> summaryHCCM <- function(model, ...) UseMethod("summaryHCCM")
>>>
>>> summaryHCCM.lm <- function(model, type=c("hc3", "hc0",
>> "hc1", "hc2",
>>> "hc4"),
>>>
>>> ...){
>>> if (!require(car)) stop("Required car package is missing.")
>>> type <- match.arg(type)
>>> V <- hccm(model, type=type)
>>> sumry <- summary(model)
>>> table <- coef(sumry)
>>> table[,2] <- sqrt(diag(V))
>>> table[,3] <- table[,1]/table[,2]
>>> table[,4] <- 2*pt(abs(table[,3]), df.residual(model),
>> lower.tail=FALSE)
>>> sumry$coefficients <- table
>>> print(sumry)
>>> cat("Note: Heteroscedasticity-consistant standard errors using
>>> adjustment",
>>> type, "\n")
>>> }
>>>
>>> --------------------------------
>>> John Fox
>>> Department of Sociology
>>> McMaster University
>>> Hamilton, Ontario
>>> Canada L8S 4M4
>>> 905-525-9140x23604
>>> http://socserv.mcmaster.ca/jfox
>>> --------------------------------
>>>
>>>> -----Original Message-----
>>>> From: r-help-bounces at stat.math.ethz.ch
>>>> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Dirk
>>>> Eddelbuettel
>>>> Sent: Saturday, December 23, 2006 11:16 PM
>>>> To: ivo welch
>>>> Cc: r-help at stat.math.ethz.ch
>>>> Subject: Re: [R] extend summary.lm for hccm?
>>>>
>>>>
>>>> On 23 December 2006 at 20:46, ivo welch wrote:
>>>> | I wonder whether it is possible to extend the summary
>>>> method for the
>>>> | lm function, so that it uses an option "hccm" (well, model
>>>> "hc0"). In
>>>> | my line of work, it is pretty much required in reporting of
>>>> almost all
>>>> | linear regressions these days, which means that it would be
>>>> very nice
>>>> | not to have to manually library car, then sqrt the diagonal, and
>>>> | recompute T-stats; instead, I would love to get everything
>>>> in the same
>>>> | format as the current output---except errors heteroskedasticity
>>>> | adjusted.
>>>> |
>>>> | easy or hard?
>>>>
>>>> Did you consider the 'sandwich' package? A simple
>>>>
>>>> > install.packages("sandwich")
>>>> > library(sandwich)
>>>> > ?vcovHC
>>>> > ?vcovHAC
>>>>
>>>> should get you there.
>>>>
>>>> Dirk
More information about the R-help
mailing list