pdf.Normal | R Documentation |
Please see the documentation of Normal()
for some properties
of the Normal distribution, as well as extensive examples
showing to how calculate p-values and confidence intervals.
## S3 method for class 'Normal'
pdf(d, x, drop = TRUE, elementwise = NULL, ...)
## S3 method for class 'Normal'
log_pdf(d, x, drop = TRUE, elementwise = NULL, ...)
d |
A |
x |
A vector of elements whose probabilities you would like to
determine given the distribution |
drop |
logical. Should the result be simplified to a vector if possible? |
elementwise |
logical. Should each distribution in |
... |
Arguments to be passed to |
In case of a single distribution object, either a numeric
vector of length probs
(if drop = TRUE
, default) or a matrix
with
length(x)
columns (if drop = FALSE
). In case of a vectorized distribution
object, a matrix with length(x)
columns containing all possible combinations.
Other Normal distribution:
cdf.Normal()
,
fit_mle.Normal()
,
quantile.Normal()
set.seed(27)
X <- Normal(5, 2)
X
mean(X)
variance(X)
skewness(X)
kurtosis(X)
random(X, 10)
pdf(X, 2)
log_pdf(X, 2)
cdf(X, 4)
quantile(X, 0.7)
### example: calculating p-values for two-sided Z-test
# here the null hypothesis is H_0: mu = 3
# and we assume sigma = 2
# exactly the same as: Z <- Normal(0, 1)
Z <- Normal()
# data to test
x <- c(3, 7, 11, 0, 7, 0, 4, 5, 6, 2)
nx <- length(x)
# calculate the z-statistic
z_stat <- (mean(x) - 3) / (2 / sqrt(nx))
z_stat
# calculate the two-sided p-value
1 - cdf(Z, abs(z_stat)) + cdf(Z, -abs(z_stat))
# exactly equivalent to the above
2 * cdf(Z, -abs(z_stat))
# p-value for one-sided test
# H_0: mu <= 3 vs H_A: mu > 3
1 - cdf(Z, z_stat)
# p-value for one-sided test
# H_0: mu >= 3 vs H_A: mu < 3
cdf(Z, z_stat)
### example: calculating a 88 percent Z CI for a mean
# same `x` as before, still assume `sigma = 2`
# lower-bound
mean(x) - quantile(Z, 1 - 0.12 / 2) * 2 / sqrt(nx)
# upper-bound
mean(x) + quantile(Z, 1 - 0.12 / 2) * 2 / sqrt(nx)
# equivalent to
mean(x) + c(-1, 1) * quantile(Z, 1 - 0.12 / 2) * 2 / sqrt(nx)
# also equivalent to
mean(x) + quantile(Z, 0.12 / 2) * 2 / sqrt(nx)
mean(x) + quantile(Z, 1 - 0.12 / 2) * 2 / sqrt(nx)
### generating random samples and plugging in ks.test()
set.seed(27)
# generate a random sample
ns <- random(Normal(3, 7), 26)
# test if sample is Normal(3, 7)
ks.test(ns, pnorm, mean = 3, sd = 7)
# test if sample is gamma(8, 3) using base R pgamma()
ks.test(ns, pgamma, shape = 8, rate = 3)
### MISC
# note that the cdf() and quantile() functions are inverses
cdf(X, quantile(X, 0.7))
quantile(X, cdf(X, 7))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.