Summary: this tutorial shows how to assess fit quality with FSharp.Stats
Consider this simple linear regression:
open FSharp.Stats
open FSharp.Stats.Fitting
open LinearRegression.OLS
open GoodnessOfFit.OLS.Linear.Univariable
open FSharp.Stats.Distributions
//data sorted by x values
let x = vector [|1. .. 10.|]
let y = vector [|4.;10.;9.;7.;13.;17.;16.;23.;15.;30.|]
///linear regression line fitting function
let coefficients = Linear.Univariable.fit x y
let predictFunc = Linear.Univariable.predict coefficients
let fittedValues = x |> Seq.map predictFunc
let chart =
[
Chart.Point(x,y) |> Chart.withTraceInfo "raw"
Chart.Line(fittedValues|> Seq.mapi (fun i y -> x.[i],y)) |> Chart.withTraceInfo "fit"
]
|> Chart.combine
|> Chart.withTemplate ChartTemplates.lightMirrored
Various quality parameters can be accessed via the GoodnessOfFit
module:
//In the following some quality/interval/significance values are computed:
let sos = GoodnessOfFit.calculateSumOfSquares predictFunc x y
let n = sos.Count
let meanX = sos.MeanX
let meanY = sos.MeanY
let slope = coefficients.[1]
let intercept = coefficients.[0]
//coefficient of determination
let rSq = GoodnessOfFit.calculateDeterminationFromValue y fittedValues
//adjusted coefficient of determination; variable=number of coefficints (excluding intercept)
let rSqAdj = GoodnessOfFit.calculateDeterminationAdj y fittedValues 1
//pearson correlation coefficient
let r = sqrt rSq
//total sum of squares
let ssTotal = sos.Total
//regression sum of squares
let ssReg = sos.Regression
//residual sum of squares
let ssResidual = sos.Error
//sum of squares xx
let ssxx = sos.SSxx
//sum of products xy
let ssxy = sos.SSxy
//standard error of the regression slope
let stdErrSlope = GoodnessOfFit.standardErrorSlope sos
//standard error of the regression intercept
let stdErrIntercept = GoodnessOfFit.standardErrorIntercept sos
//standard error of the estimate (S)
let stdErrEstimate = GoodnessOfFit.standardErrorEstimate sos
//confidence intervals (df = n-#coefficients; a=5%)
let criticalT = Testing.TTest.getCriticalTValue (n - 2.) 0.05 Testing.TTest.TwoTailed
let lowerS = slope - criticalT * stdErrSlope
let upperS = slope + criticalT * stdErrSlope
let lowerI = intercept - criticalT * stdErrIntercept
let upperI = intercept + criticalT * stdErrIntercept
//significance tests
let testSlope = GoodnessOfFit.ttestSlope slope sos
let testInterc = GoodnessOfFit.ttestIntercept intercept sos
let outputTable =
let header = ["<b>ParameterName</b>";"Value";"StandardError (SE Coeff)"]
let rows =
let print f = sprintf "%.3f" f
[
["n"; sprintf "%.0f" n; "-"]
["meanX"; print meanX; "-"]
["meanY"; print meanY; "-"]
["slope"; print slope; print stdErrSlope]
["intercept" ; print intercept; print stdErrIntercept]
["<b>Goodness of fit</b>";""; ""]
["SS_total"; print ssTotal; ""]
["SS_regression"; print ssReg; ""]
["SS_residual"; print ssResidual; ""]
["r (pearson cor. coef."; print r; ""]
["r_squared"; print rSq; ""]
["r_squared_adj"; print rSqAdj; ""]
["SE Estimate"; print stdErrEstimate; ""]
["<b>95% Confidence interval</b>";"<b>min</b>"; "<b>max</b>"]
["slope"; print lowerS; print upperS]
["intercept"; print lowerI; print upperI]
["<b>significances</b>";""; ""]
["slope p Value"; print testSlope.PValue; ""]
["intercept p Value";print testInterc.PValue;""]
]
Chart.Table(
header,
rows,
HeaderFillColor = Color.fromString "#deebf7",
CellsFillColor = Color.fromColors [Color.fromString "#deebf7"; Color.fromString "white";Color. fromString "white"],
CellsMultiAlign = [StyleParam.HorizontalAlign.Left;StyleParam.HorizontalAlign.Center]
)
|> Chart.withTitle "Regression report"
A confidence band shows the uncertainty of an curve estimate. It widens towards the periphery.
A prediction band shows the uncertainty of a value of a new data point.
In both cases homoscedasticity is assumed.
//data sorted by x values
let xData = vector [|1. .. 10.|]
let yData = vector [|4.;10.;9.;7.;13.;17.;16.;23.;15.;30.|]
//let xData = vector [|1.47;1.50;1.52;1.55;1.57;1.60;1.63;1.65;1.68;1.70;1.73;1.75;1.78;1.80;1.83|]
//let yData = vector [|52.21;53.12;54.48;55.84;57.20;58.57;59.93;61.29;63.11;64.47;66.28;68.10;69.92;72.19;74.46|]
let values = Seq.zip xData yData
///linear regression line fitting function
let coeffs = Linear.Univariable.fit xData yData
let predictionFunction = Linear.Univariable.predict coeffs
let fitValues = xData |> Seq.map (fun xi -> xi,(predictionFunction xi))
///calculate confidence band errors for every x value
let confidence =
xData
|> Vector.map (calculateConfidenceBandError xData yData 0.95)
///lower and upper bounds of the 95% confidence band sorted according to x values
let (lower,upper) =
xData
|> Vector.toArray
|> Array.mapi (fun i xi -> (predictionFunction xi) - confidence.[i],(predictionFunction xi) + confidence.[i])
|> Array.unzip
let rangePlot =
[
Chart.Range (
xy=fitValues,
lower=lower,
upper=upper,
mode = StyleParam.Mode.Lines,
LineColor = Color.fromKeyword ColorKeyword.Blue,
RangeColor = Color.fromKeyword ColorKeyword.LightBlue
)
|> Chart.withTraceInfo "CI95"
Chart.Point (values,MarkerColor=Color.fromString "#000000") |> Chart.withTraceInfo "raw"
]
|> Chart.combine
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withTitle "Confidence band 95%"
The confidence band calculation is not limited to the original x values. To get a smooth confidence band, introduce additional x values in small steps.
let newXValues =
vector [|1. .. 0.5 .. 11.|]
///calculate confidence band errors for every x value
let newConfidence =
newXValues
|> Vector.map (calculateConfidenceBandError xData yData 0.95)
///lower and upper bounds of the 95% confidence band sorted according to x values
let (newLower,newUpper) =
newXValues
|> Vector.toArray
|> Array.mapi (fun i xi -> (predictionFunction xi) - newConfidence.[i],(predictionFunction xi) + newConfidence.[i])
|> Array.unzip
let linePlot =
[
Chart.Point(xData,yData) |> Chart.withTraceInfo (sprintf "%.2f+%.4fx" coeffs.[0] coeffs.[1])
Chart.Line(fitValues) |> Chart.withTraceInfo "linear regression"
Chart.Line(newXValues,newLower,LineColor= Color.fromString "#C1C1C1") |> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "lower"
Chart.Line(newXValues,newUpper,LineColor= Color.fromString "#C1C1C1") |> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "upper"
]
|> Chart.combine
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withTitle "Confidence band 95%"
let predictionXValues = vector [|1. .. 0.5 .. 15.|]
///calculate preditcion band errors for every x value
let prediction =
predictionXValues
|> Vector.map (calculatePredictionBandError xData yData 0.95)
///lower and upper bounds of the 95% prediction band sorted according to x values
let (pLower,pUpper) =
predictionXValues
|> Vector.toArray
|> Array.mapi (fun i xi -> (predictionFunction xi) - prediction.[i],(predictionFunction xi) + prediction.[i])
|> Array.unzip
let predictionPlot =
[
Chart.Point(xData,yData) |> Chart.withTraceInfo (sprintf "%.2f+%.4fx" coeffs.[0] coeffs.[1])
Chart.Line(fitValues) |> Chart.withTraceInfo "linear regression"
Chart.Line(predictionXValues,pLower,LineColor= Color.fromString "#C1C1C1") |> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "pLower"
Chart.Line(predictionXValues,pUpper,LineColor= Color.fromString "#C1C1C1") |> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "pUpper"
]
|> Chart.combine
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withTitle "Prediction band"
Leverage: Leverage describes the potential impact of data points regarding their regression line. Points that show a great dependent-variable-distance to all other points, have a
higher potential to distort the regression line coefficients (high-leverage points).
Cooks distance (D) is a measure to describe the influence of each data point to the regression line.
If D is low, the influence is low, while a high D indicates an 'influential observation' that is worth taking a closer look.
Cooks distance is a mixture of the residual sum of squares at the particular point and its leverage.
A linear threshold is arbitrarily defined by either 1, 4/n, or 3*mean(D).
Because outliers have a strong influence to D of all other points as well, the thresholds should not be applied without checking the issues by eye.
open LinearRegression.OLS.Linear
let xD = vector [|1. .. 10.|]
let yD = vector [|4.;6.;9.;7.;13.;17.;16.;23.;14.;26.|]
let cooksDistance = Univariable.cooksDistance xD yD
let nD = float xD.Length
let meanCook = Seq.mean cooksDistance
let threshold1 = 1.
let threshold2 = 4. / nD
let threshold3 = 3. * meanCook
let cook =
[
Chart.Column (Seq.zip xD cooksDistance) |> Chart.withTraceInfo "cook's distance"
Chart.Line([0.5,threshold1;10.5,threshold1])|> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "t=1"
Chart.Line([0.5,threshold2;10.5,threshold2])|> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "t=4/n"
Chart.Line([0.5,threshold3;10.5,threshold3])|> Chart.withLineStyle(Dash=StyleParam.DrawingStyle.Dash)|> Chart.withTraceInfo "t=3*mean(D)"
]
|> Chart.combine
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withYAxisStyle "cook's distance"
|> fun l -> [(Chart.Point(xD,yD) |> Chart.withTraceInfo "raw");l] |> Chart.Grid(2,1)
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withTitle "Cook's distance"
|> Chart.withSize (650.,650.)
namespace Plotly
namespace Plotly.NET
module Defaults
from Plotly.NET
<summary>
Contains mutable global default values.
Changing these values will apply the default values to all consecutive Chart generations.
</summary>
val mutable DefaultDisplayOptions: DisplayOptions
Multiple items
type DisplayOptions =
inherit DynamicObj
new: unit -> DisplayOptions
static member addAdditionalHeadTags: additionalHeadTags: XmlNode list -> (DisplayOptions -> DisplayOptions)
static member addDescription: description: XmlNode list -> (DisplayOptions -> DisplayOptions)
static member combine: first: DisplayOptions -> second: DisplayOptions -> DisplayOptions
static member getAdditionalHeadTags: displayOpts: DisplayOptions -> XmlNode list
static member getDescription: displayOpts: DisplayOptions -> XmlNode list
static member getPlotlyReference: displayOpts: DisplayOptions -> PlotlyJSReference
static member init: ?AdditionalHeadTags: XmlNode list * ?Description: XmlNode list * ?PlotlyJSReference: PlotlyJSReference -> DisplayOptions
static member initCDNOnly: unit -> DisplayOptions
...
--------------------
new: unit -> DisplayOptions
static member DisplayOptions.init: ?AdditionalHeadTags: Giraffe.ViewEngine.HtmlElements.XmlNode list * ?Description: Giraffe.ViewEngine.HtmlElements.XmlNode list * ?PlotlyJSReference: PlotlyJSReference -> DisplayOptions
type PlotlyJSReference =
| CDN of string
| Full
| Require of string
| NoReference
<summary>
Sets how plotly is referenced in the head of html docs.
</summary>
union case PlotlyJSReference.NoReference: PlotlyJSReference
Multiple items
namespace FSharp
--------------------
namespace Microsoft.FSharp
namespace FSharp.Stats
namespace FSharp.Stats.Fitting
Multiple items
module LinearRegression
from FSharp.Stats.Fitting
<summary>
Linear regression is used to estimate the relationship of one variable (y) with another (x) by expressing y in terms of a linear function of x.
</summary>
--------------------
type LinearRegression =
new: unit -> LinearRegression
static member fit: xData: vector * yData: Vector<float> * ?FittingMethod: Method * ?Constraint: Constraint<float * float> * ?Weighting: vector -> Coefficients + 1 overload
static member predict: coeff: Coefficients -> xValue: float -> float
static member predictMultivariate: coeff: Coefficients -> xVector: vector -> float
<summary>
This LinearRegression type summarized the most common fitting procedures.
</summary>
<returns>Either linear regression coefficients or a prediction function to map x values/vectors to its corresponding y value.</returns>
<example><code>
// e.g. days since experiment start
let xData = vector [|1. .. 100.|]
// e.g. plant size in cm
let yData = vector [|4.;7.;8.;9.;7.;11.; ...|]
// Estimate the intercept and slope of a line, that fits the data.
let coefficientsSimpleLinear =
LinearRegression.fit(xData,yData,FittingMethod=Fitting.Method.SimpleLinear,Constraint=Fitting.Constraint.RegressionThroughOrigin)
// Predict the size on day 10.5
LinearRegression.predict(coefficientsSimpleLinear) 10.5
</code></example>
--------------------
new: unit -> LinearRegression
module OLS
from FSharp.Stats.Fitting.LinearRegressionModule
<summary>
Ordinary Least Squares (OLS) regression aims to minimise the sum of squared y intercepts between the original and predicted points at each x value.
</summary>
module GoodnessOfFit
from FSharp.Stats.Fitting
module OLS
from FSharp.Stats.Fitting.GoodnessOfFit
module Linear
from FSharp.Stats.Fitting.GoodnessOfFit.OLS
module Univariable
from FSharp.Stats.Fitting.GoodnessOfFit.OLS.Linear
namespace FSharp.Stats.Distributions
val x: Vector<float>
Multiple items
val vector: l: seq<float> -> Vector<float>
--------------------
type vector = Vector<float>
val y: Vector<float>
val coefficients: LinearRegression.Coefficients
linear regression line fitting function
module Linear
from FSharp.Stats.Fitting.LinearRegressionModule.OLS
<summary>
Simple linear regression using straight lines: f(x) = a + bx.
</summary>
module Univariable
from FSharp.Stats.Fitting.LinearRegressionModule.OLS.Linear
<summary>
Univariable handles two dimensional x,y data.
</summary>
val fit: xData: Vector<float> -> yData: Vector<float> -> LinearRegression.Coefficients
<summary>
Calculates the intercept and slope for a straight line fitting the data. Linear regression minimizes the sum of squared residuals.
</summary>
<param name="xData">vector of x values</param>
<param name="yData">vector of y values</param>
<returns>vector of [intercept; slope]</returns>
<example><code>
// e.g. days since a certain event
let xData = vector [|1.;2.;3.;4.;5.;6.|]
// e.g. some measured feature
let yData = vector [|4.;7.;9.;10.;11.;15.|]
// Estimate the coefficients of a straight line fitting the given data
let coefficients =
Univariable.fit xData yData
</code></example>
val predictFunc: (float -> float)
val predict: coef: LinearRegression.Coefficients -> x: float -> float
<summary>
Takes intercept and slope of simple linear regression to predict the corresponding y value.
</summary>
<param name="coef">vector of [intercept;slope] (e.g. determined by Univariable.coefficient)</param>
<param name="x">x value of which the corresponding y value should be predicted</param>
<returns>predicted y value with given coefficients at X=x</returns>
<example><code>
// e.g. days since a certain event
let xData = vector [|1.;2.;3.;4.;5.;6.|]
// e.g. some measured feature
let yData = vector [|4.;7.;9.;10.;11.;15.|]
// Estimate the coefficients of a straight line fitting the given data
let coefficients =
Univariable.fit xData yData
// Predict the feature at midnight between day 1 and 2.
Univariable.predict coefficients 1.5
</code></example>
val fittedValues: seq<float>
Multiple items
module Seq
from FSharp.Stats
<summary>
Module to compute common statistical measure
</summary>
--------------------
module Seq
from Microsoft.FSharp.Collections
<summary>Contains operations for working with values of type <see cref="T:Microsoft.FSharp.Collections.seq`1" />.</summary>
--------------------
type Seq =
new: unit -> Seq
static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> seq<float>
static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> seq<float>
--------------------
new: unit -> Seq
val map: mapping: ('T -> 'U) -> source: seq<'T> -> seq<'U>
<summary>Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The given function will be applied
as elements are demanded using the <c>MoveNext</c> method on enumerators retrieved from the
object.</summary>
<remarks>The returned sequence may be passed between threads safely. However,
individual IEnumerator values generated from the returned sequence should not be accessed concurrently.</remarks>
<param name="mapping">A function to transform items from the input sequence.</param>
<param name="source">The input sequence.</param>
<returns>The result sequence.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when the input sequence is null.</exception>
<example id="item-1"><code lang="fsharp">
let inputs = ["a"; "bbb"; "cc"]
inputs |> Seq.map (fun x -> x.Length)
</code>
Evaluates to a sequence yielding the same results as <c>seq { 1; 3; 2 }</c></example>
val chart: GenericChart.GenericChart
type Chart =
static member AnnotatedHeatmap: zData: seq<#seq<'a1>> * annotationText: seq<#seq<string>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?X: seq<'a3> * ?MultiX: seq<seq<'a3>> * ?XGap: int * ?Y: seq<'a4> * ?MultiY: seq<seq<'a4>> * ?YGap: int * ?Text: 'a5 * ?MultiText: seq<'a5> * ?ColorBar: ColorBar * ?ColorScale: Colorscale * ?ShowScale: bool * ?ReverseScale: bool * ?ZSmooth: SmoothAlg * ?Transpose: bool * ?UseWebGL: bool * ?ReverseYAxis: bool * ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible and 'a5 :> IConvertible) + 1 overload
static member Area: x: seq<#IConvertible> * y: seq<#IConvertible> * ?ShowMarkers: bool * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'a2 * ?MultiText: seq<'a2> * ?TextPosition: TextPosition * ?MultiTextPosition: seq<TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: MarkerSymbol * ?MultiMarkerSymbol: seq<MarkerSymbol> * ?Marker: Marker * ?LineColor: Color * ?LineColorScale: Colorscale * ?LineWidth: float * ?LineDash: DrawingStyle * ?Line: Line * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: Orientation * ?GroupNorm: GroupNorm * ?FillColor: Color * ?FillPatternShape: PatternShape * ?FillPattern: Pattern * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload
static member Bar: values: seq<#IConvertible> * ?Keys: seq<'a1> * ?MultiKeys: seq<seq<'a1>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'a2 * ?MultiText: seq<'a2> * ?MarkerColor: Color * ?MarkerColorScale: Colorscale * ?MarkerOutline: Line * ?MarkerPatternShape: PatternShape * ?MultiMarkerPatternShape: seq<PatternShape> * ?MarkerPattern: Pattern * ?Marker: Marker * ?Base: #IConvertible * ?Width: 'a4 * ?MultiWidth: seq<'a4> * ?TextPosition: TextPosition * ?MultiTextPosition: seq<TextPosition> * ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload
static member BoxPlot: ?X: seq<'a0> * ?MultiX: seq<seq<'a0>> * ?Y: seq<'a1> * ?MultiY: seq<seq<'a1>> * ?Name: string * ?ShowLegend: bool * ?Text: 'a2 * ?MultiText: seq<'a2> * ?FillColor: Color * ?MarkerColor: Color * ?Marker: Marker * ?Opacity: float * ?WhiskerWidth: float * ?BoxPoints: BoxPoints * ?BoxMean: BoxMean * ?Jitter: float * ?PointPos: float * ?Orientation: Orientation * ?OutlineColor: Color * ?OutlineWidth: float * ?Outline: Line * ?AlignmentGroup: string * ?OffsetGroup: string * ?Notched: bool * ?NotchWidth: float * ?QuartileMethod: QuartileMethod * ?UseDefaults: bool -> GenericChart (requires 'a0 :> IConvertible and 'a1 :> IConvertible and 'a2 :> IConvertible) + 2 overloads
static member Bubble: x: seq<#IConvertible> * y: seq<#IConvertible> * sizes: seq<int> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'a2 * ?MultiText: seq<'a2> * ?TextPosition: TextPosition * ?MultiTextPosition: seq<TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: MarkerSymbol * ?MultiMarkerSymbol: seq<MarkerSymbol> * ?Marker: Marker * ?LineColor: Color * ?LineColorScale: Colorscale * ?LineWidth: float * ?LineDash: DrawingStyle * ?Line: Line * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: Orientation * ?GroupNorm: GroupNorm * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload
static member Candlestick: ``open`` : seq<#IConvertible> * high: seq<#IConvertible> * low: seq<#IConvertible> * close: seq<#IConvertible> * ?X: seq<'a4> * ?MultiX: seq<seq<'a4>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?Text: 'a5 * ?MultiText: seq<'a5> * ?Line: Line * ?IncreasingColor: Color * ?Increasing: FinanceMarker * ?DecreasingColor: Color * ?Decreasing: FinanceMarker * ?WhiskerWidth: float * ?ShowXAxisRangeSlider: bool * ?UseDefaults: bool -> GenericChart (requires 'a4 :> IConvertible and 'a5 :> IConvertible) + 2 overloads
static member Column: values: seq<#IConvertible> * ?Keys: seq<'a1> * ?MultiKeys: seq<seq<'a1>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'a2 * ?MultiText: seq<'a2> * ?MarkerColor: Color * ?MarkerColorScale: Colorscale * ?MarkerOutline: Line * ?MarkerPatternShape: PatternShape * ?MultiMarkerPatternShape: seq<PatternShape> * ?MarkerPattern: Pattern * ?Marker: Marker * ?Base: #IConvertible * ?Width: 'a4 * ?MultiWidth: seq<'a4> * ?TextPosition: TextPosition * ?MultiTextPosition: seq<TextPosition> * ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload
static member Contour: zData: seq<#seq<'a1>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?X: seq<'a2> * ?MultiX: seq<seq<'a2>> * ?Y: seq<'a3> * ?MultiY: seq<seq<'a3>> * ?Text: 'a4 * ?MultiText: seq<'a4> * ?ColorBar: ColorBar * ?ColorScale: Colorscale * ?ShowScale: bool * ?ReverseScale: bool * ?Transpose: bool * ?ContourLineColor: Color * ?ContourLineDash: DrawingStyle * ?ContourLineSmoothing: float * ?ContourLine: Line * ?ContoursColoring: ContourColoring * ?ContoursOperation: ConstraintOperation * ?ContoursType: ContourType * ?ShowContourLabels: bool * ?ContourLabelFont: Font * ?Contours: Contours * ?FillColor: Color * ?NContours: int * ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible)
static member Funnel: x: seq<#IConvertible> * y: seq<#IConvertible> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?Width: float * ?Offset: float * ?Text: 'a2 * ?MultiText: seq<'a2> * ?TextPosition: TextPosition * ?MultiTextPosition: seq<TextPosition> * ?Orientation: Orientation * ?AlignmentGroup: string * ?OffsetGroup: string * ?MarkerColor: Color * ?MarkerOutline: Line * ?Marker: Marker * ?TextInfo: TextInfo * ?ConnectorLineColor: Color * ?ConnectorLineStyle: DrawingStyle * ?ConnectorFillColor: Color * ?ConnectorLine: Line * ?Connector: FunnelConnector * ?InsideTextFont: Font * ?OutsideTextFont: Font * ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible)
static member Heatmap: zData: seq<#seq<'a1>> * ?X: seq<'a2> * ?MultiX: seq<seq<'a2>> * ?Y: seq<'a3> * ?MultiY: seq<seq<'a3>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?XGap: int * ?YGap: int * ?Text: 'a4 * ?MultiText: seq<'a4> * ?ColorBar: ColorBar * ?ColorScale: Colorscale * ?ShowScale: bool * ?ReverseScale: bool * ?ZSmooth: SmoothAlg * ?Transpose: bool * ?UseWebGL: bool * ?ReverseYAxis: bool * ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a2 :> IConvertible and 'a3 :> IConvertible and 'a4 :> IConvertible) + 1 overload
...
static member Chart.Point: xy: seq<#System.IConvertible * #System.IConvertible> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'c * ?MultiText: seq<'c> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: StyleParam.Orientation * ?GroupNorm: StyleParam.GroupNorm * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
static member Chart.Point: x: seq<#System.IConvertible> * y: seq<#System.IConvertible> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'c * ?MultiText: seq<'c> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: StyleParam.Orientation * ?GroupNorm: StyleParam.GroupNorm * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
static member Chart.withTraceInfo: ?Name: string * ?Visible: StyleParam.Visible * ?ShowLegend: bool * ?LegendRank: int * ?LegendGroup: string * ?LegendGroupTitle: Title -> (GenericChart.GenericChart -> GenericChart.GenericChart)
static member Chart.Line: xy: seq<#System.IConvertible * #System.IConvertible> * ?ShowMarkers: bool * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'c * ?MultiText: seq<'c> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?LineColor: Color * ?LineColorScale: StyleParam.Colorscale * ?LineWidth: float * ?LineDash: StyleParam.DrawingStyle * ?Line: Line * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: StyleParam.Orientation * ?GroupNorm: StyleParam.GroupNorm * ?Fill: StyleParam.Fill * ?FillColor: Color * ?FillPattern: TraceObjects.Pattern * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
static member Chart.Line: x: seq<#System.IConvertible> * y: seq<#System.IConvertible> * ?ShowMarkers: bool * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'c * ?MultiText: seq<'c> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?LineColor: Color * ?LineColorScale: StyleParam.Colorscale * ?LineWidth: float * ?LineDash: StyleParam.DrawingStyle * ?Line: Line * ?AlignmentGroup: string * ?OffsetGroup: string * ?StackGroup: string * ?Orientation: StyleParam.Orientation * ?GroupNorm: StyleParam.GroupNorm * ?Fill: StyleParam.Fill * ?FillColor: Color * ?FillPattern: TraceObjects.Pattern * ?UseWebGL: bool * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
val mapi: mapping: (int -> 'T -> 'U) -> source: seq<'T> -> seq<'U>
<summary>Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The integer index passed to the
function indicates the index (from 0) of element being transformed.</summary>
<param name="mapping">A function to transform items from the input sequence that also supplies the current index.</param>
<param name="source">The input sequence.</param>
<returns>The result sequence.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when the input sequence is null.</exception>
<example id="item-1"><code lang="fsharp">
let inputs = [ 10; 10; 10 ]
inputs |> Seq.mapi (fun i x -> i + x)
</code>
Evaluates to a sequence yielding the same results as <c>seq { 10; 11; 12 }</c></example>
val i: int
val y: float
static member Chart.combine: gCharts: seq<GenericChart.GenericChart> -> GenericChart.GenericChart
static member Chart.withTemplate: template: Template -> (GenericChart.GenericChart -> GenericChart.GenericChart)
module ChartTemplates
from Plotly.NET
val lightMirrored: Template
module GenericChart
from Plotly.NET
<summary>
Module to represent a GenericChart
</summary>
val toChartHTML: gChart: GenericChart.GenericChart -> string
val sos: GoodnessOfFit.SumOfSquares
val calculateSumOfSquares: fitFunc: (float -> float) -> xData: seq<float> -> yData: seq<float> -> GoodnessOfFit.SumOfSquares
val n: float
GoodnessOfFit.SumOfSquares.Count: float
<summary>
Count N
</summary>
val meanX: float
GoodnessOfFit.SumOfSquares.MeanX: float
val meanY: float
GoodnessOfFit.SumOfSquares.MeanY: float
val slope: float
val intercept: float
val rSq: float
val calculateDeterminationFromValue: actual: seq<float> -> expected: seq<float> -> float
<summary>
Gets the coefficient of determination, as known as the R-Squared (R²)
</summary>
val rSqAdj: float
val calculateDeterminationAdj: actual: seq<float> -> expected: seq<float> -> variables: int -> float
<summary>Gets the adjusted coefficient of determination, as known as the R-Squared (R²adj). It is adjusted by the number of used variables (not including the constant term) (https://ebrary.net/1008/economics/adjusted_coefficient_determination_adjusted)</summary>
<remarks></remarks>
<param name="actual"></param>
<param name="expected"></param>
<param name="variables"></param>
<returns></returns>
<example><code></code></example>
val r: float
val sqrt: value: 'T -> 'U (requires member Sqrt)
<summary>Square root of the given number</summary>
<param name="value">The input value.</param>
<returns>The square root of the input.</returns>
<example id="log-example"><code lang="fsharp">
sqrt 2.0 // Evaluates to 1.414213562
sqrt 100.0 // Evaluates to 10.0
</code></example>
val ssTotal: float
GoodnessOfFit.SumOfSquares.Total: float
<summary>
Total sum of squares (SST: total); Sum((y-yMean)**2.)
</summary>
val ssReg: float
GoodnessOfFit.SumOfSquares.Regression: float
<summary>
Regression sum of squares (SSR: explained); Sum((yFit-yMean)**2.)
</summary>
val ssResidual: float
GoodnessOfFit.SumOfSquares.Error: float
<summary>
Error sum of squares (SSE: unexplained); residual sum of squares; Sum((y-yFit)**2.)
</summary>
val ssxx: float
GoodnessOfFit.SumOfSquares.SSxx: float
val ssxy: float
GoodnessOfFit.SumOfSquares.SSxy: float
val stdErrSlope: float
val standardErrorSlope: sumOfSquares: GoodnessOfFit.SumOfSquares -> float
<summary>Standard error of slope (beta) </summary>
<remarks></remarks>
<param name="sumOfSquares"></param>
<returns></returns>
<example><code></code></example>
val stdErrIntercept: float
val standardErrorIntercept: sumOfSquares: GoodnessOfFit.SumOfSquares -> float
<summary>Standard error of intercept (alpha)</summary>
<remarks></remarks>
<param name="sumOfSquares"></param>
<returns></returns>
<example><code></code></example>
val stdErrEstimate: float
val standardErrorEstimate: sumOfSquares: GoodnessOfFit.SumOfSquares -> float
<summary>Standard error if the estimate <br />Square root of variance s2y,x</summary>
<remarks></remarks>
<param name="sumOfSquares"></param>
<returns></returns>
<example><code></code></example>
val criticalT: float
namespace FSharp.Stats.Testing
module TTest
from FSharp.Stats.Testing
val getCriticalTValue: df: float -> significanceLevel: float -> tailed: Testing.TTest.Tails -> float
<summary>
Calculates the Student's T critical values
</summary>
<param name="df">Confidence Level</param>
<param name="significanceLevel">Significance Level</param>
<param name="tailed">One Tail vs Two Tail</param>
union case Testing.TTest.Tails.TwoTailed: Testing.TTest.Tails
val lowerS: float
val upperS: float
val lowerI: float
val upperI: float
val testSlope: Testing.TestStatistics.TTestStatistics
val ttestSlope: slope: float -> sumOfSquares: GoodnessOfFit.SumOfSquares -> Testing.TestStatistics.TTestStatistics
val testInterc: Testing.TestStatistics.TTestStatistics
val ttestIntercept: intercept: float -> sumOfSquares: GoodnessOfFit.SumOfSquares -> Testing.TestStatistics.TTestStatistics
val outputTable: GenericChart.GenericChart
val header: string list
val rows: string list list
val print: (float -> string)
val f: float
val sprintf: format: Printf.StringFormat<'T> -> 'T
<summary>Print to a string using the given format.</summary>
<param name="format">The formatter.</param>
<returns>The formatted result.</returns>
<example>See <c>Printf.sprintf</c> (link: <see cref="M:Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThen``1" />) for examples.</example>
Testing.TestStatistics.TTestStatistics.PValue: float
static member Chart.Table: header: TraceObjects.TableHeader * cells: TraceObjects.TableCells * ?Name: string * ?ColumnOrder: seq<int> * ?ColumnWidth: float * ?MultiColumnWidth: seq<float> * ?UseDefaults: bool -> GenericChart.GenericChart
static member Chart.Table: headerValues: seq<#seq<'b>> * cellsValues: seq<#seq<'d>> * ?TransposeCells: bool * ?HeaderAlign: StyleParam.HorizontalAlign * ?HeaderMultiAlign: seq<StyleParam.HorizontalAlign> * ?HeaderFillColor: Color * ?HeaderHeight: int * ?HeaderOutlineColor: Color * ?HeaderOutlineWidth: float * ?HeaderOutlineMultiWidth: seq<float> * ?HeaderOutline: Line * ?CellsAlign: StyleParam.HorizontalAlign * ?CellsMultiAlign: seq<StyleParam.HorizontalAlign> * ?CellsFillColor: Color * ?CellsHeight: int * ?CellsOutlineColor: Color * ?CellsOutlineWidth: float * ?CellsOutlineMultiWidth: seq<float> * ?CellsOutline: Line * ?Name: string * ?ColumnOrder: seq<int> * ?ColumnWidth: float * ?MultiColumnWidth: seq<float> * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'b :> System.IConvertible and 'd :> System.IConvertible)
type Color =
override Equals: other: obj -> bool
override GetHashCode: unit -> int
static member fromARGB: a: int -> r: int -> g: int -> b: int -> Color
static member fromColorScaleValues: c: seq<#IConvertible> -> Color
static member fromColors: c: seq<Color> -> Color
static member fromHex: s: string -> Color
static member fromKeyword: c: ColorKeyword -> Color
static member fromRGB: r: int -> g: int -> b: int -> Color
static member fromString: c: string -> Color
member Value: obj
<summary>
Plotly color can be a single color, a sequence of colors, or a sequence of numeric values referencing the color of the colorscale obj
</summary>
static member Color.fromString: c: string -> Color
static member Color.fromColors: c: seq<Color> -> Color
module StyleParam
from Plotly.NET
type HorizontalAlign =
| Left
| Center
| Right
member Convert: unit -> obj
override ToString: unit -> string
static member convert: (HorizontalAlign -> obj)
static member toString: (HorizontalAlign -> string)
union case StyleParam.HorizontalAlign.Left: StyleParam.HorizontalAlign
union case StyleParam.HorizontalAlign.Center: StyleParam.HorizontalAlign
static member Chart.withTitle: title: Title -> (GenericChart.GenericChart -> GenericChart.GenericChart)
static member Chart.withTitle: title: string * ?TitleFont: Font -> (GenericChart.GenericChart -> GenericChart.GenericChart)
val xData: Vector<float>
val yData: Vector<float>
val values: seq<float * float>
val zip: source1: seq<'T1> -> source2: seq<'T2> -> seq<'T1 * 'T2>
<summary>Combines the two sequences into a sequence of pairs. The two sequences need not have equal lengths:
when one sequence is exhausted any remaining elements in the other
sequence are ignored.</summary>
<param name="source1">The first input sequence.</param>
<param name="source2">The second input sequence.</param>
<returns>The result sequence.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when either of the input sequences is null.</exception>
<example id="zip-1"><code lang="fsharp">
let numbers = [1; 2]
let names = ["one"; "two"]
Seq.zip numbers names
</code>
Evaluates to a sequence yielding the same results as <c>seq { (1, "one"); (2, "two") }</c>.
</example>
val coeffs: LinearRegression.Coefficients
linear regression line fitting function
val predictionFunction: (float -> float)
val fitValues: seq<float * float>
val xi: float
val confidence: Vector<float>
calculate confidence band errors for every x value
Multiple items
module Vector
from FSharp.Stats
--------------------
type Vector<'T> =
interface IEnumerable
interface IEnumerable<'T>
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
new: opsV: INumeric<'T> option * arrV: 'T array -> Vector<'T>
override Equals: yobj: obj -> bool
override GetHashCode: unit -> int
member GetSlice: start: int option * finish: int option -> Vector<'T>
member Permute: p: permutation -> Vector<'T>
...
--------------------
new: opsV: INumeric<'T> option * arrV: 'T array -> Vector<'T>
val map: mapping: (float -> float) -> vector: vector -> Vector<float>
<summary>Builds a new vector whose elements are the results of applying the given function to each of the elements of the vector.</summary>
<remarks></remarks>
<param name="mapping"></param>
<param name="vector"></param>
<returns></returns>
<example><code></code></example>
val calculateConfidenceBandError: xData: Vector<float> -> yData: Vector<float> -> confidenceLevel: float -> (float -> float)
<summary>returns a function, that reports the confidence y_intercept for a given x value</summary>
<remarks></remarks>
<param name="xData"></param>
<param name="yData"></param>
<param name="confidenceLevel"></param>
<returns></returns>
<example><code></code></example>
val lower: float[]
lower and upper bounds of the 95% confidence band sorted according to x values
val upper: float[]
lower and upper bounds of the 95% confidence band sorted according to x values
val toArray: vector: vector -> float[]
<summary>Creates array with values of vector</summary>
<remarks></remarks>
<param name="vector"></param>
<returns></returns>
<example><code></code></example>
Multiple items
module Array
from FSharp.Stats
<summary>
Module to compute common statistical measure on array
</summary>
--------------------
module Array
from Microsoft.FSharp.Collections
<summary>Contains operations for working with arrays.</summary>
<remarks>
See also <a href="https://docs.microsoft.com/dotnet/fsharp/language-reference/arrays">F# Language Guide - Arrays</a>.
</remarks>
--------------------
type Array =
new: unit -> Array
static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float array
static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float[]
--------------------
new: unit -> Array
val mapi: mapping: (int -> 'T -> 'U) -> array: 'T[] -> 'U[]
<summary>Builds a new array whose elements are the results of applying the given function
to each of the elements of the array. The integer index passed to the
function indicates the index of element being transformed, starting at zero.</summary>
<param name="mapping">The function to transform elements and their indices.</param>
<param name="array">The input array.</param>
<returns>The array of transformed elements.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when the input array is null.</exception>
<example id="mapi-1"><code lang="fsharp">
let inputs = [| 10; 10; 10 |]
inputs |> Array.mapi (fun i x -> i + x)
</code>
Evaluates to <c>[| 10; 11; 12 |]</c></example>
val unzip: array: ('T1 * 'T2)[] -> 'T1[] * 'T2[]
<summary>Splits an array of pairs into two arrays.</summary>
<param name="array">The input array.</param>
<returns>The two arrays.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when the input array is null.</exception>
<example id="unzip-1"><code lang="fsharp">
let inputs = [| (1, "one"); (2, "two") |]
let numbers, names = inputs |> Array.unzip
</code>
Evaluates <c>numbers</c> to <c>[|1; 2|]</c> and <c>names</c> to <c>[|"one"; "two"|]</c>.
</example>
val rangePlot: GenericChart.GenericChart
static member Chart.Range: xy: seq<#System.IConvertible * #System.IConvertible> * upper: seq<#System.IConvertible> * lower: seq<#System.IConvertible> * mode: StyleParam.Mode * ?Name: string * ?GroupName: string * ?ShowMarkers: bool * ?ShowLegend: bool * ?Text: 'e * ?MultiText: seq<'e> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?UpperMarker: TraceObjects.Marker * ?LowerMarker: TraceObjects.Marker * ?LineColor: Color * ?LineColorScale: StyleParam.Colorscale * ?LineWidth: float * ?LineDash: StyleParam.DrawingStyle * ?Line: Line * ?UpperLine: Line * ?LowerLine: Line * ?RangeColor: Color * ?RangePattern: TraceObjects.Pattern * ?UpperText: 'f * ?MultiUpperText: seq<'f> * ?LowerText: 'g * ?MultiLowerText: seq<'g> * ?TextFont: Font * ?LowerName: string * ?UpperName: string * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'e :> System.IConvertible and 'f :> System.IConvertible and 'g :> System.IConvertible)
static member Chart.Range: x: seq<#System.IConvertible> * y: seq<#System.IConvertible> * upper: seq<#System.IConvertible> * lower: seq<#System.IConvertible> * mode: StyleParam.Mode * ?Name: string * ?GroupName: string * ?ShowMarkers: bool * ?ShowLegend: bool * ?Text: 'a4 * ?MultiText: seq<'a4> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerSymbol: StyleParam.MarkerSymbol * ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol> * ?Marker: TraceObjects.Marker * ?UpperMarker: TraceObjects.Marker * ?LowerMarker: TraceObjects.Marker * ?LineColor: Color * ?LineColorScale: StyleParam.Colorscale * ?LineWidth: float * ?LineDash: StyleParam.DrawingStyle * ?Line: Line * ?UpperLine: Line * ?LowerLine: Line * ?RangeColor: Color * ?RangePattern: TraceObjects.Pattern * ?UpperText: 'a5 * ?MultiUpperText: seq<'a5> * ?LowerText: 'a6 * ?MultiLowerText: seq<'a6> * ?TextFont: Font * ?LowerName: string * ?UpperName: string * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'a4 :> System.IConvertible and 'a5 :> System.IConvertible and 'a6 :> System.IConvertible)
type Mode =
| None
| Lines
| Lines_Markers
| Lines_Text
| Lines_Markers_Text
| Markers
| Markers_Text
| Text
member Convert: unit -> obj
override ToString: unit -> string
static member convert: (Mode -> obj)
static member toString: (Mode -> string)
union case StyleParam.Mode.Lines: StyleParam.Mode
static member Color.fromKeyword: c: ColorKeyword -> Color
type ColorKeyword =
| AliceBlue
| AntiqueWhite
| Aqua
| Aquamarine
| Azure
| Beige
| Bisque
| Black
| BlanchedAlmond
| Blue
...
static member ofKeyWord: (string -> ColorKeyword)
static member toRGB: (ColorKeyword -> int * int * int)
<summary>
https://www.w3.org/TR/2011/REC-SVG11-20110816/types.html#ColorKeywords
W3C Recognized color keyword names
</summary>
union case ColorKeyword.Blue: ColorKeyword
union case ColorKeyword.LightBlue: ColorKeyword
val newXValues: Vector<float>
val newConfidence: Vector<float>
calculate confidence band errors for every x value
val newLower: float[]
lower and upper bounds of the 95% confidence band sorted according to x values
val newUpper: float[]
lower and upper bounds of the 95% confidence band sorted according to x values
val linePlot: GenericChart.GenericChart
static member Chart.withLineStyle: ?BackOff: StyleParam.BackOff * ?AutoColorScale: bool * ?CAuto: bool * ?CMax: float * ?CMid: float * ?CMin: float * ?Color: Color * ?ColorAxis: StyleParam.SubPlotId * ?Colorscale: StyleParam.Colorscale * ?ReverseScale: bool * ?ShowScale: bool * ?ColorBar: ColorBar * ?Dash: StyleParam.DrawingStyle * ?Shape: StyleParam.Shape * ?Simplify: bool * ?Smoothing: float * ?Width: float * ?MultiWidth: seq<float> * ?OutlierColor: Color * ?OutlierWidth: float -> (GenericChart.GenericChart -> GenericChart.GenericChart)
type DrawingStyle =
| Solid
| Dash
| Dot
| DashDot
| LongDash
| LongDashDot
| User of seq<int>
member Convert: unit -> obj
override ToString: unit -> string
static member convert: (DrawingStyle -> obj)
static member toString: (DrawingStyle -> string)
<summary>
Dash: Sets the drawing style of the lines segments in this trace.
Sets the style of the lines. Set to a dash string type or a dash length in px.
</summary>
union case StyleParam.DrawingStyle.Dash: StyleParam.DrawingStyle
val predictionXValues: Vector<float>
val prediction: Vector<float>
calculate preditcion band errors for every x value
val calculatePredictionBandError: xData: Vector<float> -> yData: Vector<float> -> confidenceLevel: float -> (float -> float)
val pLower: float[]
lower and upper bounds of the 95% prediction band sorted according to x values
val pUpper: float[]
lower and upper bounds of the 95% prediction band sorted according to x values
val predictionPlot: GenericChart.GenericChart
val xD: Vector<float>
val yD: Vector<float>
val cooksDistance: vector
val cooksDistance: xData: Vector<float> -> yData: Vector<float> -> vector
<summary>
Fits a model f(x) = b + m * x) to the data and returns the cooks distance for every data pair present in the
input collections as an estimator for the influence of each data point in coefficient estimation.
</summary>
<param name="xData">vector of x values</param>
<param name="yData">vector of y values</param>
<returns>Collection of cooks distances for every input coordinate.</returns>
<example><code>
// e.g. days since a certain event
let xData = vector [|1.;2.;3.;4.;5.;6.|]
// e.g. some measured feature
let yData = vector [|4.;7.;9.;10.;11.;15.|]
let distances =
Univariable.cooksDistance xData yData
</code></example>
val nD: float
Multiple items
val float: value: 'T -> float (requires member op_Explicit)
<summary>Converts the argument to 64-bit float. This is a direct conversion for all
primitive numeric types. For strings, the input is converted using <c>Double.Parse()</c>
with InvariantCulture settings. Otherwise the operation requires an appropriate
static conversion method on the input type.</summary>
<param name="value">The input value.</param>
<returns>The converted float</returns>
<example id="float-example"><code lang="fsharp"></code></example>
--------------------
[<Struct>]
type float = System.Double
<summary>An abbreviation for the CLI type <see cref="T:System.Double" />.</summary>
<category>Basic Types</category>
--------------------
type float<'Measure> =
float
<summary>The type of double-precision floating point numbers, annotated with a unit of measure.
The unit of measure is erased in compiled code and when values of this type
are analyzed using reflection. The type is representationally equivalent to
<see cref="T:System.Double" />.</summary>
<category index="6">Basic Types with Units of Measure</category>
property Vector.Length: int with get
<summary>
Length of vector
</summary>
val meanCook: float
val mean: items: seq<'T> -> 'U (requires member (+) and member get_Zero and member DivideByInt and member (/))
<summary>
Computes the population mean (Normalized by N)
</summary>
<param name="items">The input sequence.</param>
<remarks>Returns default value if data is empty or if any entry is NaN.</remarks>
<returns>population mean (Normalized by N)</returns>
val threshold1: float
val threshold2: float
val threshold3: float
val cook: GenericChart.GenericChart
static member Chart.Column: keysValues: seq<#System.IConvertible * #System.IConvertible> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'c * ?MultiText: seq<'c> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerPatternShape: StyleParam.PatternShape * ?MultiMarkerPatternShape: seq<StyleParam.PatternShape> * ?MarkerPattern: TraceObjects.Pattern * ?Marker: TraceObjects.Marker * ?Base: #System.IConvertible * ?Width: 'e * ?MultiWidth: seq<'e> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible and 'e :> System.IConvertible)
static member Chart.Column: values: seq<#System.IConvertible> * ?Keys: seq<'a1> * ?MultiKeys: seq<seq<'a1>> * ?Name: string * ?ShowLegend: bool * ?Opacity: float * ?MultiOpacity: seq<float> * ?Text: 'a2 * ?MultiText: seq<'a2> * ?MarkerColor: Color * ?MarkerColorScale: StyleParam.Colorscale * ?MarkerOutline: Line * ?MarkerPatternShape: StyleParam.PatternShape * ?MultiMarkerPatternShape: seq<StyleParam.PatternShape> * ?MarkerPattern: TraceObjects.Pattern * ?Marker: TraceObjects.Marker * ?Base: #System.IConvertible * ?Width: 'a4 * ?MultiWidth: seq<'a4> * ?TextPosition: StyleParam.TextPosition * ?MultiTextPosition: seq<StyleParam.TextPosition> * ?UseDefaults: bool -> GenericChart.GenericChart (requires 'a1 :> System.IConvertible and 'a2 :> System.IConvertible and 'a4 :> System.IConvertible)
static member Chart.withYAxisStyle: ?TitleText: string * ?TitleFont: Font * ?TitleStandoff: int * ?Title: Title * ?Color: Color * ?AxisType: StyleParam.AxisType * ?MinMax: (#System.IConvertible * #System.IConvertible) * ?Mirror: StyleParam.Mirror * ?ShowSpikes: bool * ?SpikeColor: Color * ?SpikeThickness: int * ?ShowLine: bool * ?LineColor: Color * ?ShowGrid: bool * ?GridColor: Color * ?GridDash: StyleParam.DrawingStyle * ?ZeroLine: bool * ?ZeroLineColor: Color * ?Anchor: StyleParam.LinearAxisId * ?Side: StyleParam.Side * ?Overlaying: StyleParam.LinearAxisId * ?AutoShift: bool * ?Shift: int * ?Domain: (float * float) * ?Position: float * ?CategoryOrder: StyleParam.CategoryOrder * ?CategoryArray: seq<#System.IConvertible> * ?RangeSlider: LayoutObjects.RangeSlider * ?RangeSelector: LayoutObjects.RangeSelector * ?BackgroundColor: Color * ?ShowBackground: bool * ?Id: StyleParam.SubPlotId -> (GenericChart.GenericChart -> GenericChart.GenericChart)
val l: GenericChart.GenericChart
static member Chart.Grid: ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][] * ?XAxes: StyleParam.LinearAxisId[] * ?YAxes: StyleParam.LinearAxisId[] * ?RowOrder: StyleParam.LayoutGridRowOrder * ?Pattern: StyleParam.LayoutGridPattern * ?XGap: float * ?YGap: float * ?Domain: LayoutObjects.Domain * ?XSide: StyleParam.LayoutGridXSide * ?YSide: StyleParam.LayoutGridYSide -> (#seq<'a1> -> GenericChart.GenericChart) (requires 'a1 :> seq<GenericChart.GenericChart>)
static member Chart.Grid: nRows: int * nCols: int * ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][] * ?XAxes: StyleParam.LinearAxisId[] * ?YAxes: StyleParam.LinearAxisId[] * ?RowOrder: StyleParam.LayoutGridRowOrder * ?Pattern: StyleParam.LayoutGridPattern * ?XGap: float * ?YGap: float * ?Domain: LayoutObjects.Domain * ?XSide: StyleParam.LayoutGridXSide * ?YSide: StyleParam.LayoutGridYSide -> (#seq<GenericChart.GenericChart> -> GenericChart.GenericChart)
static member Chart.withSize: width: float * height: float -> (GenericChart.GenericChart -> GenericChart.GenericChart)
static member Chart.withSize: ?Width: int * ?Height: int -> (GenericChart.GenericChart -> GenericChart.GenericChart)