このトピックでは Infragistics Math Calculators ライブラリの一部である VarianceCalculator を紹介し、コード例と共に数の集合に対するバリアンスの計算方法を説明します。
バリアンスは平均の周囲のデータセットの分散を測定します。
バリアンスは変数と平均の間の平方差の合計 ( Infragistics Mean Calculator トピックを参照) を集合の総数で割って得られます。また、バリアンスは標準偏差の二乗と等価です ( Infragistics Standard Deviation Calculator トピックを参照) 。
図 1 - バリアンス計算のための式
このセクションでは VarianceCalculator クラスのプロパティのリストを提供します。
VarianceCalculator を使用するためには、次のアセンブリを WPF プロジェクトに追加する必要があります。
VarianceCalculator はデータ バインディングのための ItemsSource プロパティとデータ マッピングのための ValueMemberPath プロパティを使用します。次の要件に合致するオブジェクトはすべてこのプロパティにバインドできます。
データ モデルは IEnumerable インターフェイス (たとえばリスト、コレクション、キュー、スタック) を実装しなければなりません。
データ モデルにはバリアンスを計算するために少なくとも 1 つの数値データ列をもつ項目がなければなりません。
上記の条件を満たすオブジェクトの例が次のコード例に示されています。
Visual Basic の場合:
Imports System.Collections.Generic
'...
Public Class DataPointList
Inherits List(Of DataPoint)
Public Sub New(dataValues As IEnumerable(Of Double))
For Each value As Double In dataValues
Me.Add(New DataPoint() With { Key .Value = value })
Next
End Sub
End Class
Public Class DataPoint
Public Property Value() As Double
Get
Return _value
End Get
Set
_value = Value
End Set
End Property
Private _value As Double
End Class
C# の場合:
using System.Collections.Generic;
//...
public class DataPointList : List<DataPoint>
{
public DataPointList(IEnumerable<double> dataValues)
{
foreach (double value in dataValues)
{
this.Add(new DataPoint { Value = value});
}
}
}
public class DataPoint
{
public double Value { get; set; }
}
この例は VarianceCalculator を用いて数値の集合のバリアンスを計算する方法を説明しています。VarianceCalculator は視覚的な要素で、データ ソースまたは変数を定義するのと同じようにアプリケーション、ページ、コントロール、またはコード ビハインドに関してリソース セクションに定義する必要があります。MedianCalculator を xamDataChart コントロールに統合する方法についての例は 値オーバーレイ トピックを参照してください。
Visual Basic の場合:
Imports Infragistics.Math.Calculators
'...
Dim data As New DataPointList(New List(Of Double)() From { 5.0, 1.0, 2.0, 3.0, 4.0 })
Dim calculator As New VarianceCalculator()
calculator.ValueMemberPath = "Value"
calculator.ItemsSource = data
Dim variance As Double = calculator.Value
C# の場合:
using Infragistics.Math.Calculators;
//...
DataPointList data = new DataPointList(new List<double> { 5.0, 1.0, 2.0, 3.0, 4.0 });
VarianceCalculator calculator = new VarianceCalculator();
calculator.ValueMemberPath = "Value";
calculator.ItemsSource = data;
double variance = calculator.Value;