boxcox

Compute a one-parameter Box-Cox transformation.

The one-parameter Box-Cox transformation is defined as

y Superscript lamda Baseline equals StartLayout Enlarged left-brace 1st Row 1st Column StartFraction y Superscript lamda Baseline minus 1 Over lamda EndFraction 2nd Column if lamda not-equals 0 2nd Row 1st Column ln left-parenthesis y right-parenthesis 2nd Column if lamda equals 0 EndLayout

Usage

var boxcox = require( '@stdlib/math/base/special/boxcox' );

boxcox( x, lambda )

Computes a one-parameter Box-Cox transformation.

var v = boxcox( 1.0, 2.5 );
// returns 0.0

v = boxcox( 4.0, 2.5 );
// returns 12.4

v = boxcox( 10.0, 2.5 );
// returns ~126.0911

v = boxcox( 2.0, 0.0 );
// returns ~0.6931

v = boxcox( -1.0, 2.5 );
// returns NaN

v = boxcox( 0.0, -1.0 );
// returns -Infinity

Examples

var incrspace = require( '@stdlib/array/base/incrspace' );
var boxcox = require( '@stdlib/math/base/special/boxcox' );

var x = incrspace( -1.0, 10.0, 1.0 );
var l = incrspace( -0.5, 5.0, 0.5 );

var b;
var i;
var j;
for ( i = 0; i < x.length; i++ ) {
    for ( j = 0; j < l.length; j++ ) {
        b = boxcox( x[ i ], l[ j ] );
        console.log( 'boxcox(%d, %d) = %d', x[ i ], l[ j ], b );
    }
}

C APIs

Usage

#include "stdlib/math/base/special/boxcox.h"

stdlib_base_boxcox( x, lambda )

Computes a one-parameter Box-Cox transformation.

double out = stdlib_base_boxcox( 1.0, 2.5 );
// returns 0.0

out = stdlib_base_boxcox( 4.0, 2.5 );
// returns 12.4

The function accepts the following arguments:

  • x: [in] double input value.
  • lambda: [in] double power parameter.
double stdlib_base_boxcox ( const double x, const double lambda );

Examples

#include "stdlib/math/base/special/boxcox.h"
#include <stdio.h>

int main( void ) {
    const double x[] = { -1.0, 10.0, 1.0 };
    const double y[] = { -0.5, 5.0, 0.5 };

    double out;
    int i;
    int j;
    for ( i = 0; i < 3; i++ ) {
        for ( j = 0; j < 3; j++ ){
            out = stdlib_base_boxcox( x[ i ], y[ j ] );
            printf ( "x: %lf, y: %lf, out: %lf\n", x[ i ], y[ j ], out );
        }
    }
}

References

  • Box, G. E. P., and D. R. Cox. 1964. "An Analysis of Transformations." Journal of the Royal Statistical Society. Series B (Methodological) 26 (2). [Royal Statistical Society, Wiley]: 211–52. http://www.jstor.org/stable/2984418.
Did you find this page helpful?