Exemple #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()))
            });
        }
Exemple #2
0
        private Model buildModel()
        {
            Model model = null;
            Range mer   = meRange;

            string mlStr = String.Join("|", Entrs.Observations.Split(new String[] { CR }, StringSplitOptions.RemoveEmptyEntries));
            string meStr = "";

            if ((bool)me_CV.IsChecked && !(MERange.Minimum == 0 && MERange.Maximum == 0))
            {
                meStr = "cv(" + ShowDouble(MERange.Minimum / 100) + "~" + ShowDouble(MERange.Maximum / 100) + ")|";
            }

            PastDataSummary PD = new PastDataSummary();

            if ((bool)DistriAP_ExpostatsPData.IsChecked && !double.IsNaN(PastData.Mean) && !double.IsNaN(PastData.SD) && PastData.N != 0)
            {
                PD = new PastDataSummary(PastData.Mean, PastData.SD, PastData.N);
            }

            bool        preBuildError = false;
            MeasureList ml            = new MeasureList(meStr + mlStr, Entrs.VLE);

            if (!preBuildError)
            {
                if ((bool)UseModelGES.IsChecked)
                {
                    if ((bool)DistriAP_Expostats.IsChecked)
                    {
                        model = new SEGInformedVarModel(measures: ml, specificParams: ModelParams, mcmcParams: MCMCParams, pastDataSummary: PD);
                    }
                    else if ((bool)DistriAP_Uniforme.IsChecked)
                    {
                        UninformativeModelParameters ump = convertParams(ModelParams);
                        model = new SEGUninformativeModel(measures: ml, specificParams: ump, mcmcParams: MCMCParams);
                    }
                }
                else if ((bool)UseModelBW.IsChecked)
                {
                    if ((bool)DistribAPBW_Expostats.IsChecked)
                    {
                        model = new BetweenWorkerModel(ml, BwModelParams, MCMCParams);
                    }
                    else if ((bool)DistribAPBW_Uniform.IsChecked)
                    {
                        BWUModelParams.InitMuOverall   = BwModelParams.InitMuOverall;
                        BWUModelParams.InitSigmaWithin = BwModelParams.InitSigmaWithin;
                        BWUModelParams.MuOverallLower  = BwModelParams.MuOverallLower;
                        BWUModelParams.MuOverallUpper  = BwModelParams.MuOverallUpper;
                        model = new BetweenWorkerModel(ml, BWUModelParams, MCMCParams);
                    }
                }
            }

            return(model);
        }
Exemple #3
0
        private UninformativeModelParameters convertParams(SEGInformedVarModelParameters imp)
        {
            UninformativeModelParameters ump = UninformativeModelParameters.GetDefaults(imp.LogNormalDstrn);

            ump.InitMu  = imp.InitMu;
            ump.InitSD  = imp.InitSigma;
            ump.MuLower = imp.MuLower;
            ump.MuUpper = imp.MuUpper;
            ump.SDRange = SDRange;
            return(ump);
        }
Exemple #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 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))),
            });
        }
Exemple #5
0
        private void ToggleModel(bool distLogNormal, bool useBWModel, string senderName = null)
        {
            ModelParams    = SEGInformedVarModelParameters.GetDefaults(distLogNormal);
            BwModelParams  = BWModelParameters.GetDefaults(distLogNormal);
            BWUModelParams = BWModelParameters_UniformPriorOnSDs.GetDefaults(distLogNormal);

            Entrs = Entrees.GetDefaults(distLogNormal, useBWModel);

            foreach (TextBox tb in FindVisualChildren <TextBox>(this))
            {
                try
                {
                    BindingProxy bp = tb.FindResource("boundsProxy") as BindingProxy;
                    bp.Bounds.setState(distLogNormal);
                    bp.MinValue = bp.Bounds.Minimum;
                    bp.MaxValue = bp.Bounds.Maximum;
                } catch (ResourceReferenceKeyNotFoundException)
                {
                }
            }
            MECanvas.Visibility = (bool)UseModelGES.IsChecked ? Visibility.Visible : Visibility.Hidden;
            MERange             = resetMeasErrRange();

            SDRange = UninformativeModelParameters.GetDefaults(distLogNormal).SDRange;

            if (senderName.StartsWith("UseModel"))
            {
                if (useBWModel)
                {
                    BWCanvas.Margin         = DAPLabel.Margin;
                    BWInitValsCanvas.Margin = InitValLabel.Margin;
                }
                foreach (Canvas canv in FindVisualChildren <Canvas>(this))
                {
                    if (canv.Name.StartsWith("BW"))
                    {
                        canv.Visibility = canv.Visibility == Visibility.Hidden ? Visibility.Visible : Visibility.Hidden;
                    }
                }
            }
            OnPropertyChanged();
        }