anteneh asmare
2022-Jun-15 07:15 UTC
[R] Extracting only some coefficients for the logistic regression model and its plot
Dear Rui, thanks a lot, dose it possible to have the horizontal line for scale OR value on Y axis and different color for entire box plots ? Best, Hana On 6/15/22, Rui Barradas <ruipbarradas at sapo.pt> wrote:> Hello, > > To extract all but the first 2 rows, use a negative index on the rows. > I will also coerce to data.frame and add a id column, it will be needed > to plot the confidence intervals. > > > ORCI <- exp(cbind(OR = coef(model ), confint(model )))[-(1:2), ] > ORCI <- cbind.data.frame(ORCI, id = row.names(ORCI)) > > > Now the base R and ggplot plots. In both cases plot the bars first, then > the points. > > 1. Base R > > > ymin <- min(apply(ORCI[2:3], 1, range)[1,]) > ymax <- max(apply(ORCI[2:3], 1, range)[2,]) > > plot((ymin + ymax)/2, > type = "n", > xaxt = "n", > xlim = c(0.5, 5.5), > ylim = c(ymin, ymax), > xlab = "X3", > ylab = "Odds Ratio") > with(ORCI, arrows(x0 = seq_along(id), > y0 = `2.5 %`, > y1 = `97.5 %`, > code = 3, > angle = 90)) > points(OR ~ seq_along(id), ORCI, pch = 16) > axis(1, at = seq_along(ORCI$id), labels = ORCI$id) > > > > 2. Package ggplot2 > > > library(ggplot2) > > ggplot(ORCI, aes(id, OR)) + > geom_errorbar(aes(ymin = `2.5 %`, max = `97.5 %`)) + > geom_point() + > theme_bw() > > > Hope this helps, > > Rui Barradas > > ?s 21:01 de 14/06/2022, anteneh asmare escreveu: >> sample_data >> read.table("http://freakonometrics.free.fr/db.txt",header=TRUE,sep=";") >> head(sample_data) >> model = glm(Y~0+X1+X2+X3,family=binomial,data=sample_data) >> summary(model) >> exp(coef(model )) >> exp(cbind(OR = coef(model ), confint(model ))) >> I have the aove sample data on logistic regression with categorical >> predictor >> I try the above code i get the follwing out put, >> OR 2.5 % 97.5 % >> X1 1.67639337 1.352583976 2.09856514 >> X2 1.23377720 1.071959330 1.42496949 >> X3A 0.01157565 0.001429430 0.08726854 >> X3B 0.06627849 0.008011818 0.54419759 >> X3C 0.01118084 0.001339984 0.08721028 >> X3D 0.01254032 0.001545240 0.09539880 >> X3E 0.10654454 0.013141540 0.87369972 >> but i am wondering i want to extract OR and CI only for factors, My >> desire out put will be >> OR 2.5 % 97.5 % >> X3A 0.01157565 0.001429430 0.08726854 >> X3B 0.06627849 0.008011818 0.54419759 >> X3C 0.01118084 0.001339984 0.08721028 >> X3D 0.01254032 0.001545240 0.09539880 >> X3E 0.10654454 0.013141540 0.87369972 >> Can any one help me the code to extact it? >> additionally I want to plot the above OR with confidence interval for >> the extracted one >> can you also help me the code with plot,or box plot >> Kind Regards, >> Hana >> >> ______________________________________________ >> R-help at 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. >
Rui Barradas
2022-Jun-15 08:55 UTC
[R] Extracting only some coefficients for the logistic regression model and its plot
Hello, With ggplot it's easy, add color = id and coord_flip(). ggplot(ORCI, aes(id, OR, color = id)) + geom_point() + geom_errorbar(aes(ymin = `2.5 %`, max = `97.5 %`)) + coord_flip() + theme_bw() Hope this helps, Rui Barradas ?s 08:15 de 15/06/2022, anteneh asmare escreveu:> Dear Rui, thanks a lot, dose it possible to have the horizontal line > for scale OR value on Y axis and different color for entire box plots > ? > Best, > Hana > On 6/15/22, Rui Barradas <ruipbarradas at sapo.pt> wrote: >> Hello, >> >> To extract all but the first 2 rows, use a negative index on the rows. >> I will also coerce to data.frame and add a id column, it will be needed >> to plot the confidence intervals. >> >> >> ORCI <- exp(cbind(OR = coef(model ), confint(model )))[-(1:2), ] >> ORCI <- cbind.data.frame(ORCI, id = row.names(ORCI)) >> >> >> Now the base R and ggplot plots. In both cases plot the bars first, then >> the points. >> >> 1. Base R >> >> >> ymin <- min(apply(ORCI[2:3], 1, range)[1,]) >> ymax <- max(apply(ORCI[2:3], 1, range)[2,]) >> >> plot((ymin + ymax)/2, >> type = "n", >> xaxt = "n", >> xlim = c(0.5, 5.5), >> ylim = c(ymin, ymax), >> xlab = "X3", >> ylab = "Odds Ratio") >> with(ORCI, arrows(x0 = seq_along(id), >> y0 = `2.5 %`, >> y1 = `97.5 %`, >> code = 3, >> angle = 90)) >> points(OR ~ seq_along(id), ORCI, pch = 16) >> axis(1, at = seq_along(ORCI$id), labels = ORCI$id) >> >> >> >> 2. Package ggplot2 >> >> >> library(ggplot2) >> >> ggplot(ORCI, aes(id, OR)) + >> geom_errorbar(aes(ymin = `2.5 %`, max = `97.5 %`)) + >> geom_point() + >> theme_bw() >> >> >> Hope this helps, >> >> Rui Barradas >> >> ?s 21:01 de 14/06/2022, anteneh asmare escreveu: >>> sample_data >>> read.table("http://freakonometrics.free.fr/db.txt",header=TRUE,sep=";") >>> head(sample_data) >>> model = glm(Y~0+X1+X2+X3,family=binomial,data=sample_data) >>> summary(model) >>> exp(coef(model )) >>> exp(cbind(OR = coef(model ), confint(model ))) >>> I have the aove sample data on logistic regression with categorical >>> predictor >>> I try the above code i get the follwing out put, >>> OR 2.5 % 97.5 % >>> X1 1.67639337 1.352583976 2.09856514 >>> X2 1.23377720 1.071959330 1.42496949 >>> X3A 0.01157565 0.001429430 0.08726854 >>> X3B 0.06627849 0.008011818 0.54419759 >>> X3C 0.01118084 0.001339984 0.08721028 >>> X3D 0.01254032 0.001545240 0.09539880 >>> X3E 0.10654454 0.013141540 0.87369972 >>> but i am wondering i want to extract OR and CI only for factors, My >>> desire out put will be >>> OR 2.5 % 97.5 % >>> X3A 0.01157565 0.001429430 0.08726854 >>> X3B 0.06627849 0.008011818 0.54419759 >>> X3C 0.01118084 0.001339984 0.08721028 >>> X3D 0.01254032 0.001545240 0.09539880 >>> X3E 0.10654454 0.013141540 0.87369972 >>> Can any one help me the code to extact it? >>> additionally I want to plot the above OR with confidence interval for >>> the extracted one >>> can you also help me the code with plot,or box plot >>> Kind Regards, >>> Hana >>> >>> ______________________________________________ >>> R-help at 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. >>