View source: R/plotQuantileCIsfromDat.R
plotQuantileCIsfromDat | R Documentation |
Title Function that plots ecdf of a vector of values with quantiles marked with their CIs
plotQuantileCIsfromDat(
vecDat = NA,
vecQuantiles = NA,
method = c("Nyblom", "Exact", "Bootstrap"),
ci = 0.95,
R = 9999,
type = NULL,
xLab = "Value for probability (quantile)",
yLab = "Probability",
percent = FALSE,
colPoint = "black",
colLCL = "black",
colUCL = "black",
vertQuantiles = TRUE,
vertCLs = FALSE,
shadeCI = TRUE,
addAnnotation = TRUE,
titleText = "ECDF with quantiles and CIs around quantiles",
subtitleText = "",
titleJust = 0.5,
themeBW = TRUE,
printPlot = TRUE,
returnPlot = FALSE
)
vecDat |
Vector of the data |
vecQuantiles |
Vector of quantiles wanted |
method |
Method to compute the CIs |
ci |
Width of CI wanted |
R |
Number of bootstrap replications if bootstrap CI method invoked |
type |
Type of quantile (defaults to 8) |
xLab |
Label for x axis |
yLab |
Label for y axis |
percent |
Logical: whether to show quantile as % instead of proportion (defaults to FALSE) |
colPoint |
Colour of quantile point (defaults to "black") |
colLCL |
Colour of LCL point (defaults to "black") |
colUCL |
Colour of UCL point (defaults to "black") |
vertQuantiles |
Whether to drop vertical line from quantiles (defaults to TRUE) |
vertCLs |
Whether to drop vertical line from confidence limits (defaults to FALSE) |
shadeCI |
Whether to shade area of CI (defaults to TRUE) |
addAnnotation |
Whether to add informative annotation (defaults to TRUE) |
titleText |
Text for title |
subtitleText |
Text for subtitle |
titleJust |
Justification for title (0, .5 or 1, defaults to .05, centred) |
themeBW |
Logical: whether or not to use them_bw() |
printPlot |
Logical: whether to print the plot (defaults to TRUE) |
returnPlot |
Logical: whether to return the plot (defaults to FALSE) |
The plot as a ggplot object if returnPlot == TRUE
The empirical cumulative distribution function is an alternative to the histogram to show the distribution of a set of scores. It plots the proportion of the sample set of scores below any observed score against that score. The proportion (or percentage) is plotted on the y axis and the score on the x axis. It's particularly useful for our typical mental health (MH) change/outcome measures as we're interested in how where someone's score lies in a possible population distribution of scores.
ECDFs complement quantiles as a quantile (a.k.a. centile, percentile, decile), is the score (on that x axis) that maps the percentage, so for the 95% percentile that percentile is the score that only 5% of the sample scored above, and 95% scored below.
This function takes a set of scores/values and plots their ECDF with the quantiles you ask for with their confidence intervals of the width that wanted (typically 95%, i.e. .95).
See the help page for getCIforQuantiles() to learn more about the computation of the confidence intervals.
Started 30.vii.23
Chris Evans
Nyblom, J. (1992). Note on interpolated order statistics. Statistics & Probability Letters, 14(2), 129–131. https://doi.org/10.1016/0167-7152(92)90076-H
https://github.com/mhoehle/quantileCI
Other CI functions, quantile functions:
getCIforQuantiles()
## Not run:
### will need tidyverse to run
library(tidyverse)
### will need quantileCI to run
### if you don't have quantileCI package you need to get it from github:
# devtools::install_github("hoehleatsu/quantileCI")
library(quantileCI)
### define the quantiles you want
### here I'm going for the 5th, 10th, 90th and 95% (per)centiles and the quartiles and median
vecQuantiles <- c(.05, .1, .25, .5, .75, .9, .95)
### looking at 100 scores from 1 to 100
plotQuantileCIsfromDat(vecDat = 1:100, vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8,
titleJust = 1, # right justify the title and subtitle
themeBW = TRUE) # use theme_bw()
### same data
plotQuantileCIsfromDat(vecDat = 1:100, vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8,
titleJust = .5, # centre the title and subtitle
themeBW = TRUE)
### same data
plotQuantileCIsfromDat(vecDat = 1:100, vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8,
titleJust = .5, themeBW = FALSE,
printPlot = FALSE, # this time don't plot from within the function call but
## this next argument ask the function the plot object
returnPlot = TRUE) -> tmpPlot
### so plot it! (plot() and print() will both work,
### you can also manipulate the plot before printing)
print(tmpPlot)
### this illustrates the CIs getting tighter as the dataset size goes up
plotQuantileCIsfromDat(vecDat = 1:1000, vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8)
### and even more data, tighter CIs again
plotQuantileCIsfromDat(vecDat = 1:10000, vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8)
### now a Gaussian ("Normal") distribution of scores
plotQuantileCIsfromDat(vecDat = rnorm(100), vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8)
### larger dataset
plotQuantileCIsfromDat(vecDat = rnorm(1000), vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8)
### and larger again
plotQuantileCIsfromDat(vecDat = rnorm(10000), vecQuantiles = vecQuantiles,
method = "N", ci = 0.95, R = 9999, type = 8,
titleJust = .5, themeBW = TRUE)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.