Skip to contents

This functions checks whether any transformation, such as log- or exp-transforming, was applied to the response variable (dependent variable) in a regression formula. Currently, following patterns are detected: log, log1p, log2, log10, exp, expm1, sqrt, log(y+<number>), log-log, power (e.g. to 2nd power, like I(y^2)), inverse (like 1/y), scale (e.g., y/3), and box-cox (e-g-, (y^lambda - 1) / lambda).

Usage

find_transformation(x, ...)

Arguments

x

A regression model or a character string of the formulation of the response variable.

...

Currently not used.

Value

A string, with the name of the function of the applied transformation. Returns "identity" for no transformation, and e.g. "log(y+3)" when a specific values was added to the response variables before log-transforming. For unknown transformations, returns NULL.

Examples

# identity, no transformation
model <- lm(Sepal.Length ~ Species, data = iris)
find_transformation(model)
#> [1] "identity"

# log-transformation
model <- lm(log(Sepal.Length) ~ Species, data = iris)
find_transformation(model)
#> [1] "log"

# log+2
model <- lm(log(Sepal.Length + 2) ~ Species, data = iris)
find_transformation(model)
#> [1] "log(x+2)"

# inverse, response provided as character string
find_transformation("1 / y")
#> [1] "inverse"