boxcox1p

Compute a one-parameter Box-Cox transformation of 1+x.

A one-parameter Box-Cox transformation is defined as

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

Usage

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

boxcox1p( x, lambda )

Computes a one-parameter Box-Cox transformation of 1+x.

var v = boxcox1p( 1.0, 2.5 );
// returns ~1.8627

v = boxcox1p( 4.0, 2.5 );
// returns ~21.9607

v = boxcox1p( 10.0, 2.5 );
// returns ~160.1246

v = boxcox1p( 2.0, 0.0 );
// returns ~1.0986

v = boxcox1p( -1.0, 2.5 );
// returns -0.4

v = boxcox1p( 0.0, -1.0 );
// returns 0.0

v = boxcox1p( -1.0, -1.0 );
// returns -Infinity

Examples

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

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 = boxcox1p( x[ i ], l[ j ] );
        console.log( 'boxcox1p(%d, %d) = %d', x[ i ], l[ j ], b );
    }
}

C APIs

Usage

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

stdlib_base_boxcox1p( x, lambda )

Computes a one-parameter Box-Cox transformation of 1+x.

double out = stdlib_base_boxcox1p( 1.0, 2.5 );
// returns ~1.8627

out = stdlib_base_boxcox1p( 4.0, 2.5 );
// returns ~21.9607

The function accepts the following arguments:

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

Examples

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

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

    double b;
    int i;
    int j;
    for ( i = 0; i < 3; i++ ) {
        for ( j = 0; j < 3; j++ ){
            b = stdlib_base_boxcox1p( x[ i ], l[ j ] );
            printf ( "boxcox1p(%lf, %lf) = %lf\n", x[ i ], l[ j ], b );
        }
    }
}

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?