Exemplo n.º 1
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            MeasureList ml = new MeasureList(measures: new[] { 81, 79.5, 80.7, 78.1, 80.1, 74.8, 74.8, 79.8, 79.8 },
                                             oel: 85);

            UninformativeModelParameters modelParams = UninformativeModelParameters.GetDefaults(logNormalDstrn: false);

            this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();

            this.OverwriteDefaults(mcmcParams, customVals);

            ExposureMetricEstimates eme = new ExposureMetricEstimates(
                new SEGUninformativeModel(measures: ml,
                                          specificParams: modelParams,
                                          mcmcParams: mcmcParams));

            this.Emes = new ExposureMetricEstimates[] { eme };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("Arithmetic mean", new ExposureMetricFunc(e => e.ArithMean())),
                Tuple.Create("Arithmetic standard deviation", new ExposureMetricFunc(e => e.ArithStanDev())),
                Tuple.Create("Exceedance Fraction (%)", new ExposureMetricFunc(e => e.ExceedanceFrac())),
                Tuple.Create("95th percentile", new ExposureMetricFunc(e => e.P95()))
            });
        }
Exemplo n.º 2
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            Dictionary <string, double[]> lowWWCorrMeas = new Dictionary <string, double[]>
            {
                { "worker-01", new double[] { 185, 34.8, 16.7, 12.4, 18.6, 47.4, 52.6, 15.3, 27.6, 26.3 } },
                { "worker-02", new double[] { 4.79, 23, 7.54, 62.3, 8.55, 9.28, 43.6, 94.2, 44.6, 66.6 } },
                { "worker-03", new double[] { 8.85, 31.7, 15.8, 89.6, 164, 40.5, 47.6, 75.5, 10.7, 62.3 } },
                { "worker-04", new double[] { 16.4, 6.91, 87.4, 20, 16.8, 7.12, 6.99, 16.4, 12.6, 63.9 } },
                { "worker-05", new double[] { 14.7, 59.6, 15, 21.8, 20.6, 96.1, 16.8, 15.8, 8.02, 26.7 } },
                { "worker-06", new double[] { 37.9, 96.9, 40.8, 106, 21.7, 25.8, 51.3, 23, 18.9, 20.2 } },
                { "worker-07", new double[] { 22, 44.8, 37.5, 16.6, 30.7, 7.07, 7.18, 80.9, 44.5, 135 } },
                { "worker-08", new double[] { 69.9, 30.5, 33.4, 53, 70.7, 78.3, 18, 45.2, 51.4, 33.7 } },
                { "worker-09", new double[] { 28.1, 7.49, 16, 23, 99.9, 12, 11.8, 57.4, 8.79, 24 } },
                { "worker-10", new double[] { 113, 7.68, 85.6, 196, 35, 17.6, 60.7, 15.5, 34.3, 12.1 } },
            };

            Dictionary <string, double[]> highWWCorrMeas = new Dictionary <string, double[]>
            {
                { "worker-01", new double[] { 66.8, 46, 61.1, 54.6, 31.7, 74.3, 60.9, 53.4, 38.9, 27.5 } },
                { "worker-02", new double[] { 14.2, 53.9, 21.8, 47.8, 48.8, 76.5, 41.3, 20.4, 31.9, 31.1 } },
                { "worker-03", new double[] { 186, 84.6, 94.4, 218, 189, 130, 107, 80.6, 288, 173 } },
                { "worker-04", new double[] { 23.5, 16.2, 40.2, 130, 42.2, 25.7, 35.4, 40.8, 109, 40.9 } },
                { "worker-05", new double[] { 43.8, 31.1, 13.1, 24.1, 27.7, 23.9, 40.2, 60.3, 29.8, 37.2 } },
                { "worker-06", new double[] { 41, 11.4, 4.44, 12.9, 22.7, 20.5, 12.6, 8.35, 13.6, 28.1 } },
                { "worker-07", new double[] { 6.56, 9.5, 6.97, 5.92, 2.42, 14, 12.3, 3.07, 7.01, 6.49 } },
                { "worker-08", new double[] { 9.21, 9.42, 28.7, 72.9, 35.6, 17.2, 20.2, 13.4, 10.5, 26.3 } },
                { "worker-09", new double[] { 19.6, 14.3, 22.8, 35.1, 28.9, 36.9, 13, 13.3, 13.6, 37 } },
                { "worker-10", new double[] { 78.7, 28.2, 41.3, 14.4, 72.9, 10.2, 16.2, 15.8, 42.2, 61 } },
            };

            BWModelParameters       bwParams     = BWModelParameters.GetDefaults(true);
            ExposureMetricEstimates emeLowWWCorr = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: lowWWCorrMeas, oel: 150),
                                       specificParams: bwParams));
            ExposureMetricEstimates emeHighWWCorr = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: highWWCorrMeas, oel: 150),
                                       specificParams: bwParams));

            double lowWWCorrLowestGm, lowWWCorrHighestGm, highWWCorrLowestGm, highWWCorrHighestGm;

            string widLowWWCorrLeastExpo        = emeLowWWCorr.FindExposedWorker(findMostExposed: false, gm: out lowWWCorrLowestGm);
            string widLowWWCorrMostExpo         = emeLowWWCorr.FindExposedWorker(findMostExposed: true, gm: out lowWWCorrHighestGm);
            ExposureMetricEstimates emeLowLeast = emeLowWWCorr.GetWorkerEstimates(widLowWWCorrLeastExpo);
            ExposureMetricEstimates emeLowMost  = emeLowWWCorr.GetWorkerEstimates(widLowWWCorrMostExpo);

            string widHighWWCorrLeastExpo        = emeHighWWCorr.FindExposedWorker(findMostExposed: false, gm: out highWWCorrLowestGm);
            string widHighWWCorrMostExpo         = emeHighWWCorr.FindExposedWorker(findMostExposed: true, gm: out highWWCorrHighestGm);
            ExposureMetricEstimates emeHighLeast = emeHighWWCorr.GetWorkerEstimates(widHighWWCorrLeastExpo);
            ExposureMetricEstimates emeHighMost  = emeHighWWCorr.GetWorkerEstimates(widHighWWCorrMostExpo);

            this.Emes = new ExposureMetricEstimates[] { emeLowLeast, emeLowMost, emeHighLeast, emeHighMost };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("GM", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("GSD", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Exceedance fraction (%)", new ExposureMetricFunc(e => e.ExceedanceFrac())),
                Tuple.Create("95th percentile", new ExposureMetricFunc(e => e.P95())),
                Tuple.Create("Arithmetic mean", new ExposureMetricFunc(e => e.ArithMean()))
            });
        }
Exemplo n.º 3
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            double[] measures = new double[] { 96.6, 38.3, 80.8, 15.1, 34, 73.4, 14.5, 64.8, 27.4, 48.7, 43.3, 43.4, 57.8, 94.9, 44.1, 44.3, 62.9, 117, 51.6, 64.7, 50.1, 74.7, 221, 46.8, 84.3, 93.4, 126, 46.9, 29.5, 73.8, 66.9, 61.3, 30.2, 101, 22.6, 191, 29.3, 68, 114, 33.7, 52.5, 118, 49.7, 60.4, 36.6, 55.9, 31.9, 84.3, 75.8, 39.5, 28.3, 56.5, 44.2, 48, 36.6, 70, 37, 72, 48, 66.1, 72.4, 80.9, 69.1, 162, 67.3, 75.2, 40.5, 25.6, 44, 120, 56.3, 42.9, 6.63, 24.9, 40.9, 81, 97.2, 74.7, 79.6, 48.8, 75.3, 54.8, 66.5, 71.3, 28.7, 87.5, 51.9, 19.6, 60.8, 45.9, 46.9, 84.8, 120, 103, 36.7, 92.7, 32.8, 73.8, 214, 65.3 };
            double   oel      = 100;
            SEGInformedVarModelParameters modelParams = SEGInformedVarModelParameters.GetDefaults(logNormalDstrn: true);

            ExposureMetricEstimates emeNoErr = new ExposureMetricEstimates(
                new SEGInformedVarModel(
                    measures: new MeasureList(measures: measures, oel: oel),
                    specificParams: modelParams
                    ));

            ExposureMetricEstimates emeKnownErr = new ExposureMetricEstimates(
                new SEGInformedVarModel(
                    measures: new MeasureList(measures: measures, oel: oel, measErr: 30),
                    specificParams: modelParams
                    ));

            ExposureMetricEstimates emeUnknownErr = new ExposureMetricEstimates(
                new SEGInformedVarModel(
                    measures: new MeasureList(measures: measures, oel: oel, measErrRange: new double[] { 15, 45 }),
                    specificParams: modelParams
                    ));

            this.Emes = new ExposureMetricEstimates[] { emeNoErr, emeKnownErr, emeUnknownErr };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("GM (90% CrI)", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Exceedance fraction (%)(90 % CrI)", new ExposureMetricFunc(e => e.ExceedanceFrac())),
                Tuple.Create("95th percentile (90% CrI)", new ExposureMetricFunc(e => e.P95())),
                Tuple.Create("Arithmetic mean (90% CrI)", new ExposureMetricFunc(e => e.ArithMean())),
            });
        }
Exemplo n.º 4
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            MeasureList ml = new MeasureList(measures: new[] { 24.7, 64.1, 13.8, 43.7, 19.9, 133, 32.1, 15, 53.7 },
                                             oel: 100);
            SEGInformedVarModelParameters modelParams = SEGInformedVarModelParameters.GetDefaults(logNormalDstrn: true);

            this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();

            this.OverwriteDefaults(mcmcParams, customVals);

            ExposureMetricEstimates eme = new ExposureMetricEstimates(
                new SEGInformedVarModel(measures: ml, specificParams: modelParams, mcmcParams: mcmcParams));

            this.Emes = new ExposureMetricEstimates[] { eme };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("GM", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("GSD", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Exceedance Fraction (%)", new ExposureMetricFunc(e => e.ExceedanceFrac(true))),
                Tuple.Create("95th percentile", new ExposureMetricFunc(e => e.P95(true))),
                Tuple.Create("AIHA band probabilities in % (95th percentile)", new ExposureMetricFunc(e => e.BandProbabilities())),
                Tuple.Create("Arithmetic mean", new ExposureMetricFunc(e => e.ArithMean(true))),
                Tuple.Create("AIHA band probabilities in % (AM)", new ExposureMetricFunc(e => e.BandProbabilities(false)))
            });
        }
Exemplo n.º 5
0
        public ExposureMetricEstimates GetWorkerEstimates(string workerId)
        {
            ExposureMetricEstimates workerEst = (ExposureMetricEstimates)this.Clone();

            workerEst.MuChain         = BWModel.Result.GetChainByName(string.Format("mu_{0}Sample", workerId));
            workerEst.WorkerEstimates = true;
            return(workerEst);
        }
Exemplo n.º 6
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            MeasureList ml = new MeasureList(measures: new[] { 24.7, 64.1, 13.8, 43.7, 19.9, 133, 32.1, 15, 53.7 },
                                             oel: 100);

            SEGInformedVarModelParameters modelParams = SEGInformedVarModelParameters.GetDefaults(logNormalDstrn: true);

            this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();

            this.OverwriteDefaults(mcmcParams, customVals);

            ExposureMetricEstimates emeInformed = new ExposureMetricEstimates(
                new SEGInformedVarModel(
                    measures: ml,
                    specificParams: modelParams,
                    mcmcParams: mcmcParams
                    ));

            UninformativeModelParameters uninfModelParams = UninformativeModelParameters.GetDefaults(logNormalDstrn: true);

            this.OverwriteDefaults(modelParams, customVals);

            ExposureMetricEstimates emeUninformed = new ExposureMetricEstimates(
                new SEGUninformativeModel(
                    measures: ml,
                    specificParams: uninfModelParams,
                    mcmcParams: mcmcParams
                    ));

            ExposureMetricEstimates emePdInformed = new ExposureMetricEstimates(
                new SEGInformedVarModel(
                    measures: ml,
                    specificParams: modelParams,
                    mcmcParams: mcmcParams,
                    pastDataSummary: new PastDataSummary(mean: Math.Log(5), sd: Math.Log(2.4), n: 5)
                    ));

            this.Emes = new ExposureMetricEstimates[] { emeInformed, emeUninformed, emePdInformed };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("GM (90% CrI)", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Exceedance fraction (%)(90 % CrI)", new ExposureMetricFunc(e => e.ExceedanceFrac())),
                Tuple.Create("95th percentile (90% CrI)", new ExposureMetricFunc(e => e.P95())),
                Tuple.Create("Overexposure risk (%, P95)", new ExposureMetricFunc(e => e.OverExposureRisk())),
                Tuple.Create("AM (90% CrI)", new ExposureMetricFunc(e => e.ArithMean())),
                Tuple.Create("Overexposure risk (%, AM)", new ExposureMetricFunc(e => e.OverExposureRisk(false))),
            });
        }
Exemplo n.º 7
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            Dictionary <string, double[]> realisticMeasures = new Dictionary <string, double[]>
            {
                { "worker-1", new double[] { 76.2, 82.3, 81.7, 73.7, 79.4, 79.1, 80.2, 71, 86.9, 75.6 } },
                { "worker-2", new double[] { 70.6, 78.7, 77.6, 76.9, 79.5, 84.8, 77.6, 65.5, 74.1, 69.9 } },
                { "worker-3", new double[] { 79.2, 77.7, 73.5, 78.9, 81.6, 83.1, 85.1, 84.2, 79.8, 84.1 } },
                { "worker-4", new double[] { 79.1, 77.6, 81.2, 82.6, 81.6, 82.4, 76.9, 87.6, 80.4, 79.7 } },
                { "worker-5", new double[] { 85.3, 92.2, 75.8, 84.1, 76.1, 84.6, 78.9, 75.8, 89, 87.1 } },
                { "worker-6", new double[] { 77.8, 89, 81.9, 80.4, 88.5, 87, 85, 88.1, 81.3, 90.6 } },
                { "worker-7", new double[] { 79.1, 80.7, 85.8, 84.8, 88.5, 82.6, 78.6, 90.1, 82.9, 83 } },
                { "worker-8", new double[] { 80, 76.6, 84.6, 77.1, 81.5, 77.4, 73.5, 82.2, 74.4, 77.6 } },
                { "worker-9", new double[] { 80, 81.2, 73.8, 80.7, 76.9, 77.5, 74.6, 70.6, 82.3, 66.4 } },
                { "worker-10", new double[] { 89.1, 85.4, 81.8, 88.1, 86.4, 81.6, 86.8, 81.4, 86.7, 83.6 } }
            };

            BWModelParameters modelParams = BWModelParameters.GetDefaults(logNormalDstrn: false);
            //this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();
            //this.OverwriteDefaults(mcmcParams, customVals);

            ExposureMetricEstimates eme = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: realisticMeasures, oel: 85),
                                       specificParams: modelParams,
                                       mcmcParams: mcmcParams));

            this.Emes = new ExposureMetricEstimates[] { eme };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("Arithmetic mean (90% CrI)", new ExposureMetricFunc(e => e.ArithMean())),
                Tuple.Create("Between-worker arithmetic standard deviation (90% CrI)", new ExposureMetricFunc(e => e.ArithStanDev())),
                Tuple.Create("Within-worker arithmetic standard deviation (90% CrI)", new ExposureMetricFunc(e => e.ArithStanDev(false))),
                Tuple.Create("Within-worker correlation (rho) (90% CrI)", new ExposureMetricFunc(e => e.Rho())),
                Tuple.Create("Probability that rho>0.2", new ExposureMetricFunc(e => e.RhoProbGt(0.2))),
                Tuple.Create("R.difference (90% CrI)", new ExposureMetricFunc(e => e.RDiff())),
                Tuple.Create("Probability of individual overexposure (95th percentile) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoP95())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoP95ProbGt(20))),
                Tuple.Create("Probability of individual overexposure (arithmetic mean) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoAm())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoAmProbGt(20))),
            });
        }
Exemplo n.º 8
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            Dictionary <string, double[]> realisticMeasures = new Dictionary <string, double[]>
            {
                { "worker-01", new double[] { 31, 60.1, 133, 27.1 } },
                { "worker-02", new double[] { 61.1, 5.27, 30.4, 31.7 } },
                { "worker-03", new double[] { 20.5, 16.5, 15.5, 71.5 } }
            };

            BWModelParameters modelParams = BWModelParameters.GetDefaults(logNormalDstrn: true);

            this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();

            this.OverwriteDefaults(mcmcParams, customVals);

            ExposureMetricEstimates eme = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: realisticMeasures, oel: 150),
                                       specificParams: modelParams,
                                       mcmcParams: mcmcParams));

            this.Emes = new ExposureMetricEstimates[] { eme };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("Group GM (90% CrI)", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("Between-worker GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Within-worker GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev(false))),
                Tuple.Create("Within-worker correlation (rho) (90% CrI)", new ExposureMetricFunc(e => e.Rho())),
                Tuple.Create("Probability that rho>0.2", new ExposureMetricFunc(e => e.RhoProbGt(0.2))),
                Tuple.Create("R.ratio (+90% CrI)", new ExposureMetricFunc(e => e.RRatio())),
                Tuple.Create("Probability that R>2", new ExposureMetricFunc(e => e.RRatioProbGt(2))),
                Tuple.Create("Probability that R>10", new ExposureMetricFunc(e => e.RRatioProbGt(10))),
                Tuple.Create("Probability of individual overexposure (95th percentile) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoP95())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoP95ProbGt(20))),
                Tuple.Create("Probability of individual overexposure (arithmetic mean) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoAm())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoAmProbGt(20))),
            });
        }
Exemplo n.º 9
0
        public Object Clone()
        {
            ExposureMetricEstimates clone = new ExposureMetricEstimates(Oel);

            clone.LogNormDist = LogNormDist;
            clone.TargetPerc  = TargetPerc;
            clone.MuChain     = new double[MuChain.Length];
            MuChain.CopyTo(clone.MuChain, 0);
            clone.SigmaChain = new double[SigmaChain.Length];
            SigmaChain.CopyTo(clone.SigmaChain, 0);
            if (SigmaWithinChain != null)
            {
                clone.SigmaWithinChain = new double[SigmaWithinChain.Length];
                SigmaWithinChain.CopyTo(clone.SigmaWithinChain, 0);
            }

            clone.BWModel = BWModel;
            if (WorkerIds != null)
            {
                clone.WorkerIds = new string[WorkerIds.Length];
                WorkerIds.CopyTo(clone.WorkerIds, 0);
            }
            return(clone);
        }
Exemplo n.º 10
0
 public AihaBandProbabilities(double[] chain, double oel)
 {
     this.chain = chain;
     oe         = new ExposureMetricEstimates(oel);
 }
Exemplo n.º 11
0
        public override Tuple <string, ExposureMetricFunc>[] DefineContent(Dictionary <string, object> customVals)
        {
            Dictionary <string, double[]> lowWWCorrMeas = new Dictionary <string, double[]>
            {
                { "worker-01", new double[] { 185, 34.8, 16.7, 12.4, 18.6, 47.4, 52.6, 15.3, 27.6, 26.3 } },
                { "worker-02", new double[] { 4.79, 23, 7.54, 62.3, 8.55, 9.28, 43.6, 94.2, 44.6, 66.6 } },
                { "worker-03", new double[] { 8.85, 31.7, 15.8, 89.6, 164, 40.5, 47.6, 75.5, 10.7, 62.3 } },
                { "worker-04", new double[] { 16.4, 6.91, 87.4, 20, 16.8, 7.12, 6.99, 16.4, 12.6, 63.9 } },
                { "worker-05", new double[] { 14.7, 59.6, 15, 21.8, 20.6, 96.1, 16.8, 15.8, 8.02, 26.7 } },
                { "worker-06", new double[] { 37.9, 96.9, 40.8, 106, 21.7, 25.8, 51.3, 23, 18.9, 20.2 } },
                { "worker-07", new double[] { 22, 44.8, 37.5, 16.6, 30.7, 7.07, 7.18, 80.9, 44.5, 135 } },
                { "worker-08", new double[] { 69.9, 30.5, 33.4, 53, 70.7, 78.3, 18, 45.2, 51.4, 33.7 } },
                { "worker-09", new double[] { 28.1, 7.49, 16, 23, 99.9, 12, 11.8, 57.4, 8.79, 24 } },
                { "worker-10", new double[] { 113, 7.68, 85.6, 196, 35, 17.6, 60.7, 15.5, 34.3, 12.1 } },
            };

            Dictionary <string, double[]> highWWCorrMeas = new Dictionary <string, double[]>
            {
                { "worker-01", new double[] { 66.8, 46, 61.1, 54.6, 31.7, 74.3, 60.9, 53.4, 38.9, 27.5 } },
                { "worker-02", new double[] { 14.2, 53.9, 21.8, 47.8, 48.8, 76.5, 41.3, 20.4, 31.9, 31.1 } },
                { "worker-03", new double[] { 186, 84.6, 94.4, 218, 189, 130, 107, 80.6, 288, 173 } },
                { "worker-04", new double[] { 23.5, 16.2, 40.2, 130, 42.2, 25.7, 35.4, 40.8, 109, 40.9 } },
                { "worker-05", new double[] { 43.8, 31.1, 13.1, 24.1, 27.7, 23.9, 40.2, 60.3, 29.8, 37.2 } },
                { "worker-06", new double[] { 41, 11.4, 4.44, 12.9, 22.7, 20.5, 12.6, 8.35, 13.6, 28.1 } },
                { "worker-07", new double[] { 6.56, 9.5, 6.97, 5.92, 2.42, 14, 12.3, 3.07, 7.01, 6.49 } },
                { "worker-08", new double[] { 9.21, 9.42, 28.7, 72.9, 35.6, 17.2, 20.2, 13.4, 10.5, 26.3 } },
                { "worker-09", new double[] { 19.6, 14.3, 22.8, 35.1, 28.9, 36.9, 13, 13.3, 13.6, 37 } },
                { "worker-10", new double[] { 78.7, 28.2, 41.3, 14.4, 72.9, 10.2, 16.2, 15.8, 42.2, 61 } },
            };

            BWModelParameters modelParams = BWModelParameters.GetDefaults(logNormalDstrn: true);

            this.OverwriteDefaults(modelParams, customVals);

            McmcParameters mcmcParams = new McmcParameters();

            this.OverwriteDefaults(mcmcParams, customVals);

            BWModelParameters       bwParams     = BWModelParameters.GetDefaults(true);
            ExposureMetricEstimates emeLowWWCorr = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: lowWWCorrMeas, oel: 150),
                                       specificParams: modelParams,
                                       mcmcParams: mcmcParams));
            ExposureMetricEstimates emeHighWWCorr = new ExposureMetricEstimates(
                new BetweenWorkerModel(measures: new MeasureList(workerMeasures: highWWCorrMeas, oel: 150),
                                       specificParams: modelParams,
                                       mcmcParams: mcmcParams));

            this.Emes = new ExposureMetricEstimates[] { emeLowWWCorr, emeHighWWCorr };

            return(new Tuple <string, ExposureMetricFunc>[] {
                Tuple.Create("Group GM (90% CrI)", new ExposureMetricFunc(e => e.GeomMean())),
                Tuple.Create("Between-worker GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev())),
                Tuple.Create("Within-worker GSD (90% CrI)", new ExposureMetricFunc(e => e.GeomStanDev(false))),
                Tuple.Create("Within-worker correlation (rho) (90% CrI)", new ExposureMetricFunc(e => e.Rho())),
                Tuple.Create("Probability that rho>0.2", new ExposureMetricFunc(e => e.RhoProbGt(0.2))),
                Tuple.Create("R.ratio (+90% CrI)", new ExposureMetricFunc(e => e.RRatio())),
                Tuple.Create("Probability that R>2", new ExposureMetricFunc(e => e.RRatioProbGt(2))),
                Tuple.Create("Probability that R>10", new ExposureMetricFunc(e => e.RRatioProbGt(10))),
                Tuple.Create("Probability of individual overexposure (95th percentile) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoP95())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoP95ProbGt(20))),
                Tuple.Create("Probability of individual overexposure (arithmetic mean) in % (90% CrI)", new ExposureMetricFunc(e => e.IndivOverexpoAm())),
                Tuple.Create("Chances that the above probability is >20%", new ExposureMetricFunc(e => e.IndivOverexpoAmProbGt(20))),
            });
        }