[R] Visualization of coefficients
Achim Zeileis
Achim.Zeileis at uibk.ac.at
Fri Jul 2 22:16:31 CEST 2010
On Fri, 2 Jul 2010, Thomas Lumley wrote:
> On Fri, 2 Jul 2010, Achim Zeileis wrote:
>
>> I've thought about adding a plot() method for the coeftest() function in
>> the "lmtest" package. Essentially, it relies on a coef() and a vcov()
>> method being available - and that a central limit theorem holds. For
>> releasing it as a general function in the package the code is still too
>> raw, but maybe it's useful for someone on the list. Hence, I've included it
>> below.
>
>
> Achim,
>
> If you are putting this in the lmtest package it would be nice if it also
> handled multiple models. I'm more often interested in plotting estimates of
> the same coefficient in different models than of different coefficients in
> the same model.
Yes, good suggestion. I'll have a stab at it over the summer...
Z
> -thomas
>
>> An example would be to visualize all coefficients except the intercept for
>> the Mroz data:
>>
>> data("Mroz", package = "car")
>> fm <- glm(lfp ~ ., data = Mroz, family = binomial)
>> coefplot(fm, parm = -1)
>>
>> hth,
>> Z
>>
>> coefplot <- function(object, df = NULL, level = 0.95, parm = NULL,
>> labels = TRUE, xlab = "Coefficient confidence intervals", ylab = "",
>> xlim = NULL, ylim = NULL,
>> las = 1, lwd = 1, lty = c(1, 2), pch = 19, col = 1,
>> length = 0, angle = 30, code = 3, ...)
>> {
>> cf <- coef(object)
>> se <- sqrt(diag(vcov(object)))
>> if(is.null(parm)) parm <- seq_along(cf)
>> if(is.numeric(parm) | is.logical(parm)) parm <- names(cf)[parm]
>> if(is.character(parm)) parm <- which(names(cf) %in% parm)
>> cf <- cf[parm]
>> se <- se[parm]
>> k <- length(cf)
>>
>> if(is.null(df)) {
>> df <- if(identical(class(object), "lm")) df.residual(object) else 0
>> }
>>
>> critval <- if(df > 0 & is.finite(df)) {
>> qt((1 - level)/2, df = df)
>> } else {
>> qnorm((1 - level)/2)
>> }
>> ci1 <- cf + critval * se
>> ci2 <- cf - critval * se
>>
>> lwd <- rep(lwd, length.out = 2)
>> lty <- rep(lty, length.out = 2)
>> pch <- rep(pch, length.out = k)
>> col <- rep(col, length.out = k)
>>
>> if(is.null(xlim)) xlim <- range(c(0, min(ci1), max(ci2)))
>> if(is.null(ylim)) ylim <- c(1 - 0.05 * k, 1.05 * k)
>>
>> if(isTRUE(labels)) labels <- names(cf)
>> if(identical(labels, FALSE)) labels <- ""
>> labels <- rep(labels, length.out = k)
>>
>> plot(0, 0, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab,
>> axes = FALSE, type = "n", las = las, ...)
>> arrows(ci1, 1:k, ci2, 1:k, lty = lty[1], lwd = lwd[1], col = col,
>> length = length, angle = angle, code = code)
>> points(cf, 1:k, pch = pch, col = col)
>> abline(v = 0, lty = lty[2], lwd = lwd[2])
>> axis(1)
>> axis(2, at = 1:k, labels = labels, las = las)
>> box()
>> }
>>
>>
>> On Fri, 2 Jul 2010, Tal Galili wrote:
>>
>>> Specifically this link:
>>> http://tables2graphs.com/doku.php?id=04_regression_coefficients
>>>
>>> Great reference Bernd, thank you.
>>>
>>> Tal
>>>
>>>
>>> ----------------Contact
>>> Details:-------------------------------------------------------
>>> Contact me: Tal.Galili at gmail.com | 972-52-7275845
>>> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
>>> www.r-statistics.com (English)
>>>
>>> ----------------------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>> On Fri, Jul 2, 2010 at 10:31 AM, Bernd Weiss
>>> <bernd.weiss at uni-koeln.de>wrote:
>>>
>>>> Am 02.07.2010 08:10, schrieb Wincent:
>>>>> Dear all,
>>>>>
>>>>> I try to show a subset of coefficients in my presentation. It seems
>>>>> that a "standard" table is not a good way to go. I found figure 9
>>>>> (page 9) in this file (
>>>>>
>>>> http://www.destatis.de/jetspeed/portal/cms/Sites/destatis/Internet/DE/Content/Wissenschaftsforum/Kolloquien/VisualisierungModellierung__Beitrag,property=file.pdf
>>>>>
>>>>>
>>>> ) looks pretty good. I wonder if there is any function for such plot?
>>>>> Or any suggestion on how to present statistical models in a
>>>>> presentation?
>>>>
>>>> Hi Wincent,
>>>>
>>>> I guess you are looking for "Using Graphs Instead of Tables in Political
>>>> Science" by Kastellec/Leoni <http://tables2graphs.com/doku.php>.
>>>>
>>>> HTH,
>>>>
>>>> Bernd
>>>>
>>>> ______________________________________________
>>>> R-help at 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.
>>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at 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 at 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.
>>
>
> Thomas Lumley
> Professor of Biostatistics
> University of Washington, Seattle
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list