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);
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);
atmosphere.params
Estimates parameters of the generalized inverse Gaussian distribution for fixed lambda.