Calculates the Anderson--Darling test statistic for a sample given a particular distribution, and determines whether to reject the hypothesis that a sample is drawn from that distribution.
anderson_darling_normal(data = NULL, x, alpha = 0.05) anderson_darling_lognormal(data = NULL, x, alpha = 0.05) anderson_darling_weibull(data = NULL, x, alpha = 0.05)
a data.frame-like object (optional)
a numeric vector or a variable in the data.frame
the required significance level of the test. Defaults to 0.05.
an object of class
anderson_darling. This object has the following
call the expression used to call this function
dist the distribution used
data a copy of the data analyzed
n the number of observations in the sample
A the Anderson--Darling test statistic
osl the observed significance level (p-value),
parameters of the distribution are estimated from the data
alpha the required significance level for the test.
This value is given by the user.
reject_distribution a logical value indicating whether
the hypothesis that the data is drawn from the specified distribution
should be rejected
The Anderson--Darling test statistic is calculated for the distribution given by the user.
The observed significance level (OSL), or p-value, is calculated assuming that the parameters of the distribution are unknown; these parameters are estimate from the data.
anderson_darling_normal computes the Anderson--Darling
test statistic given a normal distribution with mean and standard deviation
equal to the sample mean and standard deviation.
anderson_darling_lognormal is the same as
anderson_darling_normal except that the data is log transformed
anderson_darling_weibull computes the Anderson--Darling
test statistic given a Weibull distribution with shape and scale parameters
estimated from the data using a maximum likelihood estimate.
The test statistic,
A, is modified to account for
the fact that the parameters of the population are not known,
but are instead estimated from the sample. This modification is
a function of the sample size only, and is different for each
distribution (normal/lognormal or Weibull). Several such modifications
have been proposed. This function uses the modification published in
Stephens (1974), Lawless (1982) and CMH-17-1G. Some other implementations
of the Anderson-Darling test, such as the implementation in the
nortest package, use other modifications, such as the one
published in D'Agostino and Stephens (1986). As such, the p-value
reported by this function may differ from the p-value reported
by implementations of the Anderson--Darling test that use
different modifiers. Only the unmodified
test statistic is reported in the result of this function, but
the modified test statistic is used to compute the OSL (p-value).
This function uses the formulae for observed significance level (OSL) published in CMH-17-1G. These formulae depend on the particular distribution used.
The results of this function have been validated against published values in Lawless (1982).
J. F. Lawless, Statistical models and methods for lifetime data. New York: Wiley, 1982.
"Composite Materials Handbook, Volume 1. Polymer Matrix Composites Guideline for Characterization of Structural Materials," SAE International, CMH-17-1G, Mar. 2012.
M. A. Stephens, “EDF Statistics for Goodness of Fit and Some Comparisons,” Journal of the American Statistical Association, vol. 69, no. 347. pp. 730–737, 1974.
R. D’Agostino and M. Stephens, Goodness-of-Fit Techniques. New York: Marcel Dekker, 1986.
library(dplyr) carbon.fabric %>% filter(test == "FC") %>% filter(condition == "RTD") %>% anderson_darling_normal(strength) #> #> Call: #> anderson_darling_normal(data = ., x = strength) #> #> Distribution: Normal ( n = 18 ) #> Test statistic: A = 0.9224776 #> OSL (p-value): 0.01212193 (assuming unknown parameters) #> Conclusion: Sample is not drawn from a Normal distribution ( alpha = 0.05 ) ## Call: ## anderson_darling_normal(data = ., x = strength) ## ## Distribution: Normal ( n = 18 ) ## Test statistic: A = 0.9224776 ## OSL (p-value): 0.01212193 (assuming unknown parameters) ## Conclusion: Sample is not drawn from a Normal distribution (alpha = 0.05)