Class Statistics
- Namespace
- Balsam
- Assembly
- Balsam.Backtester.dll
A static utility class exposing various statistical functions.
public static class Statistics
- Inheritance
-
Statistics
- Inherited Members
Methods
CoefficientOfVariation(params double[])
Returns the coefficient of variation (ratio of standard deviation to the mean).
public static double CoefficientOfVariation(params double[] values)
Parameters
values
double[]
Returns
Correlation(IEnumerable<double>, IEnumerable<double>)
Returns the Pearson correlation coefficient.
public static CorrelationCoefficient Correlation(IEnumerable<double> left, IEnumerable<double> right)
Parameters
left
IEnumerable<double>right
IEnumerable<double>
Returns
Covariance(IEnumerable<double>, IEnumerable<double>)
Returns the covariance.
public static double Covariance(IEnumerable<double> left, IEnumerable<double> right)
Parameters
left
IEnumerable<double>right
IEnumerable<double>
Returns
Cumulative(double)
Returns the probability of the specified value assuming N(0,1) distribution. See R's pnorm function.
public static double Cumulative(double x)
Parameters
x
double
Returns
Cumulative(double, double, double, bool, bool)
Returns the probability for the specified normal distribution. See R's pnorm function.
public static double Cumulative(double x, double mu, double sigma, bool lower_tail, bool log_p)
Parameters
Returns
Density(double)
Returns the density of the specified value assuming a N(0,1) distribution. See R's dnorm function.
public static double Density(double x)
Parameters
x
double
Returns
Density(double, double, double, bool)
Returns the density of a normal distribution using the specified parameters. See R's dnorm function.
public static double Density(double x, double mu, double sigma, bool give_log)
Parameters
Returns
DownsideDeviation(IEnumerable<double>, double)
Returns the downside deviation (semi-deviation).
public static double DownsideDeviation(IEnumerable<double> values, double minimumAcceptableReturn)
Parameters
values
IEnumerable<double>minimumAcceptableReturn
double
Returns
GetCombinations<T>(IEnumerable<T>, int)
Returns an enumerable of combinations without repetition.
public static IEnumerable<IEnumerable<T>> GetCombinations<T>(IEnumerable<T> items, int count)
Parameters
items
IEnumerable<T>count
int
Returns
Type Parameters
T
Max(params double[])
Returns the maximum from a list of values.
public static double Max(params double[] values)
Parameters
values
double[]
Returns
Max(params int[])
Returns the maximum from a list of values.
public static int Max(params int[] values)
Parameters
values
int[]
Returns
Mean(params double[])
Returns the mean.
public static double Mean(params double[] values)
Parameters
values
double[]
Returns
Median(IEnumerable<double>)
Returns the median.
public static double Median(this IEnumerable<double> values)
Parameters
values
IEnumerable<double>
Returns
Median(IEnumerable<int>)
Returns the median.
public static int Median(this IEnumerable<int> values)
Parameters
values
IEnumerable<int>
Returns
Median(IEnumerable<long>)
Returns the median.
public static long Median(this IEnumerable<long> values)
Parameters
values
IEnumerable<long>
Returns
Min(params double[])
Returns the minimum from a list of values.
public static double Min(params double[] values)
Parameters
values
double[]
Returns
Min(params int[])
Returns the minimum from a list of values.
public static int Min(params int[] values)
Parameters
values
int[]
Returns
PercentRank(IEnumerable<double>, double)
Returns the percent rank (equivalent to Excel's PERCENTRANK.INC function). If value is not found within the range it will return NaN.
public static double PercentRank(this IEnumerable<double> values, double value)
Parameters
values
IEnumerable<double>value
double
Returns
Percentile(IEnumerable<double>, double)
Returns the specified percentile, interpolating between values if the percentile is not a multiple of 1/(n-1).
public static double Percentile(this IEnumerable<double> values, double percentile)
Parameters
values
IEnumerable<double>percentile
double
Returns
Percentile(IEnumerable<int>, double)
Returns the specified percentile, interpolating between values if the percentile is not a multiple of 1/(n-1).
public static double Percentile(IEnumerable<int> values, double percentile)
Parameters
values
IEnumerable<int>percentile
double
Returns
Percentile(IEnumerable<long>, double)
Returns the specified percentile, interpolating between values if the percentile is not a multiple of 1/(n-1).
public static double Percentile(IEnumerable<long> values, double percentile)
Parameters
values
IEnumerable<long>percentile
double
Returns
Quantile(double)
Returns the number of standard deviations for the specified quantile assuming N(0,1) distribution. See R's qnorm function. Also known as normal inverse.
public static double Quantile(double p)
Parameters
p
double
Returns
Quantile(double, double, double, bool, bool)
Returns the number of standard deviations for the specified normal distribution. See R's qnorm function.
public static double Quantile(double p, double mu, double sigma, bool lower_tail, bool log_p)
Parameters
Returns
RandomNormal()
Returns a random N(0,1) variable.
public static double RandomNormal()
Returns
RandomNormal(double, double)
Retuns a random variable using the specified parameters.
public static double RandomNormal(double mu, double sigma)
Parameters
Returns
RandomNormal(double, double, Random)
Returns a random variable using the specified parameters.
public static double RandomNormal(double mu, double sigma, Random random)
Parameters
Returns
RandomNormal(Random)
Returns random N(0,1) variable using specified random number generator.
public static double RandomNormal(Random random)
Parameters
random
Random
Returns
Range(IEnumerable<double>)
Returns the difference between the maximum and minimum found in the specified values.
public static double Range(this IEnumerable<double> values)
Parameters
values
IEnumerable<double>
Returns
Regress(double[], double[])
Calculates simple linear regression of the specified arrays.
public static RegressionResult Regress(double[] dependent, double[] independent)
Parameters
Returns
Sample<T>(IEnumerable<T>, int, bool)
Samples from the specified enumerable optionally replacing values.
public static IEnumerable<T> Sample<T>(this IEnumerable<T> values, int size, bool replace = false)
Parameters
values
IEnumerable<T>An enumerable of values from which to sample.
size
intThe number of samples to return.
replace
bool
Returns
- IEnumerable<T>
Type Parameters
T
Sample<T>(IEnumerable<T>, int, int)
Samples from the specified enumerable with replacement, using the specified sample grouping value to preserve possible serial correlation.
public static IEnumerable<T> Sample<T>(IEnumerable<T> values, int size, int sampleGrouping)
Parameters
values
IEnumerable<T>size
intsampleGrouping
int
Returns
- IEnumerable<T>
Type Parameters
T
Sequence(double, double, double, int)
Returns a sequence of doubles using the specified start, stop, and step parameters. Rounding is controlled by the optimal precision parameter.
public static IEnumerable<double> Sequence(double start, double stop, double step, int precision = -1)
Parameters
Returns
Sequence(int, int, int)
Returns a sequence of integers using the specified start, stop and step values.
public static IEnumerable<int> Sequence(int start, int stop, int step)
Parameters
Returns
Skew(IEnumerable<double>)
Returns the sample skew.
public static double Skew(IEnumerable<double> values)
Parameters
values
IEnumerable<double>
Returns
StandardDeviation(IEnumerable<double>)
Returns the sample standard deviation.
public static double StandardDeviation(this IEnumerable<double> values)
Parameters
values
IEnumerable<double>
Returns
TTest(IEnumerable<double>, IEnumerable<double>)
Returns two-sample t-test.
public static double TTest(IEnumerable<double> variableOfInterest, IEnumerable<double> baseCase)
Parameters
variableOfInterest
IEnumerable<double>baseCase
IEnumerable<double>
Returns
Variance(IEnumerable<double>)
Returns the sample variance.
public static double Variance(IEnumerable<double> values)
Parameters
values
IEnumerable<double>
Returns
Winsorize(double, double, double)
Returns the value constrained within the specified min and max values.
public static double Winsorize(double value, double min, double max)
Parameters
Returns
ZScore(IEnumerable<double>)
Returns the z-score of the last value in the specified enumerable.
public static double ZScore(this IEnumerable<double> values)
Parameters
values
IEnumerable<double>