[R] Extracting only some coefficients for the logistic regression model and its plot

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Wed Jun 15 10:55:57 CEST 2022


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 using 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 using 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.
>>



More information about the R-help mailing list