NormalAndTplot
Specify plots to illustrate Normal and t Hypothesis Tests or Confidence Intervals.
Specify plots to illustrate Normal and t Hypothesis Tests or Confidence Intervals.
- Keywords
- hplot
Usage
NormalAndTplot(mean0, ...)
# S3 method for default
NormalAndTplot(mean0=0,
mean1=NA,
xbar=NA,
df=Inf, n=1,
sd=1,
xlim=c(-3, 3)*sd/sqrt(n) + range(c(mean0, mean1, xbar), na.rm=TRUE),
ylim, alpha.right=.05, alpha.left=0,
float=TRUE, ntcolors="original",
digits=4, digits.axis=digits, digits.float=digits,
distribution.name=c("normal","z","t","binomial"),
type=c("hypothesis", "confidence"),
zaxis=FALSE, z1axis=FALSE,
cex.z=.5, cex.xbar=.5, cex.y=.5, cex.prob=.6, cex.top.axis=1,
cex.left.axis=1, cex.pb.axis=1,
cex.xlab=1, cex.ylab=1.5, cex.strip=1,
main=NA, xlab, ylab,
prob.labels=(type=="hypothesis"),
xhalf.multiplier=1,
yhalf.multiplier=1,
cex.main=1,
key.axis.padding=4.5,
number.vars=1,
sub=NULL,
NTmethod="default",
power=FALSE,
beta=FALSE,
...)
# S3 method for htest
NormalAndTplot(mean0, type="hypothesis", xlim=NULL, mean1=NA, ...,
xbar, sd, df, n, alpha.left, alpha.right, ## ignored
distribution.name, sub ## these input arguments will be ignored
)
Arguments
- mean0
Null hypothesis \(\mu_0\). When graphing a confidence interval,
mean0
will be used forxbar
shouldxbar
itself have the valueNA
. For thehtest
method,mean0
is an"htest"
object. SeeNTplot
for more information.- mean1
Alternative hypothesis \(\mu_1\).
- xbar
Observed \(\bar{x}\).
- sd
Standard deviation in the data scale \(\sigma\) for normal-, or \(s\) for \(t\)-distribution.
- df
Degrees of freedom for \(t\)-distribution.
- n
Number of observations per group.
- main, xlab, ylab, xlim, ylim, sub
Standard
xyplot
arguments. Default values are constructed if these arguments are missing. The input valuemain=NA
forces a new constructedmain
instead of using themain
coming in through thehtest
methods.- …
Additional
xyplot
arguments.- number.vars
Number of variables. 1 for a one-sample test, 2 for two-sample tests and paired tests.
- alpha.left, alpha.right
For
type="hypothesis"
, the sum of these two numbers is the probability of the Type I Error \(\alpha\). When both of these numbers are positive, there is a two-sided test. Note that it is not required that they be equal. If one of the numbers is 0, then it is a one-sided test. Fortype="confidence"
, 1 minus the sum of these two numbers is the confidence level.- float
Logical. If
TRUE
, then the probabilities \(\alpha\), \(\beta\), power, and \(p\)-values or the confidence value are displayed on the graph. IfFALSE
, these values are not displayed.- ntcolors
Vector of colors used in the graph. The default value is
"original"
and two named alternatives are"stoplight"
and"BW"
. The sets of colors associated with these three named sets are shown in adontrun
section of the examples. The user can enter any other color scheme by specifying a vector of ten named colors. The names are:col.alpha, col.notalpha, col.beta, col.power, col.pvalue, col.pvaluetranslucent, col.critical, col.border, col.text, col.conf
.- digits.axis, digits.float, digits
digits.axis
is the number of significant digits for the top axis.digits.float
is the number of significant digits for the floating probability values on the graph.digits
is a convenience argument to set bothdigits.axis
anddigits.float
at the same time. These number is passed to theformat
function.- distribution.name
Name of distribution.
- type
"hypothesis" for a Hypothesis Test graph, or "confidence" for a Confidence Interval graph.
- zaxis, z1axis
Logical or list. Should the \(z\)-axis centered on \(\mu_0\), or the \(z_1\)-axis centered on \(\mu_1\), be displayed? The list version of the argument must have two components
at
andlabels
as specified inpanel.axis
.- cex.z, cex.xbar, cex.y, cex.prob, cex.top.axis, cex.left.axis, cex.pb.axis, cex.xlab, cex.ylab, cex.strip, cex.main
cex.z
is thecex
value for the \(z\) and \(z_1\) axes on the plot.cex.prob
is thecex
value for the floating probabilities on the graph.cex.top.axis
is thecex
value for the top axis values.cex.main
is thecex
value for the main title.cex.xbar
andcex.y
are thecex
values for the horizontal and vertical axes of the plot.cex.left.axis
andcex.pb.axis
are thecex
values for the power or beta (Type II error) values and the \(\mu_1\) value in the power and beta plots.cex.xlab
,cex.ylab
, andcex.strip
are thecex
values forxlab
,ylab
, andstrip
labels.- key.axis.padding
tuning constant to create additional room above the graph for a larger
cex.main
to fit.- prob.labels
logical. If
TRUE
label the floating probability values with their name, such as \(\alpha\). IfFALSE
, then don't label them. The default isTRUE
fortype="hypothesis"
andFALSE
fortype="confidence"
.- xhalf.multiplier, yhalf.multiplier
Numerical tuning constants to control the width and height of the floating probability values. Empirically, we need a smaller value for the shiny app then we need for direct writing onto a graphic device.
- NTmethod
Character string used when
shiny=TRUE
. It is normally calculated by the methods.NTmethod
tellsshiny
how to use or ignore thedf
andn
sliders."htest"
objects by default are interpreted as a single observation (n=1
) of a \(t\)-statistic withdf
degrees of freedom. The slider will let the user change thedf
, but not then
."power.htest"
objects are interpreted as a set of \(n\) obervations per group anddf
is calculated as \((n-1)\) for single-sample tests and as \(2(n-1)\) for two-sample tests. The slider will let the user changen
and will calculate the reviseddf
.For the normal approximation to the binomial (
distribution.name="binomial"
), onlyn
is meaningful. Thedf
is always ignored.For the default situation of
t
, determined by the initially specified sample size \(n>1\), the degrees of freedom is calculated as \((n-1)\) for single-sample tests and as \(2(n-1)\) for two-sample tests. The defaultz
, is initially specified by a sample size \(n=1\).In all cases except the
"binomial"
, the user can change the interpretation of then
anddf
sliders. The interpretation when bothn
anddf
are under user control is not always obvious.- power, beta
Logical. If
TRUE
, then display that graph, else don't display it. Passed forward topowerplot
.
Details
The graphs produced by this single function cover most of the first semester
introductory Statistics course. The htest
method plots the
results of the stats::t.test
function.
NormalAndTplot
is built on xyplot
.
Most of the arguments detailed in xyplot
documentation work to
control the appearance of the plot.
Value
"trellis"
object.
Note
This function is built on lattice and latticeExtra.
It supersedes the similar function
normal.and.t.dist
built on base graphics that is used in many
displays in the book by Erich Neuwirth and me: R through Excel, Springer
(2009).
http://www.springer.com/978-1-4419-0051-7. Many details,
particularly the
alternate color scheme and the concept of floating probability labels,
grew out of discussions that Erich and I have had since the book was
published.
The method for "htest"
objects incorporates ideas that Jay Kerns and I developed at the 2011 UseR! conference.
This version incorporates some ideas suggested by Moritz Heene.
See Also
Examples
# NOT RUN {
NTplot(mean0=0, mean1=2, xbar=1.8, xlim=c(-3, 5))
NTplot(mean0=0, mean1=2, xbar=1.8, xlim=c(-3, 5), distribution.name="t", df=4)
NTplot(mean0=100, sd=12, mean1=113, xbar=105, xlim=c(92, 120), n=20)
NTplot(mean0=100, sd=12, mean1=113, xbar=105, xlim=c(92, 120), n=20,
zaxis=TRUE, z1axis=TRUE)
NTplot(mean0=100, sd=12, xbar=105, xlim=c(92, 108), n=20, ntcolors="stoplight")
NTplot(xbar=95, sd=10, xlim=c(65, 125), type="confidence",
alpha.left=.025, alpha.right=.025)
x <- rnorm(12, mean=.78)
x.t <- t.test(x)
NTplot(x.t)
NTplot(x.t, type="confidence")
x.tg <- t.test(x, alternative="greater")
NTplot(x.tg)
y <- rnorm(12, mean=-.05)
xy.t <- t.test(x, y)
NTplot(xy.t)
NTplot(xy.t, type="confidence")
# }
# NOT RUN {
NTplot(shiny=TRUE) ## with any other arguments for initialization of the shiny app.
# }
# NOT RUN {
# }
# NOT RUN {
## The partially transparent colors are:
black127="#0000007F" ## HH:::ColorWithAlpha("black")
green127="#00FF007F" ## HH:::ColorWithAlpha("green")
blue127 ="#0000FF7F" ## HH:::ColorWithAlpha("blue")
## this is the default set of colors that are assigned when
## ntcolors="original" or when ntcolors is not specified
c(col.alpha = "blue",
col.notalpha = "lightblue",
col.beta = "red",
col.power = "pink",
col.pvalue = "green",
col.pvaluetranslucent = green127,
col.critical = "gray50",
col.border = black127,
col.text = "black",
col.conf = "lightgreen")
NTplot( )
NTplot(mean1 = 2, )
NTplot( xbar=1)
NTplot(mean1 = 2, xbar=1)
NTplot(type="confidence")
## this is the set of colors that are assigned when ntcolors="stoplight"
c(col.alpha = "red",
col.notalpha = "honeydew2",
col.beta = "orange",
col.power = "pink",
col.pvalue = "blue",
col.pvaluetranslucent = blue127,
col.critical = "gray50",
col.border = black127,
col.text = "black",
col.conf = "lightgreen")
NTplot( ntcolors="stoplight")
NTplot(mean1 = 2, ntcolors="stoplight")
NTplot( xbar=1, ntcolors="stoplight")
NTplot(mean1 = 2, xbar=1, ntcolors="stoplight")
NTplot(type="confidence", ntcolors="stoplight")
## this is the set of colors that are assigned when ntcolors="BW"
c(col.alpha = "gray35",
col.notalpha = "gray85",
col.beta = "gray15",
col.power = "gray40",
col.pvalue = "gray50",
col.pvaluetranslucent = HH:::ColorWithAlpha("gray65"),
col.critical = "gray15",
col.border = "gray75",
col.text = "black",
col.conf = "gray45")
NTplot( ntcolors="BW")
NTplot(mean1 = 2, ntcolors="BW")
NTplot( xbar=1, ntcolors="BW")
NTplot(mean1 = 2, xbar=1, ntcolors="BW")
NTplot(type="confidence", ntcolors="BW")
# }
# NOT RUN {
# }
# NOT RUN {
## mean1 and xbar
NTplot(mean0=0, mean1=2, xbar=1.8, xlim=c(-3, 5))
NTplot(mean0=0, mean1=-2, xbar=-1.8, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0)
NTplot(mean0=0, mean1=2, xbar=2.1, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025)
NTplot(mean0=0, mean1=-2, xbar=-2.1, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025)
## mean1
NTplot(mean0=0, mean1=2, xbar=NA, xlim=c(-3, 5))
NTplot(mean0=0, mean1=-2, xbar=NA, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0)
NTplot(mean0=0, mean1=2, xbar=NA, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025)
NTplot(mean0=0, mean1=-2, xbar=NA, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025)
## xbar
NTplot(mean0=0, mean1=NA, xbar=1.8, xlim=c(-3, 5))
NTplot(mean0=0, mean1=NA, xbar=-1.8, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0)
NTplot(mean0=0, mean1=NA, xbar=2.1, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025)
NTplot(mean0=0, mean1=NA, xbar=-2.1, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025)
## t distribution
## mean1 and xbar
NTplot(mean0=0, mean1=2, xbar=1.8, xlim=c(-3, 5),
distribution.name="t", df=4)
NTplot(mean0=0, mean1=-2, xbar=-1.8, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0, distribution.name="t", df=4)
NTplot(mean0=0, mean1=2, xbar=2.1, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
NTplot(mean0=0, mean1=-2, xbar=-2.1, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
## mean1
NTplot(mean0=0, mean1=2, xbar=NA, xlim=c(-3, 5),
distribution.name="t", df=4)
NTplot(mean0=0, mean1=-2, xbar=NA, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0, distribution.name="t", df=4)
NTplot(mean0=0, mean1=2, xbar=NA, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
NTplot(mean0=0, mean1=-2, xbar=NA, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
## xbar
NTplot(mean0=0, mean1=NA, xbar=1.8, xlim=c(-3, 5),
distribution.name="t", df=4)
NTplot(mean0=0, mean1=NA, xbar=-1.8, xlim=c(-5, 3),
alpha.left=.05, alpha.right=0, distribution.name="t", df=4)
NTplot(mean0=0, mean1=NA, xbar=2.1, xlim=c(-3, 5),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
NTplot(mean0=0, mean1=NA, xbar=-2.1, xlim=c(-5, 3),
alpha.left=.025, alpha.right=.025, distribution.name="t", df=4)
## confidence intervals
NTplot(mean0=0, xlim=c(-3, 4), type="confidence")
NTplot(xbar=01, xlim=c(-3, 4), type="confidence")
NTplot(mean0=0, xlim=c(-4, 3), type="confidence",
alpha.left=.05, alpha.right=0)
NTplot(mean0=0, xlim=c(-3, 3), type="confidence",
alpha.left=.025, alpha.right=.025)
NTplot(mean0=95, sd=10, xlim=c(65, 125), type="confidence",
alpha.left=.025, alpha.right=.025)
NTplot(mean0=95, sd=10, xlim=c(65, 125), type="confidence",
alpha.left=.025, alpha.right=.025,
distribution="t", df=10)
# }