boxcox
Compute a one-parameter Box-Cox transformation.
The one-parameter Box-Cox transformation is defined as
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.