Header menu logo bristlecone

ScriptNotebook

Predator-Prey Dynamics: Snowshoe Hare and Lynx

Here we use the classic example of snowshoe hare and lynx predator-prey dynamics, to demonstrate the basic functions of Bristlecone. The dataset is a 90-year time-series of snowshoe hare and lynx pelts purchased by the Hudson's Bay Company of Canada. Data is in 1000s.

To get started, we first load and open the Bristlecone library in an F# script file (.fsx):

open Bristlecone // Opens Bristlecone core library and estimation engine
open Bristlecone.Language // Open the language for writing Bristlecone models

Defining the ecological model

In Bristlecone, a single ecological model (representing a single hypothesis) is defined through the ModelSystem type. A ModelSystem needs to include three key components:

In this example, we demonstrate using the Lotka–Volterra predator–prey model as the model system. For the -logL function we use a bivariate normal negative log likelihood function. This -logL function assumes normally-distributed observation error around each observation at each time-point, for both the lynx and hare data. The -logL function contains three parameters that are to be estimated alongside the deterministic model: the variability in lynx data, the variability in hare data, and their covariance.

let ``predator-prey`` =

    let ``dh/dt`` = Parameter "α" * This - Parameter "β" * This * Environment "lynx"
    let ``dl/dt`` = -Parameter "δ" * This + Parameter "γ" * Environment "hare" * This

    Model.empty
    |> Model.addEquation "hare" ``dh/dt``
    |> Model.addEquation "lynx" ``dl/dt``

    |> Model.estimateParameter "α" noConstraints 0.75 1.25 // Natural growth rate of hares in absence of predation
    |> Model.estimateParameter "β" noConstraints 0.01 0.20 // Death rate per encounter of hares due to predation
    |> Model.estimateParameter "δ" noConstraints 0.75 1.25 // Natural death rate of lynx in the absence of food
    |> Model.estimateParameter "γ" noConstraints 0.01 0.20 // Efficiency of turning predated hares into lynx

    |> Model.useLikelihoodFunction (ModelLibrary.Likelihood.bivariateGaussian "hare" "lynx")
    |> Model.estimateParameter "ρ" noConstraints -0.500 0.500
    |> Model.estimateParameter "σ[x]" notNegative 0.001 0.100
    |> Model.estimateParameter "σ[y]" notNegative 0.001 0.100

    |> Model.compile

Setting up the Bristlecone Engine

A bristlecone engine provides a fixed setup for estimating parameters from data. Use the same engine for all model fits within a single study. This engine uses a gradident descent method (Nelder Mead simplex), and a basic Runge-Kutta 4 integration method provided by MathNet Numerics.

let engine =
    Bristlecone.mkContinuous
    // |> Bristlecone.withCustomOptimisation (Optimisation.Amoeba.swarm 5 20 Optimisation.Amoeba.Solver.Default)
    |> Bristlecone.withCustomOptimisation (
        Optimisation.MonteCarlo.Filzbach.filzbach
            { Optimisation.MonteCarlo.Filzbach.FilzbachSettings<float>.Default with
                BurnLength = Optimisation.EndConditions.afterIteration 10000 }
    )
    |> Bristlecone.withContinuousTime Integration.MathNet.integrate
    |> Bristlecone.withConditioning Conditioning.RepeatFirstDataPoint
    |> Bristlecone.withSeed 1000 // We are setting a seed for this example - see below

Note. We have set a seed for random number generation for this worked example. This ensures that the results are the same each time this documentation is generated.

Does it all work? Testing the engine and model

Before being confident in the ability of our estimation engine to be able to arrive at the correct solution, we must run a full test of the model and estimation engine.

Bristlecone includes the Bristlecone.testModel function, which we use here. Given a model system and estimation engine, the function generates a random parameter set (θ) many times; for each θ, the 'true' time-series are generated. The test result indicates the effectiveness of the configuration at estimating θ given the auto-generated time-series. If there is divergence, there is likely an issue with your model or the Bristlecone configuration.

Bristlecone includes many settings to configure the test procedure. A simple test configuration is set as Test.defaultSettings, but here we will configure some additional settings:

let testSettings =
    Test.create
    |> Test.addStartValues [ "hare", 50.; "lynx", 75. ]
    |> Test.addNoise (Test.Noise.tryAddNormal "σ[y]" "lynx")
    |> Test.addNoise (Test.Noise.tryAddNormal "σ[x]" "hare")
    |> Test.addGenerationRules
        [ Test.GenerationRules.alwaysLessThan 100000. "lynx"
          Test.GenerationRules.alwaysMoreThan 10. "lynx"
          Test.GenerationRules.alwaysLessThan 100000. "hare"
          Test.GenerationRules.alwaysMoreThan 10. "hare" ]
    |> Test.withTimeSeriesLength 30
    |> Test.endWhen (Optimisation.EndConditions.afterIteration 100)

In our TestSettings, we have specified the initial time point (t = 0) for both modelled time-series. We have also added noise around each generated time-series, and specified that each time-series should be 30 years in length.

With these test settings, we can now run the test.

let testResult = ``predator-prey`` |> Bristlecone.tryTestModel engine testSettings
##1## GeneralEvent "Attempting to generate parameter set."
##1## GeneralEvent "The data must comply with 4 rules after 50000 tries."
##1## GeneralEvent
  "Time-series start at 1970/01/01 with resolution Fixed (Years PositiveInt 1)."
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."
##1## GeneralEvent
  "Skipping optimisation: only the result of the given parameters will be computed"
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."
##1## GeneralEvent
  "Time-series start at 1970/01/01 with resolution Fixed (Years PositiveInt 1)."
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."
##1## GeneralEvent
  "[Optimisation] Initial theta is [|1.066387771; 0.03566858421; 0.1035392077; 1.036168264; 0.01350511291;
  0.05463441816; 0.02742593879|]"
##1## GeneralEvent "[Optimisation] Starting Filzbach-style MCMC optimisation"
Initial scale: [|0.08333333333; 0.03166666667; 0.03166666667; 0.08333333333; 0.1666666667;
  0.0165; 0.0165|]
##1## GeneralEvent
  "[Filzbach] Starting burn-in at point [|1.066387771; 0.03566858421; 0.1035392077; 1.036168264; 0.01350511291;
  0.05463441816; 0.02742593879|] (L = 45747872.216636)"
##1## At iteration 0 (-logL = 24447045.175469) [|1.066387771; 0.03566858421; 0.1035392077; 1.036168264; 0.01350511291;
  0.05008227844; 0.04916525006|]
##1## At iteration 1000 (-logL = 6475.645534) [|1.14746175; 0.01664110616; 0.02628041427; 1.38684381; -0.1030370983;
  0.7279984778; 0.5104735391|]
##1## At iteration 2000 (-logL = 4070.378854) [|1.147279354; 0.01673819819; 0.02775672215; 1.43880964; -0.03117328071;
  0.9558322012; 0.6359164538|]
##1## At iteration 3000 (-logL = 2623.614791) [|1.143638523; 0.01666690064; 0.02722513707; 1.424081144; -0.09971355816;
  1.309095791; 0.7916430102|]
##1## At iteration 4000 (-logL = 1406.149503) [|1.145795309; 0.01661251545; 0.02776358168; 1.441578434; -0.06171863886;
  2.117157688; 1.325584972|]
##1## At iteration 5000 (-logL = 1273.557089) [|1.132951622; 0.01621817943; 0.02706910742; 1.439338515; -0.2027074596;
  1.779919087; 1.975675704|]
##1## At iteration 6000 (-logL = 1275.846480) [|1.117313825; 0.01603395653; 0.02725496888; 1.45939275; -0.147505645;
  1.800872802; 2.027861684|]
##1## At iteration 7000 (-logL = 1274.822934) [|1.17306922; 0.01681009824; 0.02647470637; 1.405238033; -0.2363838226;
  1.788667709; 1.982856088|]
##1## At iteration 8000 (-logL = 1273.272880) [|1.174221139; 0.01683667172; 0.02535663525; 1.37013034; -0.1497066463;
  1.675955332; 2.034449644|]
##1## At iteration 9000 (-logL = 1273.905815) [|1.152757141; 0.01656474096; 0.0269423989; 1.434634369; -0.1215391146;
  1.799408895; 1.924937145|]
##1## GeneralEvent
  "[Filzbach] Burn-in complete. Starting sampling at point (1274.374199,
 [|1.175984609; 0.01704101928; 0.02597741827; 1.381227702; -0.162171904;
   1.757300368; 2.018407429|])"
##1## At iteration 0 (-logL = 1273.930630) [|1.175984609; 0.01700912391; 0.02562180949; 1.381227702; -0.162171904;
  1.757300368; 2.018407429|]
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."
##1## DebugEvent
  "Observations occur on a fixed temporal resolution: Years PositiveInt 1."
##1## DebugEvent
  "No environmental forcing data was supplied. Solving using time points of observations."

We can plot the test results to check the fit.

Fitting to real data

First, we must load in the real data, which is in a CSV file. Here, we will use the FSharp.Data type provider to read in the CSV file (see the FSharp.Data docs for further information on how to use the library). We place the raw data into a Bristlecone TimeSeries type using TimeSeries.fromObservations:

[<Literal>]
let ResolutionFolder = __SOURCE_DIRECTORY__

type PopulationData = FSharp.Data.CsvProvider<"data/lynx-hare.csv", ResolutionFolder=ResolutionFolder>

let data =
    let csv = PopulationData.Load(__SOURCE_DIRECTORY__ + "/data/lynx-hare.csv")

    [ (code "hare").Value, Time.TimeSeries.fromObservations (csv.Rows |> Seq.map (fun r -> float r.Hare, r.Year))
      (code "lynx").Value, Time.TimeSeries.fromObservations (csv.Rows |> Seq.map (fun r -> float r.Lynx, r.Year)) ]
    |> Map.ofList
map
  [(ShortCode "hare",
    FixedTimeSeries
  ((19.58, 1/1/1845 12:00:00 AM),
   TimeSteps
     [|(19.6, 365.00:00:00); (19.61, 365.00:00:00); (11.99, 365.00:00:00);
       (28.04, 366.00:00:00); (58.0, 365.00:00:00); (74.6, 365.00:00:00);
       (75.09, 365.00:00:00); (88.48, 366.00:00:00); (61.28, 365.00:00:00);
       (74.67, 365.00:00:00); (88.06, 365.00:00:00); (68.51, 366.00:00:00);
       (32.19, 365.00:00:00); (12.64, 365.00:00:00); (21.49, 365.00:00:00);
       (30.35, 366.00:00:00); (2.18, 365.00:00:00); (152.65, 365.00:00:00);
       (148.36, 365.00:00:00); (85.81, 366.00:00:00); (41.41, 365.00:00:00);
       (14.75, 365.00:00:00); (2.28, 365.00:00:00); (5.91, 366.00:00:00);
       (9.95, 365.00:00:00); (10.44, 365.00:00:00); (70.64, 365.00:00:00);
       (50.12, 366.00:00:00); (50.13, 365.00:00:00); (101.25, 365.00:00:00);
       (97.12, 365.00:00:00); (86.51, 366.00:00:00); (72.17, 365.00:00:00);
       (38.32, 365.00:00:00); (10.11, 365.00:00:00); (7.74, 366.00:00:00);
       (9.67, 365.00:00:00); (43.12, 365.00:00:00); (52.21, 365.00:00:00);
       (134.85, 366.00:00:00); (134.86, 365.00:00:00); (103.79, 365.00:00:00);
       (46.1, 365.00:00:00); (15.03, 366.00:00:00); (24.2, 365.00:00:00);
       (41.65, 365.00:00:00); (52.34, 365.00:00:00); (53.78, 366.00:00:00);
       (70.4, 365.00:00:00); (85.81, 365.00:00:00); (56.69, 365.00:00:00);
       (16.59, 366.00:00:00); (6.16, 365.00:00:00); (2.3, 365.00:00:00);
       (12.82, 365.00:00:00); (4.72, 365.00:00:00); (4.73, 365.00:00:00);
       (37.22, 365.00:00:00); (69.72, 365.00:00:00); (57.78, 366.00:00:00);
       (28.68, 365.00:00:00); (23.37, 365.00:00:00); (21.54, 365.00:00:00);
       (26.34, 366.00:00:00); (53.1, 365.00:00:00); (68.48, 365.00:00:00);
       (75.58, 365.00:00:00); (57.92, 366.00:00:00); (40.97, 365.00:00:00);
       (24.95, 365.00:00:00); (12.59, 365.00:00:00); (4.97, 366.00:00:00);
       (4.5, 365.00:00:00); (11.21, 365.00:00:00); (56.6, 365.00:00:00);
       (69.63, 366.00:00:00); (77.74, 365.00:00:00); (80.53, 365.00:00:00);
       (73.38, 365.00:00:00); (36.93, 366.00:00:00); (4.64, 365.00:00:00);
       (2.54, 365.00:00:00); (1.8, 365.00:00:00); (2.39, 366.00:00:00);
       (4.23, 365.00:00:00); (19.52, 365.00:00:00); (82.11, 365.00:00:00);
       (89.76, 366.00:00:00); (81.66, 365.00:00:00); (15.76, 365.00:00:00)|]));
   (ShortCode "lynx",
    FixedTimeSeries
  ((30.09, 1/1/1845 12:00:00 AM),
   TimeSteps
     [|(45.15, 365.00:00:00); (49.15, 365.00:00:00); (39.52, 365.00:00:00);
       (21.23, 366.00:00:00); (8.42, 365.00:00:00); (5.56, 365.00:00:00);
       (5.08, 365.00:00:00); (10.17, 366.00:00:00); (19.6, 365.00:00:00);
       (32.91, 365.00:00:00); (34.38, 365.00:00:00); (29.59, 366.00:00:00);
       (21.3, 365.00:00:00); (13.69, 365.00:00:00); (7.65, 365.00:00:00);
       (4.08, 366.00:00:00); (4.09, 365.00:00:00); (14.33, 365.00:00:00);
       (38.22, 365.00:00:00); (60.78, 366.00:00:00); (70.77, 365.00:00:00);
       (72.77, 365.00:00:00); (42.68, 365.00:00:00); (16.39, 366.00:00:00);
       (9.83, 365.00:00:00); (5.8, 365.00:00:00); (5.26, 365.00:00:00);
       (18.91, 366.00:00:00); (30.95, 365.00:00:00); (31.18, 365.00:00:00);
       (46.34, 365.00:00:00); (45.77, 366.00:00:00); (44.15, 365.00:00:00);
       (36.33, 365.00:00:00); (12.03, 365.00:00:00); (12.6, 366.00:00:00);
       (18.34, 365.00:00:00); (35.14, 365.00:00:00); (43.77, 365.00:00:00);
       (65.69, 366.00:00:00); (79.35, 365.00:00:00); (51.65, 365.00:00:00);
       (32.59, 365.00:00:00); (22.45, 366.00:00:00); (16.16, 365.00:00:00);
       (14.12, 365.00:00:00); (20.38, 365.00:00:00); (33.33, 366.00:00:00);
       (46.0, 365.00:00:00); (51.41, 365.00:00:00); (46.43, 365.00:00:00);
       (33.68, 366.00:00:00); (18.01, 365.00:00:00); (8.86, 365.00:00:00);
       (7.13, 365.00:00:00); (9.47, 365.00:00:00); (14.86, 365.00:00:00);
       (31.47, 365.00:00:00); (60.57, 365.00:00:00); (63.51, 366.00:00:00);
       (54.7, 365.00:00:00); (6.3, 365.00:00:00); (3.41, 365.00:00:00);
       (5.44, 366.00:00:00); (11.65, 365.00:00:00); (20.35, 365.00:00:00);
       (32.88, 365.00:00:00); (39.55, 366.00:00:00); (43.36, 365.00:00:00);
       (40.83, 365.00:00:00); (30.36, 365.00:00:00); (17.18, 366.00:00:00);
       (6.82, 365.00:00:00); (3.19, 365.00:00:00); (3.52, 365.00:00:00);
       (9.94, 366.00:00:00); (20.3, 365.00:00:00); (31.99, 365.00:00:00);
       (42.36, 365.00:00:00); (49.08, 366.00:00:00); (53.99, 365.00:00:00);
       (52.25, 365.00:00:00); (37.7, 365.00:00:00); (19.14, 366.00:00:00);
       (6.98, 365.00:00:00); (8.31, 365.00:00:00); (16.01, 365.00:00:00);
       (24.82, 366.00:00:00); (29.7, 365.00:00:00); (35.4, 365.00:00:00)|]))]

Once the data are in Bristlecone TimeSeries we can run Bristlecone.fit, which is the main fitting function of the Bristlecone library.

let endCondition = Optimisation.EndConditions.afterIteration 10000

let result = ``predator-prey`` |> Bristlecone.tryFit engine endCondition data
Ok
  { ResultId = 49a51cc0-d4be-44df-b28f-2c0c59849757
    Likelihood = 11727.45429
    Parameters =
     Pool
       (map
          [(ShortCode "α",
            Parameter (Unconstrained, Detached, Estimated 1.605180343));
           (ShortCode "β",
            Parameter (Unconstrained, Detached, Estimated 0.05783276088));
           (ShortCode "γ",
            Parameter (Unconstrained, Detached, Estimated 0.01188671274));
           (ShortCode "δ",
            Parameter (Unconstrained, Detached, Estimated 0.436385251));
           (ShortCode "ρ",
            Parameter (Unconstrained, Detached, Estimated 0.2921122025));
           (ShortCode "σ[x]",
            Parameter (PositiveOnly, Detached, Estimated 4.553050937));
           (ShortCode "σ[y]",
            Parameter (PositiveOnly, Detached, Estimated 2.385351921))])
    Series =
     map
       [(ShortCode "hare",
         FixedTimeSeries
  (({ Fit = 20.23851449
      Obs = 19.58 }, 1/1/1845 12:00:00 AM),
   TimeSteps
     [|({ Fit = 27.44747815
          Obs = 19.6 }, 365.00:00:00); ({ Fit = 42.27799906
                                          Obs = 19.61 }, 365.00:00:00);
       ({ Fit = 59.64822727
          Obs = 11.99 }, 365.00:00:00); ({ Fit = 58.21055681
                                           Obs = 28.04 }, 366.00:00:00);
       ({ Fit = 37.43082114
          Obs = 58.0 }, 365.00:00:00); ({ Fit = 23.34860186
                                          Obs = 74.6 }, 365.00:00:00);
       ({ Fit = 19.29289009
          Obs = 75.09 }, 365.00:00:00); ({ Fit = 22.05386379
                                           Obs = 88.48 }, 366.00:00:00);
       ({ Fit = 31.65609791
          Obs = 61.28 }, 365.00:00:00); ({ Fit = 48.43025595
                                           Obs = 74.67 }, 365.00:00:00);
       ({ Fit = 61.97294443
          Obs = 88.06 }, 365.00:00:00); ({ Fit = 51.6414807
                                           Obs = 68.51 }, 366.00:00:00);
       ({ Fit = 31.50832043
          Obs = 32.19 }, 365.00:00:00); ({ Fit = 21.29411106
                                           Obs = 12.64 }, 365.00:00:00);
       ({ Fit = 19.72871888
          Obs = 21.49 }, 365.00:00:00); ({ Fit = 24.6292717
                                           Obs = 30.35 }, 366.00:00:00);
       ({ Fit = 36.71284716
          Obs = 2.18 }, 365.00:00:00); ({ Fit = 54.25412742
                                          Obs = 152.65 }, 365.00:00:00);
       ({ Fit = 61.04537571
          Obs = 148.36 }, 365.00:00:00); ({ Fit = 44.20781735
                                            Obs = 85.81 }, 366.00:00:00);
       ({ Fit = 26.98409576
          Obs = 41.41 }, 365.00:00:00); ({ Fit = 20.19098918
                                           Obs = 14.75 }, 365.00:00:00);
       ({ Fit = 20.87782196
          Obs = 2.28 }, 365.00:00:00); ({ Fit = 28.04411273
                                          Obs = 5.91 }, 366.00:00:00);
       ({ Fit = 42.47753839
          Obs = 9.95 }, 365.00:00:00); ({ Fit = 58.74194449
                                          Obs = 10.44 }, 365.00:00:00);
       ({ Fit = 56.85323437
          Obs = 70.64 }, 365.00:00:00); ({ Fit = 37.22002936
                                           Obs = 50.12 }, 366.00:00:00);
       ({ Fit = 23.78632546
          Obs = 50.13 }, 365.00:00:00); ({ Fit = 19.91062688
                                           Obs = 101.25 }, 365.00:00:00);
       ({ Fit = 22.76063135
          Obs = 97.12 }, 365.00:00:00); ({ Fit = 32.33202548
                                           Obs = 86.51 }, 366.00:00:00);
       ({ Fit = 48.5329431
          Obs = 72.17 }, 365.00:00:00); ({ Fit = 60.75077401
                                           Obs = 38.32 }, 365.00:00:00);
       ({ Fit = 50.39147403
          Obs = 10.11 }, 365.00:00:00); ({ Fit = 31.42132064
                                           Obs = 7.74 }, 366.00:00:00);
       ({ Fit = 21.753183
          Obs = 9.67 }, 365.00:00:00); ({ Fit = 20.39914002
                                          Obs = 43.12 }, 365.00:00:00);
       ({ Fit = 25.44257209
          Obs = 52.21 }, 365.00:00:00); ({ Fit = 37.45714146
                                           Obs = 134.85 }, 366.00:00:00);
       ({ Fit = 54.11841384
          Obs = 134.86 }, 365.00:00:00); ({ Fit = 59.48671739
                                            Obs = 103.79 }, 365.00:00:00);
       ({ Fit = 43.15003393
          Obs = 46.1 }, 365.00:00:00); ({ Fit = 27.02048794
                                          Obs = 15.03 }, 366.00:00:00);
       ({ Fit = 20.70513769
          Obs = 24.2 }, 365.00:00:00); ({ Fit = 21.64231759
                                          Obs = 41.65 }, 365.00:00:00);
       ({ Fit = 28.98999844
          Obs = 52.34 }, 365.00:00:00); ({ Fit = 43.2231664
                                           Obs = 53.78 }, 366.00:00:00);
       ({ Fit = 58.1760768
          Obs = 70.4 }, 365.00:00:00); ({ Fit = 55.07094858
                                          Obs = 85.81 }, 365.00:00:00);
       ({ Fit = 36.41456546
          Obs = 56.69 }, 365.00:00:00); ({ Fit = 23.95357768
                                           Obs = 16.59 }, 366.00:00:00);
       ({ Fit = 20.51672097
          Obs = 6.16 }, 365.00:00:00); ({ Fit = 23.66160452
                                          Obs = 2.3 }, 365.00:00:00);
       ({ Fit = 33.41639197
          Obs = 12.82 }, 365.00:00:00); ({ Fit = 49.1340339
                                           Obs = 4.72 }, 365.00:00:00);
       ({ Fit = 59.59013213
          Obs = 4.73 }, 365.00:00:00); ({ Fit = 48.60187145
                                          Obs = 37.22 }, 365.00:00:00);
       ({ Fit = 30.8854275
          Obs = 69.72 }, 365.00:00:00); ({ Fit = 22.05762185
                                           Obs = 57.78 }, 366.00:00:00);
       ({ Fit = 21.13323915
          Obs = 28.68 }, 365.00:00:00); ({ Fit = 26.51753663
                                           Obs = 23.37 }, 365.00:00:00);
       ({ Fit = 38.64424292
          Obs = 21.54 }, 365.00:00:00); ({ Fit = 54.34574826
                                           Obs = 26.34 }, 366.00:00:00);
       ({ Fit = 57.7221594
          Obs = 53.1 }, 365.00:00:00); ({ Fit = 41.5732881
                                          Obs = 68.48 }, 365.00:00:00);
       ({ Fit = 26.74835945
          Obs = 75.58 }, 365.00:00:00); ({ Fit = 21.1585645
                                           Obs = 57.92 }, 366.00:00:00);
       ({ Fit = 22.54014995
          Obs = 40.97 }, 365.00:00:00); ({ Fit = 30.25801084
                                           Obs = 24.95 }, 365.00:00:00);
       ({ Fit = 44.39713639
          Obs = 12.59 }, 365.00:00:00); ({ Fit = 57.75612776
                                           Obs = 4.97 }, 366.00:00:00);
       ({ Fit = 52.91493972
          Obs = 4.5 }, 365.00:00:00); ({ Fit = 35.18647552
                                         Obs = 11.21 }, 365.00:00:00);
       ({ Fit = 23.93163201
          Obs = 56.6 }, 365.00:00:00); ({ Fit = 21.14184378
                                          Obs = 69.63 }, 366.00:00:00);
       ({ Fit = 24.76256227
          Obs = 77.74 }, 365.00:00:00); ({ Fit = 34.86562606
                                           Obs = 80.53 }, 365.00:00:00);
       ({ Fit = 50.07440059
          Obs = 73.38 }, 365.00:00:00); ({ Fit = 58.33103809
                                           Obs = 36.93 }, 366.00:00:00);
       ({ Fit = 46.40099767
          Obs = 4.64 }, 365.00:00:00); ({ Fit = 30.0449568
                                          Obs = 2.54 }, 365.00:00:00);
       ({ Fit = 22.27011267
          Obs = 1.8 }, 365.00:00:00); ({ Fit = 21.95708658
                                         Obs = 2.39 }, 366.00:00:00);
       ({ Fit = 27.85332199
          Obs = 4.23 }, 365.00:00:00); ({ Fit = 40.20129756
                                          Obs = 19.52 }, 365.00:00:00);
       ({ Fit = 54.73855678
          Obs = 82.11 }, 365.00:00:00); ({ Fit = 55.67736244
                                           Obs = 89.76 }, 366.00:00:00);
       ({ Fit = 39.64172337
          Obs = 81.66 }, 365.00:00:00); ({ Fit = 26.28294687
                                           Obs = 15.76 }, 365.00:00:00)|]));
        (ShortCode "lynx",
         FixedTimeSeries
  (({ Fit = 24.49024591
      Obs = 30.09 }, 1/1/1845 12:00:00 AM),
   TimeSteps
     [|({ Fit = 20.87815817
          Obs = 45.15 }, 365.00:00:00); ({ Fit = 20.2928228
                                           Obs = 49.15 }, 365.00:00:00);
       ({ Fit = 24.20371067
          Obs = 39.52 }, 365.00:00:00); ({ Fit = 32.35654441
                                           Obs = 21.23 }, 366.00:00:00);
       ({ Fit = 37.05988639
          Obs = 8.42 }, 365.00:00:00); ({ Fit = 33.99392656
                                          Obs = 5.56 }, 365.00:00:00);
       ({ Fit = 28.09097797
          Obs = 5.08 }, 365.00:00:00); ({ Fit = 23.07580059
                                          Obs = 10.17 }, 366.00:00:00);
       ({ Fit = 20.38292767
          Obs = 19.6 }, 365.00:00:00); ({ Fit = 21.11867989
                                          Obs = 32.91 }, 365.00:00:00);
       ({ Fit = 26.71497454
          Obs = 34.38 }, 365.00:00:00); ({ Fit = 34.68039429
                                           Obs = 29.59 }, 366.00:00:00);
       ({ Fit = 36.57757717
          Obs = 21.3 }, 365.00:00:00); ({ Fit = 32.02287301
                                          Obs = 13.69 }, 365.00:00:00);
       ({ Fit = 26.2364194
          Obs = 7.65 }, 365.00:00:00); ({ Fit = 21.93854845
                                          Obs = 4.08 }, 366.00:00:00);
       ({ Fit = 20.27898004
          Obs = 4.09 }, 365.00:00:00); ({ Fit = 22.51592383
                                          Obs = 14.33 }, 365.00:00:00);
       ({ Fit = 29.53034384
          Obs = 38.22 }, 365.00:00:00); ({ Fit = 36.15388119
                                           Obs = 60.78 }, 366.00:00:00);
       ({ Fit = 35.35257002
          Obs = 70.77 }, 365.00:00:00); ({ Fit = 29.9764571
                                           Obs = 72.77 }, 365.00:00:00);
       ({ Fit = 24.58086765
          Obs = 42.68 }, 365.00:00:00); ({ Fit = 21.11320944
                                           Obs = 16.39 }, 366.00:00:00);
       ({ Fit = 20.63043995
          Obs = 9.83 }, 365.00:00:00); ({ Fit = 24.51324989
                                          Obs = 5.8 }, 365.00:00:00);
       ({ Fit = 32.27304795
          Obs = 5.26 }, 365.00:00:00); ({ Fit = 36.60745571
                                          Obs = 18.91 }, 366.00:00:00);
       ({ Fit = 33.64859944
          Obs = 30.95 }, 365.00:00:00); ({ Fit = 27.98641375
                                           Obs = 31.18 }, 365.00:00:00);
       ({ Fit = 23.17277946
          Obs = 46.34 }, 365.00:00:00); ({ Fit = 20.64287882
                                           Obs = 45.77 }, 366.00:00:00);
       ({ Fit = 21.50447797
          Obs = 44.15 }, 365.00:00:00); ({ Fit = 27.0223009
                                           Obs = 36.33 }, 365.00:00:00);
       ({ Fit = 34.4981217
          Obs = 12.03 }, 365.00:00:00); ({ Fit = 36.10089894
                                           Obs = 12.6 }, 366.00:00:00);
       ({ Fit = 31.69410668
          Obs = 18.34 }, 365.00:00:00); ({ Fit = 26.14555712
                                           Obs = 35.14 }, 365.00:00:00);
       ({ Fit = 22.05790575
          Obs = 43.77 }, 365.00:00:00); ({ Fit = 20.58798605
                                           Obs = 65.69 }, 366.00:00:00);
       ({ Fit = 22.96550216
          Obs = 79.35 }, 365.00:00:00); ({ Fit = 29.79314708
                                           Obs = 51.65 }, 365.00:00:00);
       ({ Fit = 35.8489407
          Obs = 32.59 }, 365.00:00:00); ({ Fit = 34.85828203
                                           Obs = 22.45 }, 366.00:00:00);
       ({ Fit = 29.66728251
          Obs = 16.16 }, 365.00:00:00); ({ Fit = 24.51510087
                                           Obs = 14.12 }, 365.00:00:00);
       ({ Fit = 21.27484977
          Obs = 20.38 }, 365.00:00:00); ({ Fit = 21.01363961
                                           Obs = 33.33 }, 366.00:00:00);
       ({ Fit = 25.02156122
          Obs = 46.0 }, 365.00:00:00); ({ Fit = 32.42597237
                                          Obs = 51.41 }, 365.00:00:00);
       ({ Fit = 36.17705342
          Obs = 46.43 }, 365.00:00:00); ({ Fit = 33.14810172
                                           Obs = 33.68 }, 366.00:00:00);
       ({ Fit = 27.70569008
          Obs = 18.01 }, 365.00:00:00); ({ Fit = 23.14822845
                                           Obs = 8.86 }, 365.00:00:00);
       ({ Fit = 20.87154899
          Obs = 7.13 }, 365.00:00:00); ({ Fit = 21.98600644
                                          Obs = 9.47 }, 365.00:00:00);
       ({ Fit = 27.5506697
          Obs = 14.86 }, 365.00:00:00); ({ Fit = 34.47591268
                                           Obs = 31.47 }, 365.00:00:00);
       ({ Fit = 35.56766401
          Obs = 60.57 }, 365.00:00:00); ({ Fit = 31.20249459
                                           Obs = 63.51 }, 366.00:00:00);
       ({ Fit = 25.90453761
          Obs = 54.7 }, 365.00:00:00); ({ Fit = 22.09252129
                                          Obs = 6.3 }, 365.00:00:00);
       ({ Fit = 20.91048743
          Obs = 3.41 }, 365.00:00:00); ({ Fit = 23.55704199
                                          Obs = 5.44 }, 366.00:00:00);
       ({ Fit = 30.26343955
          Obs = 11.65 }, 365.00:00:00); ({ Fit = 35.61393653
                                           Obs = 20.35 }, 365.00:00:00);
       ({ Fit = 34.25907085
          Obs = 32.88 }, 365.00:00:00); ({ Fit = 29.20353563
                                           Obs = 39.55 }, 366.00:00:00);
       ({ Fit = 24.32934487
          Obs = 43.36 }, 365.00:00:00); ({ Fit = 21.39050166
                                           Obs = 40.83 }, 365.00:00:00);
       ({ Fit = 21.45679967
          Obs = 30.36 }, 365.00:00:00); ({ Fit = 25.70283671
                                           Obs = 17.18 }, 366.00:00:00);
       ({ Fit = 32.7356757
          Obs = 6.82 }, 365.00:00:00); ({ Fit = 35.73642783
                                          Obs = 3.19 }, 365.00:00:00);
       ({ Fit = 32.52066585
          Obs = 3.52 }, 365.00:00:00); ({ Fit = 27.28872768
                                          Obs = 9.94 }, 366.00:00:00);
       ({ Fit = 23.03669618
          Obs = 20.3 }, 365.00:00:00); ({ Fit = 21.09542391
                                          Obs = 31.99 }, 365.00:00:00);
       ({ Fit = 22.57254359
          Obs = 42.36 }, 365.00:00:00); ({ Fit = 28.25402403
                                           Obs = 49.08 }, 366.00:00:00);
       ({ Fit = 34.53634397
          Obs = 53.99 }, 365.00:00:00); ({ Fit = 34.96834595
                                           Obs = 52.25 }, 365.00:00:00);
       ({ Fit = 30.5818359
          Obs = 37.7 }, 365.00:00:00); ({ Fit = 25.55195242
                                          Obs = 19.14 }, 366.00:00:00);
       ({ Fit = 22.07537392
          Obs = 6.98 }, 365.00:00:00); ({ Fit = 21.27127947
                                          Obs = 8.31 }, 365.00:00:00);
       ({ Fit = 24.28860099
          Obs = 16.01 }, 365.00:00:00); ({ Fit = 30.87417607
                                           Obs = 24.82 }, 366.00:00:00);
       ({ Fit = 35.38669704
          Obs = 29.7 }, 365.00:00:00); ({ Fit = 33.56361155
                                          Obs = 35.4 }, 365.00:00:00)|]))]
    Trace =
     [(11731.0293,
       [|1.599353835; 0.05712627204; 0.01178726136; 0.4372982404; 0.2874627467;
         4.553670095; 2.39708759|]);
      (11730.47895,
       [|1.599353835; 0.05712627204; 0.01178726136; 0.4372982404; 0.2874627467;
         4.561470978; 2.380636352|]);
      (11729.82012,
       [|1.5991714; 0.0572205986; 0.01184858876; 0.4372982404; 0.2874627467;
         4.561470978; 2.380636352|]);
      (11729.82012,
       [|1.5991714; 0.0572205986; 0.01184858876; 0.4372982404; 0.2874627467;
         4.561470978; 2.380636352|]);
      (11729.82012,
       [|1.5991714; 0.0572205986; 0.01184858876; 0.4372982404; 0.2874627467;
         4.561470978; 2.380636352|]);
      (11731.93452,
       [|1.603026011; 0.05753774381; 0.01203194527; 0.4373466784; 0.307074722;
         4.589096348; 2.355956073|]);
      (11732.48333,
       [|1.603810584; 0.05739832928; 0.01187241202; 0.4369091767; 0.3230240875;
         4.592925593; 2.406155625|]);
      (11730.99096,
       [|1.600863374; 0.05762962766; 0.01187241202; 0.4369091767; 0.3230240875;
         4.592925593; 2.406155625|]);
      (11730.99096,
       [|1.600863374; 0.05762962766; 0.01187241202; 0.4369091767; 0.3230240875;
         4.592925593; 2.406155625|]);
      (11731.88671,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.3230240875;
         4.547458697; 2.406155625|]);
      (11731.88671,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.3230240875;
         4.547458697; 2.406155625|]);
      (11729.68108,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.547458697; 2.406155625|]);
      (11729.68108,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.547458697; 2.406155625|]);
      (11729.68108,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.547458697; 2.406155625|]);
      (11729.68108,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.547458697; 2.406155625|]);
      (11728.96633,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.5672867; 2.393079147|]);
      (11728.96633,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.2976589563;
         4.5672867; 2.393079147|]);
      (11729.04792,
       [|1.600863374; 0.05741655393; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11728.34918,
       [|1.603089321; 0.05760153592; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11728.34918,
       [|1.603089321; 0.05760153592; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11728.34918,
       [|1.603089321; 0.05760153592; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11728.34918,
       [|1.603089321; 0.05760153592; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.07733,
       [|1.603840876; 0.05749014157; 0.01187241202; 0.4369091767; 0.297748828;
         4.540727353; 2.393079147|]);
      (11729.99783,
       [|1.603840876; 0.05742520305; 0.0117728707; 0.437317119; 0.297748828;
         4.540727353; 2.393079147|]);
      (11730.02896,
       [|1.603840876; 0.05742520305; 0.0117728707; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11730.13678,
       [|1.603840876; 0.05746929718; 0.0118912327; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11731.16218,
       [|1.603840876; 0.05728495946; 0.01182666146; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11731.16218,
       [|1.603840876; 0.05728495946; 0.01182666146; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11731.16218,
       [|1.603840876; 0.05728495946; 0.01182666146; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11731.16218,
       [|1.603840876; 0.05728495946; 0.01182666146; 0.437317119; 0.2921122025;
         4.540727353; 2.393079147|]);
      (11731.01051,
       [|1.603840876; 0.05728495946; 0.01182666146; 0.437317119; 0.2921122025;
         4.577204462; 2.372431772|]);
      (11728.70779,
       [|1.603840876; 0.05760688517; 0.01198326944; 0.436241673; 0.2921122025;
         4.577204462; 2.372431772|]);
      (11728.70779,
       [|1.603840876; 0.05760688517; 0.01198326944; 0.436241673; 0.2921122025;
         4.577204462; 2.372431772|]);
      (11728.80303,
       [|1.603840876; 0.05760688517; 0.01198326944; 0.436241673; 0.2921122025;
         4.562057966; 2.385351921|]);
      (11728.12267,
       [|1.603840876; 0.05760688517; 0.01188671274; 0.4360105905; 0.2921122025;
         4.562057966; 2.385351921|]);
      (11728.12191,
       [|1.603840876; 0.05760688517; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.48772,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.4360105905; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11727.45429,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.436385251; 0.2921122025;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11728.16389,
       [|1.605180343; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11727.8159,
       [|1.606079458; 0.05783276088; 0.01188671274; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.53699,
       [|1.604539314; 0.05748282938; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.53699,
       [|1.604539314; 0.05748282938; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.45871,
       [|1.604470407; 0.05749460568; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.45871,
       [|1.604470407; 0.05749460568; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.45871,
       [|1.604470407; 0.05749460568; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11730.45871,
       [|1.604470407; 0.05749460568; 0.01201593084; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11729.74122,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11729.74122,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.435587892; 0.3098969562;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82243,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.385351921|]);
      (11729.82226,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11729.82226,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11729.82226,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11729.82226,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11729.82226,
       [|1.603244989; 0.05749460568; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11727.64178,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11727.64178,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11727.64178,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11727.64178,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11727.64178,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4371898438; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11728.00168,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4379569758; 0.3053324843;
         4.553050937; 2.384944138|]);
      (11728.08221,
       [|1.603244989; 0.05814522043; 0.0119439941; 0.4380773161; 0.3025644429;
         4.553050937; 2.384944138|]);
      (11728.24185,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.4380773161; 0.3025644429;
         4.553050937; 2.384944138|]);
      (11728.24185,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.4380773161; 0.3025644429;
         4.553050937; 2.384944138|]);
      (11728.22417,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.3045760569;
         4.553050937; 2.384944138|]);
      (11728.22417,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.3045760569;
         4.553050937; 2.384944138|]);
      (11728.22417,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.3045760569;
         4.553050937; 2.384944138|]);
      (11728.19119,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.384944138|]);
      (11728.19119,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.384944138|]);
      (11729.45935,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.409937217|]);
      (11729.45935,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.409937217|]);
      (11729.45935,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.409937217|]);
      (11729.45935,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2972066952;
         4.553050937; 2.409937217|]);
      (11729.79054,
       [|1.603244989; 0.05807148315; 0.0119439941; 0.438030739; 0.2931241663;
         4.533941478; 2.409937217|]);
      (11728.65042,
       [|1.601158134; 0.05790907903; 0.01203332108; 0.4373185229; 0.306776976;
         4.568531745; 2.390601339|]); ...]
    InternalDynamics =
     Some
       (map
          [(ShortCode "hare",
            [|20.23851449; 27.44747815; 42.27799906; 59.64822727; 58.21055681;
              37.43082114; 23.34860186; 19.29289009; 22.05386379; 31.65609791;
              48.43025595; 61.97294443; 51.6414807; 31.50832043; 21.29411106;
              19.72871888; 24.6292717; 36.71284716; 54.25412742; 61.04537571;
              44.20781735; 26.98409576; 20.19098918; 20.87782196; 28.04411273;
              42.47753839; 58.74194449; 56.85323437; 37.22002936; 23.78632546;
              19.91062688; 22.76063135; 32.33202548; 48.5329431; 60.75077401;
              50.39147403; 31.42132064; 21.753183; 20.39914002; 25.44257209;
              37.45714146; 54.11841384; 59.48671739; 43.15003393; 27.02048794;
              20.70513769; 21.64231759; 28.98999844; 43.2231664; 58.1760768;
              55.07094858; 36.41456546; 23.95357768; 20.51672097; 23.66160452;
              33.41639197; 49.1340339; 59.59013213; 48.60187145; 30.8854275;
              22.05762185; 21.13323915; 26.51753663; 38.64424292; 54.34574826;
              57.7221594; 41.5732881; 26.74835945; 21.1585645; 22.54014995;
              30.25801084; 44.39713639; 57.75612776; 52.91493972; 35.18647552;
              23.93163201; 21.14184378; 24.76256227; 34.86562606; 50.07440059;
              58.33103809; 46.40099767; 30.0449568; 22.27011267; 21.95708658;
              27.85332199; 40.20129756; 54.73855678; 55.67736244; 39.64172337;
              26.28294687|]);
           (ShortCode "lynx",
            [|24.49024591; 20.87815817; 20.2928228; 24.20371067; 32.35654441;
              37.05988639; 33.99392656; 28.09097797; 23.07580059; 20.38292767;
              21.11867989; 26.71497454; 34.68039429; 36.57757717; 32.02287301;
              26.2364194; 21.93854845; 20.27898004; 22.51592383; 29.53034384;
              36.15388119; 35.35257002; 29.9764571; 24.58086765; 21.11320944;
              20.63043995; 24.51324989; 32.27304795; 36.60745571; 33.64859944;
              27.98641375; 23.17277946; 20.64287882; 21.50447797; 27.0223009;
              34.4981217; 36.10089894; 31.69410668; 26.14555712; 22.05790575;
              20.58798605; 22.96550216; 29.79314708; 35.8489407; 34.85828203;
              29.66728251; 24.51510087; 21.27484977; 21.01363961; 25.02156122;
              32.42597237; 36.17705342; 33.14810172; 27.70569008; 23.14822845;
              20.87154899; 21.98600644; 27.5506697; 34.47591268; 35.56766401;
              31.20249459; 25.90453761; 22.09252129; 20.91048743; 23.55704199;
              30.26343955; 35.61393653; 34.25907085; 29.20353563; 24.32934487;
              21.39050166; 21.45679967; 25.70283671; 32.7356757; 35.73642783;
              32.52066585; 27.28872768; 23.03669618; 21.09542391; 22.57254359;
              28.25402403; 34.53634397; 34.96834595; 30.5818359; 25.55195242;
              22.07537392; 21.27127947; 24.28860099; 30.87417607; 35.38669704;
              33.56361155|])]) }

Inspecting the model fit

The Bristlecone.fit function returns an EstimationResult, which contains some key information that may be used to inspect the model fit:

First, we can use the Series to inspect by eye the model fit versus the observed time-series:

NB: this documentation is auto-generated so we cannot comment directly on the randomly generated scenario.

Next, we can examine the traces to see how parameter values evolved over the course of the optimisation routine:

Graphing.parameterTrace result
Multiple items
module Bristlecone from Bristlecone
<namespacedoc><summary>The core library of Bristlecone, containing model-fitting functions.</summary></namespacedoc>
Main functionality of Bristlecone, including functions to scaffold `ModelSystem`s and for model-fitting (tests and real fits).


--------------------
namespace Bristlecone
module Language from Bristlecone
<summary> An F# Domain Specific Language (DSL) for scripting with Bristlecone. </summary>
Multiple items
union case ModelExpression.Parameter: string -> ModelExpression

--------------------
module Parameter from Bristlecone
union case ModelExpression.This: ModelExpression
union case ModelExpression.Environment: string -> ModelExpression
module Model from Bristlecone.Language
<summary> Terms for scaffolding a model system for use with Bristlecone. </summary>
val empty: ModelBuilder.ModelBuilder
val addEquation: name: string -> eq: ModelExpression -> builder: ModelBuilder.ModelBuilder -> ModelBuilder.ModelBuilder
val estimateParameter: name: string -> constraintMode: Parameter.Constraint -> lower: float -> upper: float -> builder: ModelBuilder.ModelBuilder -> ModelBuilder.ModelBuilder
val noConstraints: Parameter.Constraint
val useLikelihoodFunction: likelihoodFn: ModelSystem.LikelihoodFn -> builder: ModelBuilder.ModelBuilder -> ModelBuilder.ModelBuilder
namespace Bristlecone.ModelLibrary
module Likelihood from Bristlecone.ModelLibrary
<summary>Likelihood functions to represent a variety of distributions and data types.</summary>
<namespacedoc><summary>Pre-built model parts for use in Bristlecone</summary></namespacedoc>
val bivariateGaussian: key1: string -> key2: string -> paramAccessor: ModelSystem.ParameterValueAccessor -> data: CodedMap<ModelSystem.PredictedSeries> -> float
<summary> Log likelihood function for dual simultaneous system, assuming Gaussian error for both x and y. Requires parameters 'σ[x]', 'σ[y]' and 'ρ' to be included in any `ModelSystem` that uses it. </summary>
val notNegative: Parameter.Constraint
val compile: (ModelBuilder.ModelBuilder -> ModelSystem.ModelSystem)
val engine: EstimationEngine.EstimationEngine<float,float>
val mkContinuous: EstimationEngine.EstimationEngine<float,float>
<summary>A basic estimation engine for ordinary differential equations, using a Nelder-Mead optimiser.</summary>
val withCustomOptimisation: optim: EstimationEngine.Optimiser<'a> -> engine: EstimationEngine.EstimationEngine<'a,'b> -> EstimationEngine.EstimationEngine<'a,'b>
namespace Bristlecone.Optimisation
module MonteCarlo from Bristlecone.Optimisation
<summary> A module containing Monte Carlo Markov Chain (MCMC) methods for optimisation. An introduction to MCMC approaches is provided by [Reali, Priami, and Marchetti (2017)](https://doi.org/10.3389/fams.2017.00006) </summary>
module Filzbach from Bristlecone.Optimisation.MonteCarlo
<summary> An adaptation of the Filzbach method (originally by Drew Purves) </summary>
val filzbach: settings: Optimisation.MonteCarlo.Filzbach.FilzbachSettings<float> -> EstimationEngine.Optimiser<float>
<summary> A Monte Carlo Markov Chain sampler based on the 'Filzbach' algorithm from Microsoft Research Cambridge. </summary>
type FilzbachSettings<'a> = { TuneAfterChanges: int MaxScaleChange: float MinScaleChange: float BurnLength: EndCondition<'a> } static member Default: FilzbachSettings<float>
Multiple items
val float: value: 'T -> float (requires member op_Explicit)

--------------------
type float = System.Double

--------------------
type float<'Measure> = float
module EndConditions from Bristlecone.Optimisation
val afterIteration: iteration: int -> EstimationEngine.Solution<float> list -> currentIteration: int -> bool
<summary> End the optimisation procedure when a minimum number of iterations is exceeded. </summary>
val withContinuousTime: t: EstimationEngine.Integrate<'a,'b> -> engine: EstimationEngine.EstimationEngine<'a,'b> -> EstimationEngine.EstimationEngine<'a,'b>
<summary> Use a custom integration method </summary>
namespace Bristlecone.Integration
module MathNet from Bristlecone.Integration
val integrate: log: (Logging.LogEvent -> unit) -> tInitial: float -> tEnd: float -> tStep: float -> initialConditions: Map<'a,float> -> externalEnvironment: Map<'a,Time.TimeIndex.TimeIndex<float>> -> modelMap: Map<'a,(float -> float -> Map<'a,float> -> float)> -> Map<'a,float array> (requires comparison)
val withConditioning: c: Conditioning.Conditioning<'a> -> engine: EstimationEngine.EstimationEngine<'a,'b> -> EstimationEngine.EstimationEngine<'a,'b>
<summary> Choose how the start point is chosen when solving the model system </summary>
module Conditioning from Bristlecone
union case Conditioning.Conditioning.RepeatFirstDataPoint: Conditioning.Conditioning<'a>
val withSeed: seed: int -> engine: EstimationEngine.EstimationEngine<'a,'b> -> EstimationEngine.EstimationEngine<'a,'b>
<summary> Use a mersenne twister random number generator with a specific seed. </summary>
val testSettings: Test.TestSettings<float>
Multiple items
module Test from Bristlecone.Language
<summary> Terms for designing tests for model systems. </summary>

--------------------
module Test from Bristlecone
val create: Test.TestSettings<float>
val addStartValues: values: (string * 'a) seq -> settings: Test.TestSettings<'a> -> Test.TestSettings<'a>
<summary> Adds start values to the test settings. Overwrites any existing start values that may already exist. </summary>
val addNoise: noiseFn: (System.Random -> Parameter.Pool -> CodedMap<Time.TimeSeries<'a>> -> Result<CodedMap<Time.TimeSeries<'a>>,string>) -> settings: Test.TestSettings<'a> -> Test.TestSettings<'a>
<summary> Add noise to a particular time-series when generating fake time-series. Built-in noise functions are in the `Noise` module. </summary>
module Noise from Bristlecone.Test
<summary> Functions for adding background variability into test problems. </summary>
val tryAddNormal: sdParamCode: string -> seriesName: string -> rnd: System.Random -> pool: Parameter.Pool.ParameterPool -> data: CodedMap<Time.TimeSeries.TimeSeries<float>> -> Result<Map<ShortCode.ShortCode,Time.TimeSeries.TimeSeries<float>>,string>
<summary> Adds normally-distributed noise around each data point in the selected time-series. Returns `None` if the series or parameter does not exist. </summary>
val addGenerationRules: rules: Test.GenerationRule list -> settings: Test.TestSettings<'a> -> Test.TestSettings<'a>
module GenerationRules from Bristlecone.Test
val alwaysLessThan: i: float -> variable: string -> Test.GenerationRule
<summary> Ensures that all generated values are less than i </summary>
val alwaysMoreThan: i: float -> variable: string -> Test.GenerationRule
<summary> Ensures that all generated values are greater than i </summary>
val withTimeSeriesLength: n: int -> settings: Test.TestSettings<'a> -> Test.TestSettings<'a>
val endWhen: goal: EstimationEngine.EndCondition<'a> -> settings: Test.TestSettings<'a> -> Test.TestSettings<'a>
val testResult: Result<Test.TestResult,string>
val tryTestModel: engine: EstimationEngine.EstimationEngine<float,float> -> settings: Test.TestSettings<float> -> model: ModelSystem.ModelSystem -> Result<Test.TestResult,string>
<summary>Tests that the specified estimation engine can correctly estimate known parameters given specfici test settings. Random parameter sets and resultant fake time-series data are generated for the model system by using the rules and noise generation settings in the stated test settings.</summary>
<param name="engine"></param>
<param name="settings"></param>
<param name="model"></param>
<returns>A test result that indicates the error structure. It is wrapped in an F# Result, indicating if the procedure was successful or not.</returns>
namespace Plotly
namespace Plotly.NET
val pairedFits: series: Map<string,ModelSystem.FitSeries> -> string
val series: Map<string,ModelSystem.FitSeries>
Multiple items
module Map from Bristlecone

--------------------
module Map from Microsoft.FSharp.Collections

--------------------
type Map<'Key,'Value (requires comparison)> = interface IReadOnlyDictionary<'Key,'Value> interface IReadOnlyCollection<KeyValuePair<'Key,'Value>> interface IEnumerable interface IStructuralEquatable interface IComparable interface IEnumerable<KeyValuePair<'Key,'Value>> interface ICollection<KeyValuePair<'Key,'Value>> interface IDictionary<'Key,'Value> new: elements: ('Key * 'Value) seq -> Map<'Key,'Value> member Add: key: 'Key * value: 'Value -> Map<'Key,'Value> ...

--------------------
new: elements: ('Key * 'Value) seq -> Map<'Key,'Value>
Multiple items
val string: value: 'T -> string

--------------------
type string = System.String
module ModelSystem from Bristlecone
<summary> Represents an ordinary differential equation model system and its likelihood as as objective function that may be optimised. </summary>
type FitSeries = Time.TimeSeries<ModelSystem.FitValue>
union case Result.Ok: ResultValue: 'T -> Result<'T,'TError>
val r: Test.TestResult
Multiple items
module Seq from Bristlecone

--------------------
module Seq from Microsoft.FSharp.Collections
val map: mapping: ('T -> 'U) -> source: 'T seq -> 'U seq
val kv: System.Collections.Generic.KeyValuePair<string,ModelSystem.FitSeries>
val lines: (System.DateTime * float) seq list
property System.Collections.Generic.KeyValuePair.Value: ModelSystem.FitSeries with get
<summary>Gets the value in the key/value pair.</summary>
<returns>A <typeparamref name="TValue" /> that is the value of the <see cref="T:System.Collections.Generic.KeyValuePair`2" />.</returns>
module Time from Bristlecone
Multiple items
module TimeSeries from Bristlecone.Time

--------------------
type TimeSeries<'T> = Time.TimeSeries.TimeSeries<'T>
val toObservations: series: Time.TimeSeries.TimeSeries<'a> -> Time.TimeSeries.Observation<'a> seq
<summary> Turn a time series into a sequence of observations </summary>
val collect: mapping: ('T -> #('U seq)) -> source: 'T seq -> 'U seq
val d: ModelSystem.FitValue
val v: System.DateTime
ModelSystem.FitValue.Fit: float
ModelSystem.FitValue.Obs: float
val groupBy: projection: ('T -> 'Key) -> source: 'T seq -> ('Key * 'T seq) seq (requires equality)
val x: string
val s: (System.DateTime * string * float) seq
val x: System.DateTime
val y: float
val toList: source: 'T seq -> 'T list
type Chart = static member AnnotatedHeatmap: zData: #('a1 seq) seq * annotationText: #(string seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: 'a3 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiX: 'a3 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?XGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiY: 'a4 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?YGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a5 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a5 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZSmooth: SmoothAlg * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?ReverseYAxis: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible and 'a5 :> IConvertible) + 1 overload static member Area: x: #IConvertible seq * y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: MarkerSymbol * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: MarkerSymbol seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?GroupNorm: GroupNorm * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillPatternShape: PatternShape * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillPattern: Pattern * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload static member Bar: values: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Keys: 'a1 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiKeys: 'a1 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPatternShape: PatternShape * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerPatternShape: PatternShape seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPattern: Pattern * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Base: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiWidth: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload static member BoxPlot: [<Optional; DefaultParameterValue ((null :> obj))>] ?X: 'a0 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiX: 'a0 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: 'a1 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiY: 'a1 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?WhiskerWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?BoxPoints: BoxPoints * [<Optional; DefaultParameterValue ((null :> obj))>] ?BoxMean: BoxMean * [<Optional; DefaultParameterValue ((null :> obj))>] ?Jitter: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?PointPos: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutlineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutlineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Outline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Notched: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?NotchWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?QuartileMethod: QuartileMethod * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a0 :> IConvertible and 'a1 :> IConvertible and 'a2 :> IConvertible) + 2 overloads static member Bubble: x: #IConvertible seq * y: #IConvertible seq * sizes: int seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: MarkerSymbol * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: MarkerSymbol seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?GroupNorm: GroupNorm * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload static member Candlestick: ``open`` : #IConvertible seq * high: #IConvertible seq * low: #IConvertible seq * close: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiX: 'a4 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a5 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a5 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?IncreasingColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Increasing: FinanceMarker * [<Optional; DefaultParameterValue ((null :> obj))>] ?DecreasingColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Decreasing: FinanceMarker * [<Optional; DefaultParameterValue ((null :> obj))>] ?WhiskerWidth: float * [<Optional; DefaultParameterValue ((true :> obj))>] ?ShowXAxisRangeSlider: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a4 :> IConvertible and 'a5 :> IConvertible) + 2 overloads static member Column: values: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Keys: 'a1 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiKeys: 'a1 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPatternShape: PatternShape * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerPatternShape: PatternShape seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPattern: Pattern * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Base: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiWidth: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload static member Contour: zData: #('a1 seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiX: 'a2 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: 'a3 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiY: 'a3 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineSmoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLine: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursColoring: ContourColoring * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursOperation: ConstraintOperation * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursType: ContourType * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowContourLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLabelFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?Contours: Contours * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?NContours: int * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible) static member Funnel: x: #IConvertible seq * y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Offset: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextInfo: TextInfo * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLineStyle: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorFillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLine: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?Connector: FunnelConnector * [<Optional; DefaultParameterValue ((null :> obj))>] ?InsideTextFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutsideTextFont: Font * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) static member Heatmap: zData: #('a1 seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiX: 'a2 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: 'a3 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiY: 'a3 seq seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?XGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?YGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZSmooth: SmoothAlg * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?ReverseYAxis: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible) + 1 overload ...
static member Chart.combine: gCharts: GenericChart.GenericChart seq -> GenericChart.GenericChart
static member Chart.Line: xy: (#System.IConvertible * #System.IConvertible) seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'c * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'c seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineDash: StyleParam.DrawingStyle * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Line: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Fill: StyleParam.Fill * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillPattern: TraceObjects.Pattern * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
static member Chart.Line: x: #System.IConvertible seq * y: #System.IConvertible seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'd * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'd seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineDash: StyleParam.DrawingStyle * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Line: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Fill: StyleParam.Fill * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillPattern: TraceObjects.Pattern * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'd :> System.IConvertible)
static member Chart.withTitle: title: Title -> (GenericChart.GenericChart -> GenericChart.GenericChart)
static member Chart.withTitle: title: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleFont: Font -> (GenericChart.GenericChart -> GenericChart.GenericChart)
property System.Collections.Generic.KeyValuePair.Key: string with get
<summary>Gets the key in the key/value pair.</summary>
<returns>A <typeparamref name="TKey" /> that is the key of the <see cref="T:System.Collections.Generic.KeyValuePair`2" />.</returns>
static member Chart.Grid: [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId) array array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XAxes: StyleParam.LinearAxisId array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YAxes: StyleParam.LinearAxisId array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?RowOrder: StyleParam.LayoutGridRowOrder * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Pattern: StyleParam.LayoutGridPattern * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XGap: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YGap: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Domain: LayoutObjects.Domain * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XSide: StyleParam.LayoutGridXSide * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YSide: StyleParam.LayoutGridYSide -> (#('a1 seq) -> GenericChart.GenericChart) (requires 'a1 :> GenericChart.GenericChart seq)
static member Chart.Grid: nRows: int * nCols: int * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId) array array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XAxes: StyleParam.LinearAxisId array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YAxes: StyleParam.LinearAxisId array * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?RowOrder: StyleParam.LayoutGridRowOrder * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Pattern: StyleParam.LayoutGridPattern * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XGap: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YGap: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Domain: LayoutObjects.Domain * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?XSide: StyleParam.LayoutGridXSide * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?YSide: StyleParam.LayoutGridYSide -> (#(GenericChart.GenericChart seq) -> GenericChart.GenericChart)
val x: GenericChart.GenericChart
val printfn: format: Printf.TextWriterFormat<'T> -> 'T
module GenericChart from Plotly.NET
<summary> Module to represent a GenericChart </summary>
val toChartHTML: gChart: GenericChart.GenericChart -> string
union case Result.Error: ErrorValue: 'TError -> Result<'T,'TError>
val e: string
val sprintf: format: Printf.StringFormat<'T> -> 'T
val pairedFitsForTestResult: testResult: Result<Test.TestResult,string> -> string
Multiple items
module Result from Bristlecone

--------------------
module Result from Microsoft.FSharp.Core

--------------------
[<Struct>] type Result<'T,'TError> = | Ok of ResultValue: 'T | Error of ErrorValue: 'TError
module Test from Bristlecone
type TestResult = { Parameters: ParameterTestResult list Series: Map<string,FitSeries> ErrorStructure: Map<string,float seq> RealLikelihood: float EstimatedLikelihood: float }
Test.TestResult.Series: Map<string,ModelSystem.FitSeries>
val pairedFitsForResult: testResult: Result<ModelSystem.EstimationResult,string> -> string
val testResult: Result<ModelSystem.EstimationResult,string>
type EstimationResult = { ResultId: Guid Likelihood: float Parameters: Pool Series: CodedMap<FitSeries> Trace: (float * float array) list InternalDynamics: CodedMap<float array> option }
<summary> An estimated model fit for a time-series model. </summary>
val r: ModelSystem.EstimationResult
ModelSystem.EstimationResult.Series: CodedMap<ModelSystem.FitSeries>
val kv: System.Collections.Generic.KeyValuePair<ShortCode.ShortCode,ModelSystem.FitSeries>
property System.Collections.Generic.KeyValuePair.Key: ShortCode.ShortCode with get
<summary>Gets the key in the key/value pair.</summary>
<returns>A <typeparamref name="TKey" /> that is the key of the <see cref="T:System.Collections.Generic.KeyValuePair`2" />.</returns>
property ShortCode.ShortCode.Value: string with get
val ofSeq: elements: ('Key * 'T) seq -> Map<'Key,'T> (requires comparison)
val parameterTrace: result: Result<ModelSystem.EstimationResult,'b> -> string
val result: Result<ModelSystem.EstimationResult,'b>
'b
ModelSystem.EstimationResult.Trace: (float * float array) list
val snd: tuple: ('T1 * 'T2) -> 'T2
Multiple items
module List from Bristlecone

--------------------
module List from Microsoft.FSharp.Collections

--------------------
type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ...
val flip: matrix: 'a list list -> 'a list list
val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list
val values: float list
argument y: float seq
<summary> Creates a Line chart, which uses a Line plotted between the given datums in a 2D space to visualize typically an evolution of Y depending on X.</summary>
<param name="x">Sets the x coordinates of the plotted data.</param>
<param name="y">Sets the y coordinates of the plotted data.</param>
<param name="ShowMarkers">Whether to show markers for the individual data points</param>
<param name="Name">Sets the trace name. The trace name appear as the legend item and on hover</param>
<param name="ShowLegend">Determines whether or not an item corresponding to this trace is shown in the legend.</param>
<param name="Opacity">Sets the opactity of the trace</param>
<param name="MultiOpacity">Sets the opactity of individual datum markers</param>
<param name="Text">Sets a text associated with each datum</param>
<param name="MultiText">Sets individual text for each datum</param>
<param name="TextPosition">Sets the position of text associated with each datum</param>
<param name="MultiTextPosition">Sets the position of text associated with individual datum</param>
<param name="MarkerColor">Sets the color of the marker</param>
<param name="MarkerColorScale">Sets the colorscale of the marker</param>
<param name="MarkerOutline">Sets the outline of the marker</param>
<param name="MarkerSymbol">Sets the marker symbol for each datum</param>
<param name="MultiMarkerSymbol">Sets the marker symbol for each individual datum</param>
<param name="Marker">Sets the marker (use this for more finegrained control than the other marker-associated arguments)</param>
<param name="LineColor">Sets the color of the line</param>
<param name="LineColorScale">Sets the colorscale of the line</param>
<param name="LineWidth">Sets the width of the line</param>
<param name="LineDash">sets the drawing style of the line</param>
<param name="Line">Sets the line (use this for more finegrained control than the other line-associated arguments)</param>
<param name="AlignmentGroup">Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.</param>
<param name="OffsetGroup">Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.</param>
<param name="StackGroup">Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order</param>
<param name="Orientation">Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used.</param>
<param name="GroupNorm">Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used</param>
<param name="Fill">Sets the area to fill with a solid color. Defaults to "none" unless this trace is stacked, then it gets "tonexty" ("tonextx") if `orientation` is "v" ("h") Use with `FillColor` if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0 respectively. "tonextx" and "tonexty" fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like "tozerox" and "tozeroy". "toself" connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. "tonext" fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like "toself" if there is no trace before it. "tonext" should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.</param>
<param name="FillColor">Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.</param>
<param name="FillPattern">Sets the pattern within the marker.</param>
<param name="UseWebGL">If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once.</param>
<param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param>
argument x: int seq
<summary> Creates a Line chart, which uses a Line plotted between the given datums in a 2D space to visualize typically an evolution of Y depending on X.</summary>
<param name="x">Sets the x coordinates of the plotted data.</param>
<param name="y">Sets the y coordinates of the plotted data.</param>
<param name="ShowMarkers">Whether to show markers for the individual data points</param>
<param name="Name">Sets the trace name. The trace name appear as the legend item and on hover</param>
<param name="ShowLegend">Determines whether or not an item corresponding to this trace is shown in the legend.</param>
<param name="Opacity">Sets the opactity of the trace</param>
<param name="MultiOpacity">Sets the opactity of individual datum markers</param>
<param name="Text">Sets a text associated with each datum</param>
<param name="MultiText">Sets individual text for each datum</param>
<param name="TextPosition">Sets the position of text associated with each datum</param>
<param name="MultiTextPosition">Sets the position of text associated with individual datum</param>
<param name="MarkerColor">Sets the color of the marker</param>
<param name="MarkerColorScale">Sets the colorscale of the marker</param>
<param name="MarkerOutline">Sets the outline of the marker</param>
<param name="MarkerSymbol">Sets the marker symbol for each datum</param>
<param name="MultiMarkerSymbol">Sets the marker symbol for each individual datum</param>
<param name="Marker">Sets the marker (use this for more finegrained control than the other marker-associated arguments)</param>
<param name="LineColor">Sets the color of the line</param>
<param name="LineColorScale">Sets the colorscale of the line</param>
<param name="LineWidth">Sets the width of the line</param>
<param name="LineDash">sets the drawing style of the line</param>
<param name="Line">Sets the line (use this for more finegrained control than the other line-associated arguments)</param>
<param name="AlignmentGroup">Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.</param>
<param name="OffsetGroup">Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.</param>
<param name="StackGroup">Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order</param>
<param name="Orientation">Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used.</param>
<param name="GroupNorm">Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used</param>
<param name="Fill">Sets the area to fill with a solid color. Defaults to "none" unless this trace is stacked, then it gets "tonexty" ("tonextx") if `orientation` is "v" ("h") Use with `FillColor` if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0 respectively. "tonextx" and "tonexty" fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like "tozerox" and "tozeroy". "toself" connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. "tonext" fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like "toself" if there is no trace before it. "tonext" should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.</param>
<param name="FillColor">Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.</param>
<param name="FillPattern">Sets the pattern within the marker.</param>
<param name="UseWebGL">If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once.</param>
<param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param>
property List.Length: int with get
module Graphing from Predator-prey
Multiple items
type LiteralAttribute = inherit Attribute new: unit -> LiteralAttribute

--------------------
new: unit -> LiteralAttribute
[<Literal>] val ResolutionFolder: string = "/Users/runner/work/bristlecone/bristlecone/docs/examples"
type PopulationData = FSharp.Data.CsvProvider<...>
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
Multiple items
namespace FSharp.Data

--------------------
namespace Microsoft.FSharp.Data
type CsvProvider
<summary>Typed representation of a CSV file.</summary> <param name='Sample'>Location of a CSV sample file or a string containing a sample CSV document.</param> <param name='Separators'>Column delimiter(s). Defaults to <c>,</c>.</param> <param name='InferRows'>Number of rows to use for inference. Defaults to <c>1000</c>. If this is zero, all rows are used.</param> <param name='Schema'>Optional column types, in a comma separated list. Valid types are <c>int</c>, <c>int64</c>, <c>bool</c>, <c>float</c>, <c>decimal</c>, <c>date</c>, <c>datetimeoffset</c>, <c>timespan</c>, <c>guid</c>, <c>string</c>, <c>int?</c>, <c>int64?</c>, <c>bool?</c>, <c>float?</c>, <c>decimal?</c>, <c>date?</c>, <c>datetimeoffset?</c>, <c>timespan?</c>, <c>guid?</c>, <c>int option</c>, <c>int64 option</c>, <c>bool option</c>, <c>float option</c>, <c>decimal option</c>, <c>date option</c>, <c>datetimeoffset option</c>, <c>timespan option</c>, <c>guid option</c> and <c>string option</c>. You can also specify a unit and the name of the column like this: <c>Name (type&lt;unit&gt;)</c>, or you can override only the name. If you don't want to specify all the columns, you can reference the columns by name like this: <c>ColumnName=type</c>.</param> <param name='HasHeaders'>Whether the sample contains the names of the columns as its first line.</param> <param name='IgnoreErrors'>Whether to ignore rows that have the wrong number of columns or which can't be parsed using the inferred or specified schema. Otherwise an exception is thrown when these rows are encountered.</param> <param name='SkipRows'>Skips the first n rows of the CSV file.</param> <param name='AssumeMissingValues'>When set to true, the type provider will assume all columns can have missing values, even if in the provided sample all values are present. Defaults to false.</param> <param name='PreferOptionals'>When set to true, inference will prefer to use the option type instead of nullable types, <c>double.NaN</c> or <c>""</c> for missing values. Defaults to false.</param> <param name='Quote'>The quotation mark (for surrounding values containing the delimiter). Defaults to <c>"</c>.</param> <param name='MissingValues'>The set of strings recognized as missing values specified as a comma-separated string (e.g., "NA,N/A"). Defaults to <c>NaN,NA,N/A,#N/A,:,-,TBA,TBD</c>.</param> <param name='CacheRows'>Whether the rows should be caches so they can be iterated multiple times. Defaults to true. Disable for large datasets.</param> <param name='Culture'>The culture used for parsing numbers and dates. Defaults to the invariant culture.</param> <param name='Encoding'>The encoding used to read the sample. You can specify either the character set name or the codepage number. Defaults to UTF8 for files, and to ISO-8859-1 the for HTTP requests, unless <c>charset</c> is specified in the <c>Content-Type</c> response header.</param> <param name='ResolutionFolder'>A directory that is used when resolving relative file references (at design time and in hosted execution).</param> <param name='EmbeddedResource'>When specified, the type provider first attempts to load the sample from the specified resource (e.g. 'MyCompany.MyAssembly, resource_name.csv'). This is useful when exposing types generated by the type provider.</param>
val data: Map<ShortCode.ShortCode,Time.TimeSeries.TimeSeries<float>>
val csv: FSharp.Data.CsvProvider<...>
FSharp.Data.CsvProvider<...>.Load(uri: string) : FSharp.Data.CsvProvider<...>
Loads CSV from the specified uri
FSharp.Data.CsvProvider<...>.Load(reader: System.IO.TextReader) : FSharp.Data.CsvProvider<...>
Loads CSV from the specified reader
FSharp.Data.CsvProvider<...>.Load(stream: System.IO.Stream) : FSharp.Data.CsvProvider<...>
Loads CSV from the specified stream
val code: (string -> ShortCode.ShortCode option)
<summary> A short code representation of an identifier for a parameter, model equation, or other model component. </summary>
Multiple items
union case ModelExpression.Time: ModelExpression

--------------------
module Time from Bristlecone
val fromObservations: dataset: Time.TimeSeries.Observation<'a> seq -> Time.TimeSeries.TimeSeries<'a>
<summary> Arrange existing observations as a bristlecone `TimeSeries`. Observations become ordered and indexed by time. </summary>
property FSharp.Data.Runtime.CsvFile.Rows: FSharp.Data.CsvProvider<...>.Row seq with get
<summary> The rows with data </summary>
val r: FSharp.Data.CsvProvider<...>.Row
property FSharp.Data.CsvProvider<...>.Row.Hare: decimal with get
property FSharp.Data.CsvProvider<...>.Row.Year: System.DateTime with get
property FSharp.Data.CsvProvider<...>.Row.Lynx: decimal with get
val ofList: elements: ('Key * 'T) list -> Map<'Key,'T> (requires comparison)
val endCondition: EstimationEngine.EndCondition<float>
val result: Result<ModelSystem.EstimationResult,string>
val tryFit: engine: EstimationEngine.EstimationEngine<float,float> -> endCondition: EstimationEngine.EndCondition<float> -> timeSeriesData: CodedMap<Time.TimeSeries<float>> -> model: ModelSystem.ModelSystem -> Result<ModelSystem.EstimationResult,string>
<summary> Fit a time-series model to data. Please note: it is strongly recommended that you test that the given `EstimationEngine` can correctly identify known parameters for your model. Refer to the `Bristlecone.testModel` function, which can be used to generate known data and complete this process. </summary>
<param name="engine">The engine encapsulates all settings that form part of the estimation method. Importantly, this includes the random number generator used for all stages of the analysis; if this is set using a fixed seed, the result will be reproducable.</param>
<param name="endCondition">You must specify a stopping condition, after which the optimisation process will cease. Bristlecone includes built-in end conditions in the `Bristlecone.Optimisation.EndConditions` module.</param>
<param name="timeSeriesData"></param>
<param name="model"></param>
<returns></returns>

Type something to start searching.