boxcoxfr {AID} | R Documentation |

## Box-Cox Transformation for One-Way ANOVA

### Description

`boxcoxfr`

performs Box-Cox transformation for one-way ANOVA. It is useful to use if the normality or/and the homogenity of variance is/are not satisfied while comparing two or more groups.

### Usage

```
boxcoxfr(y, x, option = "both", lambda = seq(-3, 3, 0.01), lambda2 = NULL,
tau = 0.05, alpha = 0.05, verbose = TRUE)
```

### Arguments

`y` |
a numeric vector of data values. |

`x` |
a vector or factor object which gives the group for the corresponding elements of y. |

`option` |
a character string to select the desired option for the objective of transformation. "nor" and "var" are the options which search for a transformation to satisfy the normality of groups and the homogenity of variances, respectively. "both" is the option which searches for a transformation to satisfy both the normality of groups and the homogenity of variances. Default is set to "both". |

`lambda` |
a vector which includes the sequence of feasible 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. |

`tau` |
the feasible region parameter for the construction of feasible region. Default is set to 0.05. If tau = 0, it returns the MLE of transformation parameter. |

`alpha` |
the level of significance to check the normality and variance homogenity 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.
```

Maximum likelihood estimation in feasible region (MLEFR) is used while estimating transformation parameter. MLEFR maximizes the likehood function in feasible region constructed by Shapiro-Wilk test and Bartlett's test. After transformation, normality of the data in each group and homogeneity of variance are assessed by Shapiro-Wilk test and Bartlett's test, respectively.

### Value

A list with class "boxcoxfr" containing the following elements:

`method` |
method applied in the algorithm |

`lambda.hat` |
the estimated lambda |

`lambda2` |
additional shifting parameter |

`shapiro` |
a data frame which gives the test results for the normality of groups via Shapiro-Wilk test |

`bartlett` |
a matrix which returns the test result for the homogenity of variance via Bartlett's test |

`alpha` |
the level of significance to assess the assumptions. |

`tf.data` |
transformed data set |

`x` |
a factor object which gives the group for the corresponding elements of y |

`y.name` |
variable name of y |

`x.name` |
variable name of x |

### Author(s)

Osman Dag, Ozlem Ilk

### References

Dag, O., Ilk, O. (2017). An Algorithm for Estimating Box-Cox Transformation Parameter in ANOVA. *Communications in Statistics - Simulation and Computation*, **46:8**, 6424–6435.

### Examples

```
######
# Communication between AID and onewaytests packages
library(AID)
library(onewaytests)
# Average Annual Daily Traffic Data (AID)
data(AADT)
# to obtain descriptive statistics by groups (onewaytests)
describe(aadt ~ class, data = AADT)
# to check normality of data in each group (onewaytests)
nor.test(aadt ~ class, data = AADT)
# to check variance homogeneity (onewaytests)
homog.test(aadt ~ class, data = AADT, method = "Bartlett")
# to apply Box-Cox transformation (AID)
out <- boxcoxfr(AADT$aadt, AADT$class)
# to obtain transformed data
AADT$tf.aadt <- out$tf.data
# to conduct one-way ANOVA with transformed data (onewaytests)
result<-aov.test(tf.aadt ~ class, data = AADT)
# to make pairwise comparison (onewaytests)
paircomp(result)
# to convert the statistics into the original scale (AID)
confInt(out, level = 0.95)
######
library(AID)
data <- rnorm(120, 10, 1)
factor <- rep(c("X", "Y", "Z"), each = 40)
out <- boxcoxfr(data, factor, lambda = seq(-5, 5, 0.01), tau = 0.01, alpha = 0.01)
confInt(out, level = 0.95)
######
```

*AID*version 2.9 Index]