public Tuple!(T, "lambda", T, "eta", T, "omega") properGeneralizedInverseGaussianEstimate(T)(
    in T[] sample, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto params1 = properGeneralizedInverseGaussianEstimate(sample);
auto params2 = properGeneralizedInverseGaussianFixedLambdaEstimate!double(lambda, sample);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega, sample);
auto lh1 = properGeneralizedInverseGaussianLikelihood(params1.lambda, params1.eta, params1.omega, sample);
auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, params2.eta, params2.omega, sample);
assert(lh0 <= lh1);
assert(lh0 <= lh2);
assert(lh2 <= lh1);

public Tuple!(T, "lambda", T, "eta", T, "omega") properGeneralizedInverseGaussianEstimate(T)(
    in T[] sample, 
    in T[] weights, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto weights = iota(1.0, length + 1.0).array;
auto params1 = properGeneralizedInverseGaussianEstimate!double(sample, weights);
auto params2 = properGeneralizedInverseGaussianFixedLambdaEstimate!double(lambda, sample, weights);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega, sample, weights);
auto lh1 = properGeneralizedInverseGaussianLikelihood(params1.lambda, params1.eta, params1.omega, sample, weights);
auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, params2.eta, params2.omega, sample, weights);
assert(lh0 <= lh1);
assert(lh0 <= lh2);
assert(lh2 <= lh1);

public Tuple!(T, "lambda", T, "eta", T, "omega") properGeneralizedInverseGaussianEstimate(T)(
    in GeneralizedInverseGaussinStatistic!T stat, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

public Tuple!(T, "lambda", T, "chi", T, "psi") generalizedInverseGaussianEstimate(T)(
    in T[] sample, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
import atmosphere.params;
auto length = 1000;
auto lambda = -2.0, chi = 1.4, psi = 2.3;
auto rng = Random(1234);
auto sample = new GeneralizedInverseGaussianRNG!double(rng, lambda, chi, psi).take(length).array;
auto params1 = generalizedInverseGaussianEstimate(sample);
auto params2 = generalizedInverseGaussianFixedLambdaEstimate!double(lambda, sample);
auto p0 = GIGChiPsi!double(chi, psi);
auto p1 = GIGChiPsi!double(params1.chi, params1.psi);
auto p2 = GIGChiPsi!double(params2.chi, params2.psi);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, p0.eta, p0.omega, sample);
auto lh1 = properGeneralizedInverseGaussianLikelihood(params1.lambda, p1.eta, p1.omega, sample);
auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, p2.eta, p2.omega, sample);
assert(lh0 <= lh1);
assert(lh0 <= lh2);
assert(lh2 <= lh1);

public Tuple!(T, "lambda", T, "chi", T, "psi") generalizedInverseGaussianEstimate(T)(
    in T[] sample, 
    in T[] weights, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
import atmosphere.params;
auto length = 1000;
auto lambda = -2.0, chi = 1.4, psi = 2.3;
auto rng = Random(1234);
auto sample = new GeneralizedInverseGaussianRNG!double(rng, lambda, chi, psi).take(length).array;
auto weights = iota(1.0, length + 1.0).array;
auto params1 = generalizedInverseGaussianEstimate!double(sample, weights);
auto params2 = generalizedInverseGaussianFixedLambdaEstimate!double(lambda, sample, weights);
auto p0 = GIGChiPsi!double(chi, psi);
auto p1 = GIGChiPsi!double(params1.chi, params1.psi);
auto p2 = GIGChiPsi!double(params2.chi, params2.psi);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, p0.eta, p0.omega, sample, weights);
auto lh1 = properGeneralizedInverseGaussianLikelihood(params1.lambda, p1.eta, p1.omega, sample, weights);
auto lh2 = properGeneralizedInverseGaussianLikelihood(lambda, p2.eta, p2.omega, sample, weights);
assert(lh0 <= lh1);
assert(lh0 <= lh2);
assert(lh2 <= lh1);

public Tuple!(T, "lambda", T, "chi", T, "psi") generalizedInverseGaussianEstimate(T)(
    in GeneralizedInverseGaussinStatistic!T stat, 
    in T relTolerance = sqrt(T.epsilon), 
    in T absTolerance = sqrt(T.epsilon)) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution.

Parameters

stat

GIG statistica.

sample

obeservation.

weights

sample weights.

relTolerance

Relative tolerance.

absTolerance

Absolute tolerance.

Preconditions

ax and bx shall be finite reals.
relTolerance shall be normal positive real.
absTolerance shall be normal positive real no less then T.epsilon*2.

References

"Algorithms for Minimization without Derivatives", Richard Brent, Prentice-Hall, Inc. (1973)

See Also:

public Tuple!(T, "eta", T, "omega") properGeneralizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in T[] sample) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto params = properGeneralizedInverseGaussianFixedLambdaEstimate!double(lambda, sample);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega, sample);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, params.eta, params.omega, sample);
assert(lh0 <= lh1);

public Tuple!(T, "eta", T, "omega") properGeneralizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in T[] sample, 
    in T[] weights) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto weights = iota(1.0, length + 1.0).array;
auto params = properGeneralizedInverseGaussianFixedLambdaEstimate!double(lambda, sample, weights);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega, sample, weights);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, params.eta, params.omega, sample, weights);
assert(lh0 <= lh1);

public Tuple!(T, "eta", T, "omega") properGeneralizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in GeneralizedInverseGaussinFixedLambdaStatistic!T stat) 
if(isFloatingPoint!T)

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

Contracts

in
{
    assert (isNormal(lambda));
}

See Also:

public Tuple!(T, "chi", T, "psi") generalizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in T[] sample) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
import atmosphere.params;
auto length = 1000;
auto lambda = -2.0, chi = 1.4, psi = 2.3;
auto rng = Random(1234);
auto sample = new GeneralizedInverseGaussianRNG!double(rng, lambda, chi, psi).take(length).array;
auto params = generalizedInverseGaussianFixedLambdaEstimate!double(lambda, sample);
auto p0 = GIGChiPsi!double(chi, psi);
auto p1 = GIGChiPsi!double(params.chi, params.psi);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, p0.chi, p0.psi, sample);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, p1.chi, p1.psi, sample);
assert(lh0 <= lh1);

public Tuple!(T, "chi", T, "psi") generalizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in T[] sample, 
    in T[] weights) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
import atmosphere.params;
auto length = 1000;
auto lambda = -2.0, chi = 1.4, psi = 2.3;
auto rng = Random(1234);
auto sample = new GeneralizedInverseGaussianRNG!double(rng, lambda, chi, psi).take(length).array;
auto weights = iota(1.0, length + 1.0).array;
auto params = generalizedInverseGaussianFixedLambdaEstimate!double(lambda, sample, weights);
auto p0 = GIGChiPsi!double(chi, psi);
auto p1 = GIGChiPsi!double(params.chi, params.psi);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, p0.chi, p0.psi, sample, weights);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, p1.chi, p1.psi, sample, weights);
assert(lh0 <= lh1);

public Tuple!(T, "chi", T, "psi") generalizedInverseGaussianFixedLambdaEstimate(T)(
    in T lambda, 
    in GeneralizedInverseGaussinFixedLambdaStatistic!T stat) 
if(isFloatingPoint!T)

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

Contracts

in
{
    assert (isNormal(lambda));
}

See Also:

public T properGeneralizedInverseGaussianFixedLambdaEtaEstimate(T)(
    in T lambda, 
    in T eta, 
    in T[] sample) 
if(isFloatingPoint!T)

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto omega1 = properGeneralizedInverseGaussianFixedLambdaEtaEstimate!double(lambda, eta, sample);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega , sample);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega1, sample);
assert(lh0 <= lh1);

public T properGeneralizedInverseGaussianFixedLambdaEtaEstimate(T)(
    in T lambda, 
    in T eta, 
    in T[] sample, 
    in T[] weights) 
if(isFloatingPoint!T)

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.

See Also:

Example

import std.range;
import std.random;
import atmosphere.random;
import atmosphere.likelihood;
auto length = 1000;
auto lambda = -2.0, eta = 1.4, omega = 2.3;
auto rng = Random(1234);
auto sample = ProperGeneralizedInverseGaussianSRNG!double(rng, lambda, eta, omega).take(length).array;
auto weights = iota(1.0, length + 1.0).array;
auto omega1 = properGeneralizedInverseGaussianFixedLambdaEtaEstimate!double(lambda, eta, sample, weights);
auto lh0 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega , sample, weights);
auto lh1 = properGeneralizedInverseGaussianLikelihood(lambda, eta, omega1, sample, weights);
assert(lh0 <= lh1);

public T properGeneralizedInverseGaussianFixedLambdaEtaEstimate(T)(
    in T lambda, 
    in T eta, 
    in GeneralizedInverseGaussinFixedLambdaStatistic!T stat) 
if(isFloatingPoint!T)

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.

Contracts

in
{
    assert (isNormal(lambda));
}

See Also:

Copyright

© 2014-2015 Ilya Yaroshenko

License

MIT

Functions

properGeneralizedInverseGaussianEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution.

properGeneralizedInverseGaussianEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution.

properGeneralizedInverseGaussianEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution.

generalizedInverseGaussianEstimate

Estimates parameters of the generalized inverse Gaussian distribution.

generalizedInverseGaussianEstimate

Estimates parameters of the generalized inverse Gaussian distribution.

generalizedInverseGaussianEstimate

Estimates parameters of the generalized inverse Gaussian distribution.

properGeneralizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

properGeneralizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

properGeneralizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the proper generalized inverse Gaussian distribution for fixed lambda.

generalizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

generalizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

generalizedInverseGaussianFixedLambdaEstimate

Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.

properGeneralizedInverseGaussianFixedLambdaEtaEstimate

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.

properGeneralizedInverseGaussianFixedLambdaEtaEstimate

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.

properGeneralizedInverseGaussianFixedLambdaEtaEstimate

Estimates parameter omega of the proper generalized inverse Gaussian distribution for fixed lambda and eta.