本文整理汇总了C#中MathNet.Numerics.Distributions.StudentT.CumulativeDistribution方法的典型用法代码示例。如果您正苦于以下问题:C# StudentT.CumulativeDistribution方法的具体用法?C# StudentT.CumulativeDistribution怎么用?C# StudentT.CumulativeDistribution使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MathNet.Numerics.Distributions.StudentT
的用法示例。
在下文中一共展示了StudentT.CumulativeDistribution方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
/// <summary>
/// Run example
/// </summary>
/// <a href="http://en.wikipedia.org/wiki/StudentT_distribution">StudentT distribution</a>
public void Run()
{
// 1. Initialize the new instance of the StudentT distribution class with parameters Location = 0, Scale = 1, DegreesOfFreedom = 1
var studentT = new StudentT();
Console.WriteLine(@"1. Initialize the new instance of the StudentT distribution class with parameters Location = {0}, Scale = {1}, DegreesOfFreedom = {2}", studentT.Location, studentT.Scale, studentT.DegreesOfFreedom);
Console.WriteLine();
// 2. Distributuion properties:
Console.WriteLine(@"2. {0} distributuion properties:", studentT);
// Cumulative distribution function
Console.WriteLine(@"{0} - Сumulative distribution at location '0.3'", studentT.CumulativeDistribution(0.3).ToString(" #0.00000;-#0.00000"));
// Probability density
Console.WriteLine(@"{0} - Probability density at location '0.3'", studentT.Density(0.3).ToString(" #0.00000;-#0.00000"));
// Log probability density
Console.WriteLine(@"{0} - Log probability density at location '0.3'", studentT.DensityLn(0.3).ToString(" #0.00000;-#0.00000"));
// Entropy
Console.WriteLine(@"{0} - Entropy", studentT.Entropy.ToString(" #0.00000;-#0.00000"));
// Largest element in the domain
Console.WriteLine(@"{0} - Largest element in the domain", studentT.Maximum.ToString(" #0.00000;-#0.00000"));
// Smallest element in the domain
Console.WriteLine(@"{0} - Smallest element in the domain", studentT.Minimum.ToString(" #0.00000;-#0.00000"));
// Mean
Console.WriteLine(@"{0} - Mean", studentT.Mean.ToString(" #0.00000;-#0.00000"));
// Median
Console.WriteLine(@"{0} - Median", studentT.Median.ToString(" #0.00000;-#0.00000"));
// Mode
Console.WriteLine(@"{0} - Mode", studentT.Mode.ToString(" #0.00000;-#0.00000"));
// Variance
Console.WriteLine(@"{0} - Variance", studentT.Variance.ToString(" #0.00000;-#0.00000"));
// Standard deviation
Console.WriteLine(@"{0} - Standard deviation", studentT.StdDev.ToString(" #0.00000;-#0.00000"));
// 3. Generate 10 samples of the StudentT distribution
Console.WriteLine(@"3. Generate 10 samples of the StudentT distribution");
for (var i = 0; i < 10; i++)
{
Console.Write(studentT.Sample().ToString("N05") + @" ");
}
Console.WriteLine();
Console.WriteLine();
// 4. Generate 100000 samples of the StudentT(0, 1, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the StudentT(0, 1, 1) distribution and display histogram");
var data = new double[100000];
for (var i = 0; i < data.Length; i++)
{
data[i] = studentT.Sample();
}
ConsoleHelper.DisplayHistogram(data);
// 5. Generate 100000 samples of the StudentT(0, 1, 5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the StudentT(0, 1, 5) distribution and display histogram");
studentT.DegreesOfFreedom = 5;
for (var i = 0; i < data.Length; i++)
{
data[i] = studentT.Sample();
}
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the StudentT(0, 1, 10) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the StudentT(0, 1, 10) distribution and display histogram");
studentT.DegreesOfFreedom = 10;
for (var i = 0; i < data.Length; i++)
{
data[i] = studentT.Sample();
}
ConsoleHelper.DisplayHistogram(data);
}
示例2: PT
/// <summary>
/// Distribution function for Student's T distribution for a specified z-score
/// and a number of degrees of freedom.
/// </summary>
public static double PT(double z, double df)
{
var tdist = new StudentT(0, 1, df);
return tdist.CumulativeDistribution(z);
}
示例3: ValidateCumulativeDistribution
public void ValidateCumulativeDistribution(double location, double scale, double dof, double x, double c)
{
var n = new StudentT(location, scale, dof);
AssertHelpers.AlmostEqualRelative(c, n.CumulativeDistribution(x), 13);
}
示例4: ValidateCumulativeDistribution
public void ValidateCumulativeDistribution(double location, double scale, double dof, double x, double p)
{
var dist = new StudentT(location, scale, dof);
Assert.That(dist.CumulativeDistribution(x), Is.EqualTo(p).Within(1e-13));
Assert.That(StudentT.CDF(location, scale, dof, x), Is.EqualTo(p).Within(1e-13));
}
示例5: Fit
public IList<LinearFitResult> Fit(double[] observations)
{
if (observations.Length != DesignMatrix.RowCount)
{
throw new ArgumentException("Wrong number of rows"); // Not L10N
}
var coefficients = QrFactorization.Solve(observations);
var fittedValues = new double[observations.Length];
var residuals = new double[observations.Length];
for (int iRow = 0; iRow < observations.Length; iRow++)
{
var designRow = Enumerable.Range(0, DesignMatrix.ColumnCount).Select(index => DesignMatrix[iRow, index]).ToArray();
fittedValues[iRow] = DotProduct(designRow, coefficients);
residuals[iRow] = observations[iRow] - fittedValues[iRow];
}
double rss = DotProduct(residuals, residuals);
int degreesOfFreedom = observations.Length - QrFactorization.NumberIndependentColumns;
double resVar = rss / degreesOfFreedom;
double sigma = Math.Sqrt(resVar);
var covarianceUnscaled = MatrixCrossproductInverse;
var scaledCovariance = covarianceUnscaled.Multiply(sigma * sigma);
var indepColIndexes = QrFactorization.IndependentColumnIndexes.ToArray();
var result = new List<LinearFitResult>();
foreach (var contrastRow in ContrastValues.EnumerateRows())
{
double standardError = 0;
for (int iRow = 0; iRow < indepColIndexes.Length; iRow++)
{
for (int iCol = 0; iCol < indepColIndexes.Length; iCol++)
{
standardError += contrastRow[indepColIndexes[iRow]] * scaledCovariance[iRow, iCol] * contrastRow[indepColIndexes[iCol]];
}
}
standardError = Math.Sqrt(standardError);
double foldChange = DotProduct(coefficients, contrastRow);
double tValue = foldChange / standardError;
double pValue;
if (0 != degreesOfFreedom)
{
var studentT = new StudentT(0, 1.0, degreesOfFreedom);
pValue = (1 - studentT.CumulativeDistribution(Math.Abs(tValue))) * 2;
}
else
{
pValue = 1;
}
result.Add(new LinearFitResult(foldChange)
.SetDegreesOfFreedom(degreesOfFreedom)
.SetTValue(tValue)
.SetStandardError(standardError)
.SetPValue(pValue));
}
return result;
}
示例6: ComputeCorrelation
public static CorrelData ComputeCorrelation(IEnumerable<double> d1, IEnumerable<double> d2)
{
CorrelData oRet = null;
if ((d1 == null) || (d2 == null))
{
return null;
}
double[] dd1 = d1.ToArray();
double[] dd2 = d2.ToArray();
int n = (dd1.Length < dd2.Length) ? dd1.Length : dd2.Length;
if (n < 3)
{
return null;
}
oRet = new CorrelData();
oRet.Count = n;
double corr = myconvert10000(Correlation.Pearson(dd1.Take(n), dd2.Take(n)));
if (corr < -1.0)
{
corr = -1.0;
}
if (corr > 1.0)
{
corr = 1.0;
}
oRet.Value = corr;
double xn = (double)n;
double rr = (corr < 0.0) ? -corr : corr;
double crit = rr * Math.Sqrt(xn - 2.0) / Math.Sqrt(1.0 - rr * rr);
StudentT st = new StudentT(0.0, 1.0, xn - 2);
double pb = st.CumulativeDistribution(crit);
oRet.Probability = myconvert10000(1.0 - pb);
double s1 = 0.5 * Math.Log((1.0 + corr) / (1.0 - corr));
double s2 = 1.96 / Math.Sqrt(xn - 3.0);
double s3 = corr / Math.Sqrt(xn - 1.0);
double z1 = s1 - s2 - s3;
double z2 = s1 + s2 - s3;
oRet.Minimum = myconvert10000(Math.Tanh(z1));
oRet.Maximum = myconvert10000(Math.Tanh(z2));
return oRet;
}
示例7: TDIST
public static double TDIST(double x, int degrees_freedom, int tails)
{
var dist = new StudentT(0.0, 1.0, degrees_freedom);
switch (tails)
{
case 1:
return 1d - dist.CumulativeDistribution(x);
case 2:
return 1d - dist.CumulativeDistribution(x) + dist.CumulativeDistribution(-x);
default:
throw new ArgumentOutOfRangeException("tails");
}
}