# --------------------------------------------------
# plotting estimates of linear models as forest plot
# --------------------------------------------------
# fit linear model
fit <- lm(airquality$Ozone ~ airquality$Wind + airquality$Temp + airquality$Solar.R)
# plot estimates with CI
sjp.lm(fit, grid.breaks = 2)
# plot estimates with CI
# and with narrower tick marks
# (because "grid.breaks" was not specified)
sjp.lm(fit)
# ---------------------------------------------------
# plotting regression line of linear model (done
# automatically if fitted model has only 1 predictor)
# ---------------------------------------------------
library(sjmisc)
data(efc)
# fit model
fit <- lm(neg_c_7 ~ quol_5, data=efc)
# plot regression line with label strings
sjp.lm(fit, resp.label = "Burden of care",
axis.labels = "Quality of life", show.loess = TRUE)
# --------------------------------------------------
# plotting regression lines of each single predictor
# of a fitted model
# --------------------------------------------------
library(sjmisc)
data(efc)
# fit model
fit <- lm(tot_sc_e ~ c12hour + e17age + e42dep, data=efc)
# reression line and scatter plot
sjp.lm(fit, type = "slope")
# reression line w/o scatter plot
sjp.lm(fit, type = "slope", scatter.plot = FALSE)
# --------------------------
# plotting model assumptions
# --------------------------
sjp.lm(fit, type = "ma")
## Not run:
# # --------------------------
# # grouping estimates
# # --------------------------
# library(sjmisc)
# data(efc)
# fit <- lm(barthtot ~ c160age + e17age + c12hour + e16sex + c161sex + c172code,
# data = efc)
#
# # order estimates according to coefficient's order
# sjp.lm(fit, group.estimates = c(1, 1, 2, 3, 3, 4),
# geom.colors = c("green", "red", "blue", "grey"), sort.est = FALSE)
#
# fit <- lm(barthtot ~ c160age + c12hour + e17age+ c161sex + c172code + e16sex,
# data = efc)
#
# # force order of estimates according to group assignment
# sjp.lm(fit, group.estimates = c(1, 2, 1, 3, 4, 3),
# geom.colors = c("green", "red", "blue", "grey"), sort.est = TRUE)
#
# # --------------------------
# # predicted values for response
# # --------------------------
# library(sjmisc)
# data(efc)
# efc$education <- to_label(to_factor(efc$c172code))
# fit <- lm(barthtot ~ c160age + c12hour + e17age+ education,
# data = efc)
#
# sjp.lm(fit, type = "pred", vars = "c160age")
#
# # with loess
# sjp.lm(fit, type = "pred", vars = "e17age", show.loess = TRUE)
#
# # grouped
# sjp.lm(fit, type = "pred", vars = c("c12hour", "education"))
#
# # grouped, non-facet
# sjp.lm(fit, type = "pred", vars = c("c12hour", "education"),
# facet.grid = FALSE)
#
# # --------------------------
# # plotting polynomial terms
# # --------------------------
# library(sjmisc)
# data(efc)
# # fit sample model
# fit <- lm(tot_sc_e ~ c12hour + e17age + e42dep, data = efc)
# # "e17age" does not seem to be linear correlated to response
# # try to find appropiate polynomial. Grey line (loess smoothed)
# # indicates best fit. Looks like x^3 has a good fit.
# # (not checked for significance yet).
# sjp.poly(fit, "e17age", 2:4, scatter.plot = FALSE)
# # fit new model
# fit <- lm(tot_sc_e ~ c12hour + e42dep +
# e17age + I(e17age^2) + I(e17age^3),
# data = efc)
# # plot marginal effects of polynomial term
# sjp.lm(fit, type = "poly", poly.term = "e17age")
#
# library(splines)
# # fit new model with "splines"-package, "bs"
# fit <- lm(tot_sc_e ~ c12hour + e42dep + bs(e17age, 3), data = efc)
# # plot marginal effects of polynomial term, same call as above
# sjp.lm(fit, type = "poly", poly.term = "e17age")## End(Not run)
Run the code above in your browser using DataLab