Back to Index | Next: Models Overview ->
This guide shows the minimum namespaces and workflows needed to use RMC.BestFit.dll from a .NET application.
Reference the BestFit model library and its Numerics dependency from your application:
<ProjectReference Include="..\RMC.BestFit\RMC.BestFit.csproj" />BestFit uses Numerics for probability distributions, optimization, MCMC, and matrix operations.
using Numerics.Distributions;
using RMC.BestFit;
using RMC.BestFit.Analyses;
using RMC.BestFit.Diagnostics;
using RMC.BestFit.Estimation;
using RMC.BestFit.Models;RMC.BestFit contains observation and series types such as ExactSeries, while RMC.BestFit.Models contains DataFrame and model classes.
using RMC.BestFit;
using RMC.BestFit.Models;
var dataFrame = new DataFrame
{
ExactSeries = new ExactSeries(new[] { 22.0, 27.4, 31.8, 29.1, 35.7 })
};For censored or uncertain records, use UncertainSeries, IntervalSeries, and ThresholdSeries.
using Numerics.Distributions;
using RMC.BestFit;
using RMC.BestFit.Estimation;
using RMC.BestFit.Models;
var dataFrame = new DataFrame
{
ExactSeries = new ExactSeries(new[] { 22.0, 27.4, 31.8, 29.1, 35.7 })
};
var model = new UnivariateDistribution(dataFrame, UnivariateDistributionType.Normal);
var mle = new MaximumLikelihood(model, OptimizationMethod.DifferentialEvolution);
if (mle.Estimate())
{
model.SetParameterValues(mle.BestParameterSet.Values);
Console.WriteLine($"Log-likelihood: {mle.MaximumLogLikelihood:F3}");
}using Numerics.Distributions;
using RMC.BestFit;
using RMC.BestFit.Analyses;
using RMC.BestFit.Models;
var dataFrame = new DataFrame
{
ExactSeries = new ExactSeries(new[] { 22.0, 27.4, 31.8, 29.1, 35.7 })
};
var model = new UnivariateDistribution(dataFrame, UnivariateDistributionType.LogPearsonTypeIII);
var analysis = new UnivariateAnalysis(model);
analysis.BayesianAnalysis.Iterations = 3000;
analysis.BayesianAnalysis.WarmupIterations = 1500;
await analysis.RunAsync();
Console.WriteLine($"DIC: {analysis.BayesianAnalysis.DIC:F2}");
Console.WriteLine($"WAIC: {analysis.BayesianAnalysis.WAIC:F2}");Read Models Overview for the model contract, then Input Data Frame for flood-frequency data types.