How to perform statistical analysis in WinForms Chart?
Statistical formulas are essential tools that enable end-users to analyze their data, facilitating the creation of more meaningful insights. Within Syncfusion® WinForms Charts.
We can perform the following statistical analysis in chart,
- Anova Test - The ANOVA (Analysis of Variance) test is used to evaluate the differences in means between two or more groups of data.
- T-test - Conduct a T-test using Student's T distribution, assuming equal variances.
- Z-test - Utilize this formula to perform a Z-test using the normal distribution.
- F-test - The F-test is a statistical test that follows an F-distribution under the null hypothesis.
While performing statistical testing first calculate the Sum of Squares for total, between and within variations. After that calculate degrees of freedom(df) for these variations and then calculate Mean Squares of these variances. Finally calculate F Ratio.
C#
int numPoints = 200;
int hintervals = 20;
double meanOfFirstSeries = 60;
double varianceOfFirstSeries = 8;
double meanOfSecondSeries = 75;
double varianceOfSecondSeries = 8;
//Configure the first series
ChartSeries series1 = new ChartSeries();
series1.Name = "Series 1";
series1.Type = ChartSeriesType.Histogram;
series1.Text = series1.Name;
double sqrtVarianceOfFirstSeries = Math.Sqrt(varianceOfFirstSeries);
for (int j = 0; j < numPoints; j++)
{
double p = 1.0 / (numPoints * numPoints) + ((double)j) / numPoints;
double x = meanOfFirstSeries + sqrtVarianceOfFirstSeries * UtilityFunctions.InverseNormalDistribution(p);
series1.Points.Add(x, 0);
}
series1.Style.Interior = new Syncfusion.Drawing.BrushInfo(Color.FromArgb(128, Color.Blue));
series1.ConfigItems.HistogramItem.ShowNormalDistribution = true;
series1.ConfigItems.HistogramItem.NumberOfIntervals = hintervals;
this.chartControl1.Series.Add(series1);
//Configure the second series
ChartSeries series2 = new ChartSeries();
series2.Name = "Series 2";
series2.Type = ChartSeriesType.Histogram;
series2.Text = series2.Name;
double sqrtVarianceOfSecondSeries = Math.Sqrt(varianceOfSecondSeries);
for (int j = 0; j < numPoints; j++)
{
double p = 1.0 / (numPoints * numPoints) + ((double)j) / numPoints;
double x = meanOfSecondSeries + sqrtVarianceOfSecondSeries * UtilityFunctions.InverseNormalDistribution(p);
series2.Points.Add(x, 0);
}
series2.Style.Interior = new Syncfusion.Drawing.BrushInfo(Color.FromArgb(128, Color.Red));
series2.ConfigItems.HistogramItem.ShowNormalDistribution = true;
series2.ConfigItems.HistogramItem.NumberOfIntervals = hintervals;
this.chartControl1.Series.Add(series2);
Dim numPoints As Integer = 200
Dim hintervals As Integer = 20
Dim meanOfFirstSeries As Double = 60
Dim varianceOfFirstSeries As Double = 8
Dim meanOfSecondSeries As Double = 75
Dim varianceOfSecondSeries As Double = 8
'Configure the first series
Dim series1 As New ChartSeries()
series1.Name = "Series 1"
series1.Type = ChartSeriesType.Histogram
series1.Text = series1.Name
Dim sqrtVarianceOfFirstSeries As Double = Math.Sqrt(varianceOfFirstSeries)
For j As Integer = 0 To numPoints - 1
Dim p As Double = 1.0 / (numPoints * numPoints) + (CDbl(j) / numPoints)
Dim x As Double = meanOfFirstSeries + sqrtVarianceOfFirstSeries * UtilityFunctions.InverseNormalDistribution(p)
series1.Points.Add(x, 0)
Next
series1.Style.Interior = New Syncfusion.Drawing.BrushInfo(Color.FromArgb(128, Color.Blue))
series1.ConfigItems.HistogramItem.ShowNormalDistribution = True
series1.ConfigItems.HistogramItem.NumberOfIntervals = hintervals
chart.Series.Add(series1)
'Configure the second series
Dim series2 As New ChartSeries()
series2.Name = "Series 2"
series2.Type = ChartSeriesType.Histogram
series2.Text = series2.Name
Dim sqrtVarianceOfSecondSeries As Double = Math.Sqrt(varianceOfSecondSeries)
For j As Integer = 0 To numPoints - 1
Dim p As Double = 1.0 / (numPoints * numPoints) + (CDbl(j) / numPoints)
Dim x As Double = meanOfSecondSeries + sqrtVarianceOfSecondSeries * UtilityFunctions.InverseNormalDistribution(p)
series2.Points.Add(x, 0)
Next
series2.Style.Interior = New Syncfusion.Drawing.BrushInfo(Color.FromArgb(128, Color.Red))
series2.ConfigItems.HistogramItem.ShowNormalDistribution = True
series2.ConfigItems.HistogramItem.NumberOfIntervals = hintervals
chart.Series.Add(series2)
This process is detailed in the Chart User Guide under the topic: Statistical Formulas.
Conclusion
I hope you enjoyed learning about how to perform statistical analysis in WinForms Chart.
You can refer to our WinForms Chart feature tour page to know about its other groundbreaking feature representations and documentation, and how to quickly get started with configuration specifications. You can also explore our WinForms Chart examples to understand how to create and manipulate data.
For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion®, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!