boxcoxnc {AID} | R Documentation |
Box-Cox Transformation for Normality of a Variable
Description
boxcoxnc
performs Box-Cox transformation for normality of a variable and provides graphical analysis.
Usage
boxcoxnc(data, method = "sw", lambda = seq(-3,3,0.01), lambda2 = NULL, plot = TRUE,
alpha = 0.05, verbose = TRUE)
Arguments
data |
a numeric vector of data values. |
method |
a character string to select the desired method to be used to estimate Box-Cox transformation parameter. To use Shapiro-Wilk test method should be set to "sw". For method = "ad", boxcoxnc function uses Anderson-Darling test to estimate Box-Cox transformation parameter. Similarly, method should be set to "cvm", "pt", "sf", "lt", "jb", "ac", "mle" to use Cramer-von Mises, Pearson Chi-square, Shapiro-Francia, Lilliefors, Jarque-Bera tests, artificial covariate method and maximum likelihood estimation, respectively. Default is set to method = "sw". |
lambda |
a vector which includes the sequence of candidate lambda values. Default is set to (-3,3) with increment 0.01. |
lambda2 |
a numeric for an additional shifting parameter. Default is set to lambda2 = 0. |
plot |
a logical to plot histogram with its density line and qqplot of raw and transformed data. Defaults plot = TRUE. |
alpha |
the level of significance to check the normality after transformation. Default is set to alpha = 0.05. |
verbose |
a logical for printing output to R console. |
Details
Denote y
the variable at the original scale and y'
the transformed variable. The Box-Cox power transformation is defined by:
y' = \left\{ \begin{array}{ll}
\frac{y^\lambda - 1}{\lambda} \mbox{ , if $\lambda \neq 0$} \cr
log(y) \mbox{ , if $\lambda = 0$}
\end{array} \right.
If the data include any nonpositive observations, a shifting parameter \lambda_2
can be included in the transformation given by:
y' = \left\{ \begin{array}{ll}
\frac{(y + \lambda_2)^\lambda - 1}{\lambda} \mbox{ , if $\lambda \neq 0$} \cr
log(y + \lambda_2) \mbox{ , if $\lambda = 0$}
\end{array} \right.
Value
A list with class "boxcoxnc" containing the following elements:
method |
method preferred to estimate Box-Cox transformation parameter |
lambda.hat |
estimate of Box-Cox Power transformation parameter based on corresponding method |
lambda2 |
additional shifting parameter |
statistic |
statistic of normality test for transformed data based on specified normality test in method. For artificial covariate method, statistic is obtained by Shapiro-Wilk test for transformed data |
p.value |
p.value of normality test for transformed data based on specified normality test in method. For artificial covariate method, p.value is obtained by Shapiro-Wilk test for transformed data |
alpha |
the level of significance to assess normality. |
tf.data |
transformed data set |
var.name |
variable name |
Author(s)
Osman Dag, Ozgur Asar, Ozlem Ilk
References
Asar, O., Ilk, O., Dag, O. (2017). Estimating Box-Cox Power Transformation Parameter via Goodness of Fit Tests. Communications in Statistics - Simulation and Computation, 46:1, 91–105.
Dag, O., Asar, O., Ilk, O. (2014). A Methodology to Implement Box-Cox Transformation When No Covariate is Available. Communications in Statistics - Simulation and Computation, 43:7, 1740–1759.
Examples
library(AID)
data(textile)
out <- boxcoxnc(textile[,1], method = "sw")
out$lambda.hat # the estimate of Box-Cox parameter based on Shapiro-Wilk test statistic
out$p.value # p.value of Shapiro-Wilk test for transformed data
out$tf.data # transformed data set
confInt(out) # mean and confidence interval for back transformed data
out2 <- boxcoxnc(textile[,1], method = "sf")
out2$lambda.hat # the estimate of Box-Cox parameter based on Shapiro-Francia test statistic
out2$p.value # p.value of Shapiro-Francia test for transformed data
out2$tf.data
confInt(out2)