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())) }); }
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); }
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); }
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))), }); }
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(); }