norm.curve {HH} | R Documentation |
Plot a normal curve or a t-curve with both x (with mean
and se
as specified) and z or t (mean=0, se=1) axes.
Shade a region for rejection region, acceptance region, confidence
interval.
The density axis is marked in units appropriate for the z or t axis.
The existence of any of the arguments se
, sd
, n
forces dual x
and (z
or t
) scales. When none of these
arguments
are used, the main title defaults to
"Standard Normal Density N(0,1)"
and only the z
scale is
printed. A second density curve, appropriate for an alternative
hypothesis
is displayed when the argument axis.name="z1"
is specified.
The shaded area is printed on the plot.
When the optional argument df.t
is specified, then a
t-distribution with df.t
degrees of freedom is plotted.
norm.observed
plots a vertical line with arrowhead markers at
the location of the observed xbar.
norm.setup(xlim.in=c(-2.5,2.5), ylim.in = c(0, 0.4)/se, mean=0, main.in=main.calc, se=sd/sqrt(n), sd=1, n=1, df.t=NULL, ...) norm.curve(mean=0, se=sd/sqrt(n), critical.values=mean + se*c(-1, 1)*z.975, z=do.call("seq", as.list(c((par()$usr[1:2]-mean)/se, length=109))), shade, col=par("col"), axis.name=ifelse(is.null(df.t) || df.t == Inf, "z", "t"), second.axis.label.line=3, sd=1, n=1, df.t=NULL, ...) norm.observed(xbar, t.xbar, col="blue")
xlim.in, ylim.in |
xlim, ylim .
Defaults to correct values for standard
Normal(0,1). User must set values for other mean and standard
error. |
mean |
Mean of the normal distribution in xbar-scale,
used in calls to dnorm . |
se |
standard error of the normal distribution in xbar-scale,
used in calls to dnorm . |
sd, n |
standard deviation and sample size of the normal
distribution in x-scale. These may be used as an alternate way of
specifying the standard error se . |
df.t |
Degrees of freedom for the t distribution. When
df.t is NULL , the normal distribution is used. |
critical.values |
Critical values in xbar-scale. A scalar value implies a one-sided test. A vector of two values implies a two-sided test. |
main.in |
Main title. Default value is:
if (is.null(df.t)) ## normal
ifelse(!(missing(se) && missing(sd) && missing(n)),
paste("normal density: se =", round(se,3)),
"Standard Normal Density N(0,1)")
else { ## t distribution
if (length(df.t) != 1) stop("df.t must have length 1")
ifelse(!(missing(se) && missing(sd) && missing(n)),
paste("t density: se = ", round(se,3), ", df = ", df.t, sep=""),
paste("t density, df =", df.t))
}
|
z |
z-values (standardized to N(0,1)) used as base of plot. |
shade |
Valid values for shade are "right", "left", "inside", "outside", "none". Default is "right" for one-sided critical.values and "outside" for two-sided critical values. |
col |
color of the shaded region and the area of the shaded region. |
axis.name |
defaults to "z"
for the standard normal scale centered on
the null hypothesis value of the mean or to "t" for
the t distribution with df.t degrees of freedom.
For alternative hypotheses, the user must specify either
"z1" or "t1" for the standard normal scale,
or t distibution with df.t degrees of freedom, centered on
the alternate hypothesis value of the mean. |
second.axis.label.line |
Defaults to 3 .
Normally not needed. When two curves are drawn, one normal and one t,
then the second curve needs a different label for the y-axis.
Set this value to 4 to avoid overprinting. |
xbar |
xbar-value of the observed data. |
t.xbar |
t-value of the observed data under the null hypothesis. |
... |
Other arguments which are ignored. |
Richard M. Heiberger <rmh@temple.edu>
old.par <- par(oma=c(4,0,2,5), mar=c(7,7,4,2)+.1) norm.setup() norm.curve() norm.setup(xlim=c(75,125), mean=100, se=5) norm.curve(100, 5, 100+5*(1.645)) norm.observed(112, (112-100)/5) norm.setup(xlim=c(75,125), mean=100, se=5) norm.curve(100, 5, 100+5*(-1.645), shade="left") norm.setup(xlim=c(75,125), mean=100, se=5) norm.curve(mean=100, se=5, col='red') norm.setup(xlim=c(75,125), mean=100, se=5) norm.curve(100, 5, 100+5*c(-1.96, 1.96)) norm.setup(xlim=c(-3, 6)) norm.curve(crit=1.645, mean=1.645+1.281552, col='green', shade="left", axis.name="z1") norm.curve(crit=1.645, col='red') norm.setup(xlim=c(-6, 12), se=2) norm.curve(crit=2*1.645, se=2, mean=2*(1.645+1.281552), col='green', shade="left", axis.name="z1") norm.curve(crit=2*1.645, se=2, mean=0, col='red', shade="right") par(mfrow=c(2,1)) norm.setup() norm.curve() mtext("norm.setup(); norm.curve()", side=1, line=5) norm.setup(n=1) norm.curve(n=1) mtext("norm.setup(n=1); norm.curve(n=1)", side=1, line=5) par(mfrow=c(1,1)) par(mfrow=c(2,2)) ## naively scaled, ## areas under the curve are numerically the same but visually different norm.setup(n=1) norm.curve(n=1) norm.observed(1.2, 1.2/(1/sqrt(1))) norm.setup(n=2) norm.curve(n=2) norm.observed(1.2, 1.2/(1/sqrt(2))) norm.setup(n=4) norm.curve(n=4) norm.observed(1.2, 1.2/(1/sqrt(4))) norm.setup(n=10) norm.curve(n=10) norm.observed(1.2, 1.2/(1/sqrt(10))) mtext("areas under the curve are numerically the same but visually different", side=3, outer=TRUE) ## scaled so all areas under the curve are numerically and visually the same norm.setup(n=1, ylim=c(0,1.3)) norm.curve(n=1) norm.observed(1.2, 1.2/(1/sqrt(1))) norm.setup(n=2, ylim=c(0,1.3)) norm.curve(n=2) norm.observed(1.2, 1.2/(1/sqrt(2))) norm.setup(n=4, ylim=c(0,1.3)) norm.curve(n=4) norm.observed(1.2, 1.2/(1/sqrt(4))) norm.setup(n=10, ylim=c(0,1.3)) norm.curve(n=10) norm.observed(1.2, 1.2/(1/sqrt(10))) mtext("all areas under the curve are numerically and visually the same", side=3, outer=TRUE) par(mfrow=c(1,1)) ## t distribution mu.H0 <- 16 se.val <- .4 df.val <- 10 crit.val <- mu.H0 - qt(.95, df.val) * se.val mu.alt <- 15 obs.mean <- 14.8 alt.t <- (mu.alt - crit.val) / se.val norm.setup(xlim=c(12, 19), se=se.val, df.t=df.val) norm.curve(crit=crit.val, se=se.val, df.t=df.val, mean=mu.alt, col='green', shade="left", axis.name="t1") norm.curve(crit=crit.val, se=se.val, df.t=df.val, mean=mu.H0, col='gray', shade="right") norm.observed(obs.mean, (obs.mean-mu.H0)/se.val) ## normal norm.setup(xlim=c(12, 19), se=se.val) norm.curve(crit=crit.val, se=se.val, mean=mu.alt, col='green', shade="left", axis.name="z1") norm.curve(crit=crit.val, se=se.val, mean=mu.H0, col='gray', shade="right") norm.observed(obs.mean, (obs.mean-mu.H0)/se.val) ## normal and t norm.setup(xlim=c(12, 19), se=se.val, main="t(6) and normal") norm.curve(crit=15.5, se=se.val, mean=16.3, col='gray', shade="right") norm.curve(crit=15.5, se.val, df.t=6, mean=14.7, col='green', shade="left", axis.name="t1", second.axis.label.line=4) norm.curve(crit=15.5, se=se.val, mean=16.3, col='gray', shade="none") norm.setup(xlim=c(12, 19), se=se.val, main="t(6) and normal") norm.curve(crit=15.5, se=se.val, mean=15.5, col='gray', shade="right") norm.curve(crit=15.5, se=se.val, df.t=6, mean=15.5, col='green', shade="left", axis.name="t1", second.axis.label.line=4) norm.curve(crit=15.5, se=se.val, mean=15.5, col='gray', shade="none") par(old.par)