Learn R Programming

berryFunctions (version 1.22.5)

linReg: linear regression with plotting

Description

uses lm; plots data if add=FALSE, draws the regression line with abline and writes the formula with legend

Usage

linReg(
  x,
  y = NULL,
  data = NULL,
  add = FALSE,
  digits = 2,
  quiet = FALSE,
  pch = 16,
  col = "black",
  colline = "red",
  colband = addAlpha(colline),
  level = 0.95,
  plotrange = par("usr")[1:2],
  lwd = 1,
  xlab = deparse(substitute(x)),
  ylab = deparse(substitute(y)),
  main = "linear regression",
  pos1 = "top",
  pos2 = NULL,
  inset = 0,
  legargs = NULL,
  ...
)

Value

None, used for plotting and drawing.

Arguments

x

Numeric or formula (see examples). Vector with values of explanatory variable

y

Numeric. Vector with values of dependent variable. DEFAULT: NULL

data

Dataframe. If x is a formula, the according columns from data are used as x and y. DEFAULT: NULL

add

Logical. If TRUE, line and text are added to the existing graphic. DEFAULT: FALSE (plots datapoints first and then the line.)

digits

Numeric vector of length \(\ge 1\). Specifies number of digits a,b,r,e are rounded to in the formula "y=a*x+b \n R^2=r \n RMSE=e", respectively. If a value is negative, the complete respective entry is left away. If values are not specified, they are set equal to the first. DEFAULT: 2

quiet

Silence NA-removal warnings in rmse? DEFAULT: FALSE

pch

Point Character of datapoints, see par. DEFAULT: 16

col

Color of points. DEFAULT: "black"

colline

Color of the regression line, see par. DEFAULT: "red"

colband

Color of the confidence region band. DEFAULT: addAlpha(col)

level

Confidence level, see predict.lm. DEFAULT: 0.95

plotrange

x range for which regression line and uncertainty band should be plotted. Is passed to seqR and can hence be a vector. DEFAULT: par("usr")[1:2]

lwd

Numeric. Linewidth, see par. DEFAULT: 1

xlab

Axis label if add=FALSE. DEFAULT: deparse(substitute(x))

ylab

Axis label if add=FALSE. DEFAULT: deparse(substitute(y))

main

Title if add=FALSE. Changed (if not specified) for x=formula with data. DEFAULT: "linear regression"

pos1

xy.coords-acceptable position of the formula. DEFAULT: "top"

pos2

For numerical coordinates, this is the y-position. DEFAULT: NULL, as in legend

inset

Numeric vector of length \(\le 2\). inset distance(s) from the margins as a fraction of the plot region when formula legend is placed by keyword. DEFAULT: 0

legargs

list of arguments passed to legend, like list(cex=0.8, xpd=TRUE, bg="white"), ... xpd specifies whether formula can be written only inside the plot region (when FALSE) or inside the figure region including mar (when TRUE) or in the entire device region including oma (when NA). DEFAULT: NULL

...

Further arguments passed to plot

Author

Berry Boessenkool, berry-b@gmx.de, 2011-2012, 2015

See Also

lm, mReg, expReg, legend, par, abline.

Examples

Run this code

a <- 1:30
b <- a/2.345+rnorm(30,0,3)

linReg(a,b)
linReg(a,b, ylab="Hallo", pch=1, colline=3, main="Regression by Berry")
linReg(a, b, pos1=15, pos2=0) # position of topleft corner of legend
linReg(a, b, pos1=NA) # to suppress legend
linReg(a, b, plotrange=5:20) # only for plotting, all data points are used!
linReg(a,b, digits=c(2,3,2,-1) ) # Do not write RMSE into legend

# Formula specification:
linReg(b~a)
linReg(Fertility~Education, data=swiss, col="blue", colline="green")
# col is for points, colline + colband for regression line + conf.int.

# For more flexibility with the datapoints, plot first, then use linReg with add=TRUE:
plot(a,b, xlim=c(-5,45))
linReg(a, b, pos1="bottomright", add=TRUE, inset=.1) # inset: distance from plot border
linReg(a, b, digits=c(7,4,3), add=TRUE, colline=3, lty=2, lwd=4, level=0.8)
linReg(a, b, pos1="topleft", inset=c(-0.1, 0.3), legargs=list(xpd=TRUE), add=TRUE)

Run the code above in your browser using DataLab