Random

Col Shuffle

Syntax: y = Col Shuffle(<byVar, <Excluded( Row State() )>, ...>)

Description: Returns a random integer between 1 and the number of rows of the current data table. When used in a column formula, Col Shuffle() creates a random ordering of row numbers with each row number appearing only once. The ordering is cached internally so that multiple evaluations are efficient.

JMP Version Added: Before version 14

Example 1


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Shuffle 1", Numeric, Continuous, Set Formula( Col Shuffle() ) );
dt << New Column( "Shuffle 2", Numeric, Continuous, Set Formula( Col Shuffle() ) );

Example 2


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Shuffle", Numeric, Continuous, Set Formula( Col Shuffle( :age ) ) );

Example 3


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Clear Row States << Select Rows( Index( 1, 10 ) ) << Exclude;
dt << New Column( "Col Shuffle for each Sex", Formula( Col Shuffle( :height, :sex ) ) );
dt << New Column( "Col Shuffle for each Sex grouped by Excluded",
    Formula( Col Shuffle( :height, :sex, Excluded( Row State() ) ) )
);

Make KFold Formula

Syntax: y = Make KFold Formula( folds, Y Columns( cols ), <<Stratification Columns( cols ), <<Grouping Columns( cols ) )

Description: Generates a validation column with folds levels when used in a column formula. This JSL function is primarily used by the Make Validation Column platform to generate formula columns.

JMP Version Added: 17

Example 1


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "KFold Validation",
    "Numeric",
    "Nominal",
    Formula( Make KFold Formula( 5, <<Y Columns( :height ) ) )
);

Example 2


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Stratified KFold",
    "Numeric",
    "Nominal",
    Formula(
        Make KFold Formula( 4, <<Y Columns( :height ), <<Stratification Columns( :sex ) )
    )
);

Make Validation Formula

Syntax: y = Make Validation Formula( rates, <<Stratification Columns( cols ), <<Grouping Columns( cols ), <<Cutpoint Column ( col ), <<Cutpoint Batch ID( col ), <<Determine cutpoints using( "Proportions"|"Numbers of Rows"|"Fixed Time or Date"|"Elapsed Time" ), <<Assign Extra Rows( "To Training"|"To Validation"|"To Test" ) )

Description: Generates a two-level or three-level validation column when used in a column formula. The rates argument is a 3 by 1 matrix that contains the training, validation, and test rates, respectively. This JSL function is primarily used by the Make Validation Column platform to generate formula columns.

JMP Version Added: 15

Example 1


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Validation",
    "Numeric",
    "Nominal",
    Formula( Make Validation Formula( [.6, .4, 0] ) ),
    Set Property( "Value Labels", {0 = "Training", 1 = "Validation"} )
);

Example 2


dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Validation",
    "Numeric",
    "Nominal",
    Formula( Make Validation Formula( [.6, .2, .2], <<Stratification Columns( :age ) ) ),
    Set Property( "Value Labels", {0 = "Training", 1 = "Validation", 2 = "Test"} )
);

Example 3


dt = Open( "$SAMPLE_DATA/Functional Data/Weekly Weather Data.jmp" );
dt << New Column( "Validation",
    "Numeric",
    "Nominal",
    Formula(
        Make Validation Formula(
            [20, 10, 4],
            <<Cutpoint Column( :Week of Year ),
            <<Cutpoint Batch ID( :ID ),
            <<Determine cutpoints using( "Numbers of Rows" )
        )
    ),
    Set Property( "Value Labels", {0 = "Training", 1 = "Validation", 2 = "Test"} )
);

Random Beta

Syntax: y = Random Beta( alpha, beta, <theta=0>, <sigma=1> )

Description: Returns a random number from a beta distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Beta( 1, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Beta( 1, 1 ) );
//show results
Show( x, v );

Random Beta Binomial

Syntax: y = Random Beta Binomial( n, p, <delta=0> )

Description: Returns a random number from a beta binomial distribution for n trials with probability p and correlation delta.

JMP Version Added: Before version 14



//produce a single random number
x = Random Beta Binomial( 14, .5, .2 );
//produce a vector of random numbers
v = J( 1, 10, Random Beta Binomial( 14, .5, .2 ) );
//show results
Show( x, v );

Random Binomial

Syntax: y = Random Binomial( n, p )

Description: Returns a random number from a binomial distribution with n trials and event probability p.

JMP Version Added: Before version 14


exrbinp = 0.5;
exrbinn = 40;
exrbinlsz = Log( 1000 );
New Window( "Example: Random Binomial and Empirical Distribution",
    exrbiny = Graph Box(
        Y Scale( 0, 1.05 ),
        X Scale( 0, 40 ),
        Pen Color( "red" ),
        Pen Size( 2 );
        exrbinsz = Round( Exp( exrbinlsz ) );
        exrbinsamp = J( Round( exrbinsz ), 1, . );
        exrbinfreq = J( Round( exrbinn + 1 ), 1, . );
        For( exrbink = 1, exrbink <= Round( exrbinsz ), exrbink++,
            exrbinsamp[exrbink] = Random Binomial( exrbinn, exrbinp )
        );
        For( exrbink = 0, exrbink <= Round( exrbinn ), exrbink++,
            exrbinfreq[exrbink + 1] = Sum( exrbinsamp <= exrbink ) / Round( exrbinsz )
        );
        For( exrbink = 0, exrbink < Round( exrbinn ), exrbink++,
            H Line(
                exrbink,
                exrbink + 1,
                Binomial Distribution( exrbinp, Round( exrbinn ), exrbink )
            );
            V Line(
                exrbink + 1,
                Binomial Distribution( exrbinp, Round( exrbinn ), exrbink ),
                Binomial Distribution( exrbinp, Round( exrbinn ), exrbink + 1 )
            );
        );
        Pen Color( "blue" );
        For( exrbink = 1, exrbink <= Round( exrbinn ), exrbink++,
            H Line( exrbink - 1, exrbink, exrbinfreq[exrbink] );
            V Line( exrbink, exrbinfreq[exrbink], exrbinfreq[exrbink + 1] );
        );
        Text(
            {0.5, 0.9},
            "n=",
            Round( exrbinn ),
            " p=",
            Round( exrbinp, 2 ),
            " size=",
            Round( exrbinsz )
        );
    ),
    H List Box(
        Slider Box( Log( 10 ), Log( 5000 ), exrbinlsz, exrbiny << reshow ),
        Text Box( " random sample size" )
    )
);

Random Category

Syntax: y = Random Category( probabilityA, resultA, probabilityB, resultB, resultElse )

Description: Returns a random category given pairs of probability and result expressions. A random uniform number is generated and compared to the probability arguments to determine which result argument is returned.

JMP Version Added: Before version 14


Random Category( .2, "A", .3, "B", .4, "C", "D" );

Random Cauchy

Syntax: y = Random Cauchy()

Description: Returns a random number from a Cauchy distribution with a median of zero.

JMP Version Added: Before version 14



//produce a single random number
x = Random Cauchy();
//produce a vector of random numbers
v = J( 1, 10, Random Cauchy() );
//show results
Show( x, v );

Random ChiSquare

Syntax: y = Random ChiSquare( df, <nonCentrality=0> )

Description: Returns a random number from a Chi-Square distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random ChiSquare( 2 );
//produce a vector of random numbers
v = J( 1, 10, Random ChiSquare( 2 ) );
//show results
Show( x, v );

Random ExGaussian

Syntax: y = Random ExGaussian( location, scale, shape)

Description: Returns a random number from an ExGaussian distribution.

JMP Version Added: 18



//produce a single random number
x = Random ExGaussian( 0, .5, .25 );
//produce a vector of random numbers
v = J( 1, 10, Random ExGaussian( 0, .5, .25 ) );
//show results
Show( x, v );

Random Exp

Syntax: y = Random Exp()

Description: Returns a random number from an exponential distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Exp();
//produce a vector of random numbers
v = J( 1, 10, Random Exp() );
//show results
Show( x, v );

Random F

Syntax: y = Random F( dfnum, dfden, <nonCentrality=0> )

Description: Returns a random number from an F distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random F( 2, 2 );
//produce a vector of random numbers
v = J( 1, 10, Random F( 2, 2 ) );
//show results
Show( x, v );

Random Frechet

Syntax: y = Random Frechet( <mu=0>, <sigma=1> )

Description: Returns a random number from a Fréchet distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Frechet( 10, 5 );
//produce a vector of random numbers
v = J( 1, 10, Random Frechet( 10, 5 ) );
//show results
Show( x, v );

Random GLog

Syntax: y = Random GLog( mu, sigma, lambda )

Description: Returns a random number from a generalized logarithm distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random GLog( 4, 1, 0.1 );
//produce a vector of random numbers
v = J( 1, 10, Random GLog( 4, 1, 0.1 ) );
//show results
Show( x, v );

Random Gamma

Syntax: y = Random Gamma( alpha, <scale=1> )

Description: Returns a random number from a gamma distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Gamma( 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Gamma( 1 ) );
//show results
Show( x, v );

Random Gamma Poisson

Syntax: y = Random Gamma Poisson( lambda, <sigma=1> )

Description: Returns a random number from a gamma Poisson distribution with parameters lambda and sigma.

JMP Version Added: Before version 14



//produce a single random number
x = Random Gamma Poisson( 3, 2 );
//produce a vector of random numbers
v = J( 1, 10, Random Gamma Poisson( 3, 2 ) );
//show results
Show( x, v );

Random GenGamma

Syntax: y = Random GenGamma( <mu=0>, <sigma=1>, <lambda=0> )

Description: Returns a random number from an extended generalized gamma distribution with parameters mu, sigma, and lambda.

JMP Version Added: Before version 14



//produce a single random number
x = Random GenGamma( 2, 1.25 );
//produce a vector of random numbers
v = J( 1, 10, Random GenGamma( 2, 1.25 ) );
//show results
Show( x, v );

Random Geometric

Syntax: y = Random Geometric( p )

Description: Returns a random number of non-events until an event occurs, for events with probability p.

JMP Version Added: Before version 14


exrgeop = 0.1;
exrgeolsz = Log( 300 );
New Window( "Example: Random Geometric and Empirical Distribution",
    exrgeoy = Graph Box(
        Y Scale( 0, 1.05 ),
        X Scale( -1, 50 ),
        Pen Color( "red" ),
        Pen Size( 1 );
        exrgeosz = Round( Exp( exrgeolsz ) );
        exrgeosamp = J( Round( exrgeosz ), 1, . );
        exrgeofreq = J( Round( 50 + 1 ), 1, . );
        For( exrgeok = 1, exrgeok <= Round( exrgeosz ), exrgeok++,
            exrgeosamp[exrgeok] = Random Geometric( exrgeop )
        );
        For( exrgeok = 0, exrgeok <= 50, exrgeok++,
            exrgeofreq[exrgeok + 1] = Sum( exrgeosamp <= exrgeok ) / Round( exrgeosz )
        );
        exrgeotmp1 = 0;
        exrgeotmp2 = 0;
        For( exrgeok = 0, exrgeok < 50, exrgeok++,
            exrgeotmp2 = exrgeotmp2 + (1 - exrgeop) ^ exrgeok * exrgeop;
            H Line( exrgeok, exrgeok + 1, exrgeotmp2 );
            V Line( exrgeok, exrgeotmp1, exrgeotmp2 );
            exrgeotmp1 = exrgeotmp2;
        );
        Pen Color( "blue" );
        For( exrgeok = 0, exrgeok < 50, exrgeok++,
            H Line( exrgeok, exrgeok + 1, exrgeofreq[exrgeok + 1] );
            V Line( exrgeok + 1, exrgeofreq[exrgeok + 1], exrgeofreq[exrgeok + 2] );
        );
        Text( {10, 0.2}, " p=", Round( exrgeop, 2 ), " sample size=", Round( exrgeosz ) );
    ),
    H List Box(
        Slider Box( Log( 10 ), Log( 5000 ), exrgeolsz, exrgeoy << reshow ),
        Text Box( " random sample size" )
    )
);

Random Index

Syntax: x = Random Index( n, k )

Description: Returns a k by 1 matrix of random integers between 1 and n with no duplicates.

JMP Version Added: Before version 14


Random Index( 100, 5 );

Random Integer

Syntax: y = Random Integer( n ); Random Integer( k, n )

Description: Returns a random integer between 1 and n (or between k and n) inclusive.

JMP Version Added: Before version 14



//produce a single random number
x = Random Integer( 1, 10 );
//produce a vector of random numbers
v = J( 1, 10, Random Integer( 1, 10 ) );
//show results
Show( x, v );

Random Johnson Sb

Syntax: y = Random Johnson Sb( gamma, delta, theta, sigma )

Description: Returns a random number from a Johnson Sb distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Johnson Sb( 0.5, 1, 1, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Johnson Sb( 0.5, 1, 1, 1 ) );
//show results
Show( x, v );

Random Johnson Sl

Syntax: y = Random Johnson Sl( gamma, delta, theta, <sigma=1> )

Description: Returns a random number from a Johnson Sl distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Johnson Sl( 0.5, 1, 1, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Johnson Sl( 0.5, 1, 1, 1 ) );
//show results
Show( x, v );

Random Johnson Su

Syntax: y = Random Johnson Su( gamma, delta, theta, sigma )

Description: Returns a random number from a Johnson Su distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Johnson Su( 0.5, 1, 1, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Johnson Su( 0.5, 1, 1, 1 ) );
//show results
Show( x, v );

Random LEV

Syntax: y = Random LEV( <mu=0>, <sigma=1> )

Description: Returns a random number from a LEV distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random LEV( 10, 5 );
//produce a vector of random numbers
v = J( 1, 10, Random LEV( 10, 5 ) );
//show results
Show( x, v );

Random LogGenGamma

Syntax: y = Random LogGenGamma( <mu=0>, <sigma=1>, <lambda=0> )

Description: Returns a random number from a log generalized gamma distribution with parameters mu, sigma, and lambda.

JMP Version Added: Before version 14



//produce a single random number
x = Random LogGenGamma( 2, 1.25 );
//produce a vector of random numbers
v = J( 1, 10, Random LogGenGamma( 2, 1.25 ) );
//show results
Show( x, v );

Random Logistic

Syntax: y = Random Logistic( <mu=0>, <sigma=1> )

Description: Returns a random number from a logistic distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Logistic( 15, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Logistic( 15, 1 ) );
//show results
Show( x, v );

Random Loglogistic

Syntax: y = Random Loglogistic( <mu=0>, <sigma=1> )

Description: Returns a random number from a loglogistic distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Loglogistic( 15, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random Loglogistic( 15, 1 ) );
//show results
Show( x, v );

Random Lognormal

Syntax: y = Random Lognormal( <mu=0>, <sigma=1> )

Description: Returns a random number from a lognormal distribution with location parameter mu and scale parameter sigma.

JMP Version Added: Before version 14

Example 1



//produce a single random number
x = Random Lognormal( -1, 1.5 );
//produce a vector of random numbers
v = J( 1, 10, Random Lognormal( -1, 1.5 ) );
//show results
Show( x, v );

Example 2


exrlnn = 30;
New Window( "Example: Random Lognormal and Empirical Distribution",
    exrlny = Graph Box(
        Y Scale( -0.05, 1.05 ),
        X Scale( -.05, 10 ),
        Pen Color( "red" );
        exranlnorm = J( Round( exrlnn ), 1, . );
        For( k = 1, k <= Round( exrlnn ), k++,
            exranlnorm[k] = Random Lognormal( -1, 1.5 )
        );
        exranlnorm = Sort Ascending( exranlnorm );
        H Line( 0, exranlnorm[1], 0 );
        For( k = 2, k <= Round( exrlnn ), k++,
            H Line( exranlnorm[k - 1], exranlnorm[k], (k - 1) / Round( exrlnn ) )
        );
        H Line( exranlnorm[Round( exrlnn )], 10, 1.0 );
        Pen Color( "blue" );
        Y Function( Normal Distribution( Log( tdeq ), -1, 1.5 ), tdeq );
        Text( {-4, 0.8}, " n=", Round( exrlnn ) );
    ),
    H List Box( Slider Box( 10, 2000, exrlnn, exrlny << reshow ), Text Box( " n" ) )
);

Random Multivariate Normal

Syntax: y = Random Multivariate Normal( mean, covar, <nrows=1>)

Description: Returns a random nrows by p matrix from a multivariate normal distribution with mean vector mean and (positive semi-definite) covariance matrix covar, where p is defined as the number of rows of covar.

JMP Version Added: 15


meanvec = 1 :: 3;
covar = [1 .6 .6, .6 1 .6, .6 .6 1];
randmvnRow = Random Multivariate Normal( meanvec, covar );
randmvnMat = Random Multivariate Normal( meanvec, covar, 10 );

Random Negative Binomial

Syntax: y = Random Negative Binomial( r, p )

Description: Returns a random number of non-events until r events occur, for events with probability p.

JMP Version Added: Before version 14


exnbpp = 0.3;
exnbpn = 20;
exnbrn = Random Negative Binomial( 20, 0.3 );
New Window( "Example: Neg Binomial Probability",
    exnbpy = Graph Box(
        Y Scale( 0, 0.04 ),
        X Scale( -1, 100 ),
        Pen Color( "red" ),
        Pen Size( 2 );
        For( exnbpk = 0, exnbpk < 1000, exnbpk++,
            V Line( exnbpk, 0, Neg Binomial Probability( exnbpp, exnbpn, exnbpk ) )
        );
        Pen Color( "blue" );,
        Pen Size( 4 ),
        V Line( exnbrn, 0, Neg Binomial Probability( exnbpp, exnbpn, exnbrn ) );
        Text( {1, 0.035}, "n=", Round( exnbpn ), " p=", Round( exnbpp, 2 ) );
        Text(
            {1, 0.030},
            "x=",
            Round( exnbrn, 2 ),
            " Prob=",
            Round( Neg Binomial Probability( exnbpp, exnbpn, exnbrn ), 2 )
        );
    ),
    H List Box(
        Button Box( "Generate a Random Negative Binomial Number",
            exnbrn = Random Negative Binomial( 20, 0.3 );
            exnbpy << reshow;
        )
    )
);

Random Normal

Syntax: y = Random Normal( <mu=0>, <sigma=1> )

Description: Returns a random number from a normal distribution with mean mu and standard deviation sigma.

JMP Version Added: Before version 14

Example 1



//produce a single random number
x = Random Normal();
//produce a vector of random numbers
v = J( 1, 10, Random Normal() );
//show results
Show( x, v );

Example 2


exGcoordX = J( 50, 1, . );
exGcoordY = J( 50, 1, . );
For( k = 1, k <= 50, k++,
    exGcoordX[k] = Random Uniform( -5, 5 )
);
For( k = 1, k <= 50, k++,
    exGcoordY[k] = exGcoordX[k] + Random Normal()
);
New Window( "Random Normal, Linear Regression, and Outlier",
    V List Box(
        Graph Box(
            framesize( 600, 300 ),
            X Scale( -10, 10 ),
            Y Scale( 1.5 * Min( exGcoordY ), 1.5 * Max( exGcoordY ) ),
            double buffer,
            exsx = Sum( exGcoordX ),
            exsy = Sum( exGcoordY ),
            exsxx = Sum( (exGcoordX) ^ 2 );
            exsxy = Sum( exGcoordX :* exGcoordY );
            exbeta1 = (100 * exsxy - exsx * exsy) / (100 * exsxx - exsx * exsx);
            exbeta0 = (exsy - exbeta1 * exsx) / 100;
            exx1 = Min( exGcoordX );
            exy1 = exbeta0 + exbeta1 * Min( exGcoordX );
            exx2 = Max( exGcoordX );
            exy2 = exbeta0 + exbeta1 * Max( exGcoordX );
            Line( {exx1, exy1}, {exx2, exy2} );
            Marker Size( 5 );
            Drag Marker( exGcoordX, exGcoordY );
            Drag Text( [-7], [-5], "drag any marker" );
        )
    )
);

Random Normal Mixture

Syntax: y = Random Normal Mixture( meanvec, sdvec, probvec )

Description: Returns a random number from a normal mixture distribution with group means meanvec, group standard deviations sdvec, and group probabilities probvec.

JMP Version Added: Before version 14


dt = New Table( "Example",
    New Column( "Rand NM",
        set formula( Random Normal Mixture( [-3, 3], [1, 1], [.3, .7] ) )
    )
);
dt << add rows( 1000 );
Distribution( Continuous Distribution( Column( :Rand NM ), Vertical( 0 ) ) );

Random Poisson

Syntax: y = Random Poisson( lambda )

Description: Returns a random number from a Poisson distribution.

JMP Version Added: Before version 14


exrpoilambda = 20;
exrpoilsz = Log( 300 );
New Window( "Example: Random Poisson and Empirical Distribution",
    exrpoiy = Graph Box(
        Y Scale( 0, 1.05 ),
        X Scale( -1, 50 ),
        Pen Color( "red" ),
        Pen Size( 1 );
        exrpoisz = Round( Exp( exrpoilsz ) );
        exrpoisamp = J( Round( exrpoisz ), 1, . );
        exrpoifreq = J( Round( 50 + 1 ), 1, . );
        For( exrpoik = 1, exrpoik <= Round( exrpoisz ), exrpoik++,
            exrpoisamp[exrpoik] = Random Poisson( exrpoilambda )
        );
        For( exrpoik = 0, exrpoik <= 50, exrpoik++,
            exrpoifreq[exrpoik + 1] = Sum( exrpoisamp <= exrpoik ) / Round( exrpoisz )
        );
        exrpoitmp1 = 0;
        exrpoitmp2 = 0;
        For( exrpoik = 0, exrpoik < 50, exrpoik++,
            H Line( exrpoik, exrpoik + 1, Poisson Distribution( exrpoilambda, exrpoik ) );
            V Line(
                exrpoik + 1,
                Poisson Distribution( exrpoilambda, exrpoik ),
                Poisson Distribution( exrpoilambda, exrpoik + 1 )
            );
        );
        Pen Color( "blue" );
        For( exrpoik = 0, exrpoik < 50, exrpoik++,
            H Line( exrpoik, exrpoik + 1, exrpoifreq[exrpoik + 1] );
            V Line( exrpoik + 1, exrpoifreq[exrpoik + 1], exrpoifreq[exrpoik + 2] );
        );
        Text(
            {10, 0.2},
            " \!U03BB=",
            Round( exrpoilambda, 2 ),
            " sample size=",
            Round( exrpoisz )
        );
    ),
    H List Box(
        Slider Box( Log( 10 ), Log( 5000 ), exrpoilsz, exrpoiy << reshow ),
        Text Box( " random sample size" )
    )
);

Random Reset

Syntax: Random Reset( seed number )

Description: Restarts the random sequences with a new seed.

JMP Version Added: Before version 14


Random Reset( 1 );
Random Normal();

Random SEV

Syntax: y = Random SEV( <mu=0>, <sigma=1> )

Description: Returns a random number from a SEV distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random SEV( 50, 5 );
//produce a vector of random numbers
v = J( 1, 10, Random SEV( 50, 5 ) );
//show results
Show( x, v );

Random SHASH

Syntax: y = Random SHASH( gamma, delta, theta, sigma )

Description: Returns a random number from the sinh-arcsinh (SHASH) distribution.

JMP Version Added: 14

Example 1



//produce a single random number
x = Random SHASH( 0, 1, 0, 1 );
//produce a vector of random numbers
v = J( 1, 10, Random SHASH( 0, 1, 0, 1 ) );
//show results
Show( x, v );

SHASH Transformation


gamma = 1;
delta = .5;
theta = -1;
sigma = 2;
x = 3;
result1 = SHASHTrans( x, gamma, delta, theta, sigma );
result2 = SinH( gamma + delta * ArcSinH( (x - theta) / sigma ) );
Show( result1, result2 );

Random Seed State

Syntax: Random Seed State( <seed state> )

Description: Retrieves or restores the random seed state to or from a blob object.

JMP Version Added: Before version 14


r = Random Seed State();
Random Seed State( r );

Random Shuffle

Syntax: y = Random Shuffle( matrix )

Description: Returns the matrix with the elements shuffled into a random order.

JMP Version Added: Before version 14


exA = [1 2 6, 3 5 8];
Random Shuffle( exA );

Random Triangular

Syntax: y = Random Triangular( a, b, c );y = Random Triangular( b, c );y = Random Triangular( b )

Description: Returns a random number from a triangular distribution with lower limit a, mode b, and upper limit c. Random Triangular(b,c) is equivalent to Random Triangular(0,b,c). Random Triangular(b) is equivalent to Random Triangular(0,b,1).

JMP Version Added: Before version 14


Random Reset( 13579 );
x = Random Triangular( 0.8 );
Random Reset( 13579 );
y = Random Triangular( 0, 0.8, 1 );
Show( x, y );

Random Uniform

Syntax: y = Random Uniform( <min>, <max> )

Description: Returns a random number from a uniform distribution between min and max, exclusive.

JMP Version Added: Before version 14

Example 1



//produce a single random number
x = Random Uniform( 1, 10 );
//produce a vector of random numbers
v = J( 1, 10, Random Uniform( 1, 10 ) );
//show results
Show( x, v );

Example 2


Random Uniform( 1, 10 );

Random Weibull

Syntax: y = Random Weibull( beta, <alpha=1> )

Description: Returns a random number from a Weibull distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random Weibull( 3, 20 );
//produce a vector of random numbers
v = J( 1, 10, Random Weibull( 3, 20 ) );
//show results
Show( x, v );

Random ZI Negative Binomial

Syntax: y = Random ZI Negative Binomial( lambda, sigma, pi )

Description: Returns a random number from a zero-inflated Negative Binomial distribution with location parameter lambda, scale parameter sigma, and zero inflation parameter pi.

JMP Version Added: 19

Example 1


exnbpp = 0.3;
exnbpn = 20;
rnb = Random ZI Negative Binomial( 25, .5, .05 );
New Window( "Example: Zero Inflated Negative Binomial",
    exnbpy = Graph Box(
        Y Scale( 0, 0.075 ),
        X Scale( -1, 100 ),
        Pen Color( "red" ),
        Pen Size( 2 );
        For( i = 0, i < 100, i++,
            V Line( i, 0, ZI Negative Binomial Probability( i, 25, .5, .05 ) )
        );
        Pen Color( "blue" );,
        Pen Size( 4 ),
        V Line( rnb, 0, ZI Negative Binomial Probability( rnb, 25, .5, .05 ) );
        Text(
            {25, 0.06},
            "lambda=",
            Round( 25 ),
            ", sigma=",
            Round( .5, 2 ),
            ", pi=",
            Round( .05, 2 )
        );
        Text(
            {25, 0.05},
            "x=",
            Round( rnb, 2 ),
            ", Prob=",
            Round( ZI Negative Binomial Probability( rnb, 25, .5, .05 ), 4 )
        );
    ),
    H List Box(
        Button Box( "Generate a Random Zero Inflated Negative Binomial Number",
            rnb = Random ZI Negative Binomial( 25, .5, .05 );
            exnbpy << reshow;
        )
    )
);

Example 2


Random Reset( 19 );
dt = As Table( J( 1000, 1, Random ZI Negative Binomial( 5, 2, .2 ) ) );
Column( 1 ) << set name( "Random ZiNB" );
dt << Distribution(
    Continuous Distribution(
        Column( :Random ZiNB ),
        Vertical( 0 ),
        Fit ZI Negative Binomial,
        CDF Plot( 1 )
    )
);

Random ZI Poisson

Syntax: y = Random ZI Poisson Binomial( lambda, pi )

Description: Returns a random number from a zero-inflated Poisson distribution with location parameter lambda and zero inflation parameter pi.

JMP Version Added: 19

Example 1


exnbpp = 0.3;
exnbpn = 20;
rp = Random ZI Poisson( 20, .05 );
New Window( "Example: Zero Inflated Poisson",
    exnbpy = Graph Box(
        Y Scale( 0, 0.1 ),
        X Scale( -1, 60 ),
        Pen Color( "red" ),
        Pen Size( 2 );
        For( i = 0, i < 100, i++,
            V Line( i, 0, ZI Poisson Probability( i, 20, .05 ) )
        );
        Pen Color( "blue" );,
        Pen Size( 4 ),
        V Line( rp, 0, ZI Poisson Probability( rp, 20, .05 ) );
        Text( {30, 0.06}, "lambda=", Round( 20 ), ", pi=", Round( .05, 2 ) );
        Text(
            {30, 0.05},
            "x=",
            Round( rp, 2 ),
            ", Prob=",
            Round( ZI Poisson Probability( rp, 20, .05 ), 4 )
        );
    ),
    H List Box(
        Button Box( "Generate a Random Zero Inflated Poisson Number",
            rp = Random ZI Poisson( 20, .05 );
            exnbpy << reshow;
        )
    )
);

Example 2


Random Reset( 19 );
dt = As Table( J( 1000, 1, Random ZI Poisson( 5, .2 ) ) );
Column( 1 ) << set name( "Random ZIP" );
dt << Distribution(
    Continuous Distribution(
        Column( :Random ZIP ),
        Vertical( 0 ),
        Fit ZI Poisson,
        CDF Plot( 1 )
    )
);

Random t

Syntax: y = Random t( df, <nonCentrality=0> )

Description: Returns a random number from an t distribution.

JMP Version Added: Before version 14



//produce a single random number
x = Random t( 2 );
//produce a vector of random numbers
v = J( 1, 10, Random t( 2 ) );
//show results
Show( x, v );

Resample Freq

Syntax: Resample Freq( <rate=1>, <column> )

Description: Generates a frequency count for sampling with replacement, useful for bootstrap samples. With no arguments, the function generates a 100% resample. The rate argument specifies the rate of resampling. If the column argument is specified, the sample size chosen is rate multiplied by the sum of the specified column. A negative rate signals that fractional frequencies are allowed.

JMP Version Added: Before version 14


Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Freq", numeric, formula( Resample Freq() ) );
New Window( "w", theBox = V List Box() );
For( i = 1, i <= 30, i++,
    Column( "Freq" ) << EvalFormula;
    theBox << append(
        V List Box( Bivariate( Y( :height ), X( :weight ), Freq( :Freq ), Fit Line( 1 ) ) )
    );
);
newDt = theBox["Parameter Estimates", Table Box( 1 )] << MakeCombinedDataTable;
newDt << Distribution( Y( :Estimate ), By( :Term ), Horizontal Layout( 1 ) );
theBox << CloseWindow;