Hello David,
Thanks to your posting I started looking at the function in the arm package.
 It appears this function is quite mature, and offers (for example) the
ability to easily overlap coefficients from several models.

I updated the post I published on the subject, so at the end of it I give an
example of comparing the coef of several models:
http://www.r-statistics.com/2010/07/visualization-of-regression-coefficients-in-r/

Thanks again for the pointer.

Best,
Tal




----------------Contact
Details:-------------------------------------------------------
Contact me: tal.gal...@gmail.com |  972-52-7275845
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------




On Wed, Jul 7, 2010 at 12:02 AM, David Atkins <datk...@u.washington.edu>wrote:

>
>
> FYI, there is already a function coefplot in the arm package; for example,
> compare:
>
> > library(arm)
> Loading required package: MASS
> Loading required package: Matrix
> [snip]
> Attaching package: 'arm'
>
> The following object(s) are masked from 'package:coda':
>
>    traceplot
>
>
> > data("Mroz", package = "car")
> > fm <- glm(lfp ~ ., data = Mroz, family = binomial)
> > coefplot(fm)
>
> with version below.
>
> cheeres, Dave
>
> >
> > detach("package:arm")
>
> > 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()
> + }
> >
> >
> > coefplot(fm, parm = -1)
>
>
>
>
> 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.
>
> 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.
> >
>
> --
> Dave Atkins, PhD
> Research Associate Professor
> Department of Psychiatry and Behavioral Science
> University of Washington
> datk...@u.washington.edu
>
> Center for the Study of Health and Risk Behaviors (CSHRB)
> 1100 NE 45th Street, Suite 300
> Seattle, WA  98105
> 206-616-3879
> http://depts.washington.edu/cshrb/
> (Mon-Wed)
>
> Center for Healthcare Improvement, for Addictions, Mental Illness,
>  Medically Vulnerable Populations (CHAMMP)
> 325 9th Avenue, 2HH-15
> Box 359911
> Seattle, WA 98104
> http://www.chammp.org
> (Thurs)
>
>
> ______________________________________________
> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
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