Check whether a vector of data contains values that fit a distribution
Usage
is.lognormal(values, alpha = 0.05, method = 1)
is.normal(values, alpha = 0.05, method = 1)
is.uniform(values, alpha = 0.05)
is.poisson(values, alpha = 0.05)
is.gamma(values, alpha = 0.05)
is.logistic(values, alpha = 0.05)
is.weibull(values, alpha = 0.05)
is.cauchy(values, alpha = 0.05)
setDisAlpha(alpha = 0.05)
unsetDisAlpha()
getDistribution(data, alpha = 0.05)
Arguments
- values
vector of values
- alpha
p-value alpha level
- method
method for calculation, where 1 = Shapiro-Wilk test and 2 = Kolmogorov-Smirnov test
- data
the data to check against distributions
Value
boolean value if lognormal distributed
boolean value if normal distributed
boolean value if uniform distributed
boolean value if poisson distributed
boolean value if gamma distributed
boolean value if logistic distributed
boolean value if logistic distributed
boolean value if cauchy distributed
setDisAlpha sets global significance level for testing of distribution
unsetDisAlpha removes global significance level for testing of distribution
Details
This function takes a numeric vector as its input. This vector contains the dataset that will be analyzed.
For Normal and LogNormal:
- Method 1: we perform the Shapiro-Wilk test on the (log-transformed) data to test for normality.
The null hypothesis of the Shapiro-Wilk test is that the data are normally distributed.
If the p-value is greater than the chosen significance level (typically 0.05),
we fail to reject the null hypothesis, indicating that the data may follow a log-normal distribution.
- Method 2: we perform the Kolmogorov-Smirnov test on the log-transformed data, comparing it to a normal distribution with the same mean and standard deviation. Again, if the p-value is greater than the chosen significance level, it suggests that the data may follow a log-normal distribution.
These tests provide a statistical assessment of whether your data follows a log-normal distribution.
Examples
# Set global alpha for testing significance
setDisAlpha(alpha = 0.05)
# Prepare all data to test
# Set the seed for reproducibility
set.seed(13200323)
lognormal_data <- stats::rlnorm(n = 4000, meanlog = 1, sdlog = 1) #lognormal data
normal_data <- stats::rnorm(n = 4000, mean = 10, sd = 3) #normal data
uniform_data <- stats::runif(4000,min=0,max=10) #uniform data
poisson_data <- stats::rpois(4000, lambda = 5) #poisson data
gamma_data <- stats::rgamma(4000,shape = 5, rate = 2) #gamma data
logis_data <- stats::rlogis(4000, location = 4, scale = 2)#logistic values
weibull_data <- stats::rweibull(4000, shape = 4, scale = 2) #weibull data
cauchy_data <- stats::rcauchy(4000, location = 8, scale = 5) #cauchy data
# EXAMPLE FOR is.lognormal
# Test if the data is lognormal
is.lognormal(lognormal_data)
#> [1] TRUE
is.lognormal(normal_data)
#> [1] FALSE
is.lognormal(uniform_data)
#> [1] FALSE
is.lognormal(poisson_data)
#> [1] FALSE
is.lognormal(gamma_data)
#> [1] FALSE
is.lognormal(logis_data)
#> [1] FALSE
is.lognormal(weibull_data)
#> [1] FALSE
is.lognormal(cauchy_data)
#> [1] FALSE
is.lognormal(1:4000)
#> [1] FALSE
# EXAMPLE FOR is.normal
# Test if the data fits a normal distribution
is.normal(lognormal_data)
#> [1] FALSE
is.normal(normal_data)
#> [1] TRUE
is.normal(uniform_data)
#> [1] FALSE
is.normal(poisson_data)
#> [1] FALSE
is.normal(gamma_data)
#> [1] FALSE
is.normal(logis_data)
#> [1] FALSE
is.normal(weibull_data)
#> [1] FALSE
is.normal(cauchy_data)
#> [1] FALSE
is.normal(1:4000)
#> [1] FALSE
if (FALSE) {
# EXAMPLES for is.uniform
# Test if the data fits a uniform distribution
is.uniform(lognormal_data)
is.uniform(normal_data)
is.uniform(uniform_data)
is.uniform(poisson_data)
is.uniform(gamma_data)
is.uniform(logis_data)
is.uniform(weibull_data)
is.uniform(cauchy_data)
is.uniform(1:4000)
}
if (FALSE) {
# EXAMPLE for is.poisson
# Test if the data fits a poisson distribution
is.poisson(lognormal_data)
is.poisson(normal_data)
is.poisson(uniform_data)
is.poisson(poisson_data)
is.poisson(gamma_data)
is.poisson(logis_data)
is.poisson(weibull_data)
is.poisson(cauchy_data)
is.poisson(1:4000)
}
if (FALSE) {
# EXAMPLE for is.gamma
# Test if the data fits a gamma distribution
is.gamma(lognormal_data)
is.gamma(normal_data)
is.gamma(uniform_data)
is.gamma(poisson_data)
is.gamma(gamma_data)
is.gamma(logis_data)
is.gamma(weibull_data)
is.gamma(cauchy_data)
is.gamma(1:4000)
}
if (FALSE) {
# EXAMPLE for is.logistic
# Test if the data fits a logistic distribution
is.logistic(lognormal_data)
is.logistic(normal_data)
is.logistic(uniform_data)
is.logistic(poisson_data)
is.logistic(gamma_data)
is.logistic(logis_data)
is.logistic(weibull_data)
is.logistic(cauchy_data)
is.logistic(1:4000)
}
if (FALSE) {
# Test if the data fits a weibull distribution
is.weibull(lognormal_data)
is.weibull(normal_data)
is.weibull(uniform_data)
is.weibull(poisson_data)
is.weibull(gamma_data)
is.weibull(logis_data)
is.weibull(weibull_data)
is.weibull(cauchy_data)
is.weibull(1:4000)
}
if (FALSE) {
# EXAMPLES for is.cauchy
# Test if the data fits a cauchy distribution
is.cauchy(lognormal_data)
is.cauchy(normal_data)
is.cauchy(uniform_data)
is.cauchy(poisson_data)
is.cauchy(gamma_data)
is.cauchy(logis_data)
is.cauchy(weibull_data)
is.cauchy(cauchy_data)
is.cauchy(1:4000)
}
if (FALSE) {
# set global distribution alpha
# default setting
setDisAlpha()
# set to 0.001
setDisAlpha(alpha = 0.01)
}
if (FALSE) {
# unset global distribution alpha
unsetDisAlpha()
}