このトピックでは Infragistics Math Calculators™ ライブラリの一部である VarianceCalculator を紹介し、コード例と共に数の集合に対するバリアンスの計算方法を説明します。
バリアンスは平均の周囲のデータセットの分散を測定します。
バリアンスは変数と平均の間の平方差の合計 (Infragistics Mean Calculator トピックを参照) を集合の総数で割って得られます。また、バリアンスは標準偏差の二乗と等価です (Infragistics Standard Deviation Calculator トピックを参照)。
図 1 - バリアンス計算のための式
このセクションでは VarianceCalculator クラスのプロパティのリストを提供します。
VarianceCalculator を使用するためには、次の NuGet パッケージ参照を WPF プロジェクトに追加する必要があります。
Infragistics.WPF.Math.Calculators
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
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;