このトピックでは Infragistics Math Calculators™ ライブラリの一部である StandardDeviationCalculator を紹介し、コード例と共に数の集合に対する 母標準偏差の計算方法を説明します。
標準偏差は平均の周囲のデータセットの分散を測定します。標準偏差の計算は値の平均からどの程度の差異があるかを示すために使われます。標準偏差の高い値はデータ セットの多くが幅広い値に散らばっていることを示し、一方小さい標準偏差は数値がデータ セットの平均近くに多くあることを示します。
標準偏差は変数と平均の間の平方差の合計 (Infragistics Mean Calculator トピックを参照) の平方根を集合の総数で割って得られます。また、標準偏差は数値の集合の バリアンス (インフラジスティックスのバリアンス計算 トピックを参照してください) の平方根と同値です。
図 1 - 標準偏差計算のための式
このセクションでは StandardDeviationCalculator クラスのプロパティのリストを提供します。
StandardDeviationCalculator を使用するためには、次の NuGet パッケージ参照を WPF プロジェクトに追加する必要があります。
Infragistics.WPF.Math.Calculators
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
StandardDeviationCalculator はデータ バインディングのための 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; } }
この例は StandardDeviationCalculator を用いて数値の集合の標準偏差を計算する方法を説明しています。StandardDeviationCalculator は視覚的な要素で、データソースまたは変数を定義するのと同じようにアプリケーション、ページ、コントロール、またはコードビハインドに関してリソース セクションに定義する必要があります。さらに、Series オブジェクトの誤差範囲を計算するために、StandardDeviationCalculator を 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 StandardDeviationCalculator() calculator.ValueMemberPath = "Value" calculator.ItemsSource = data Dim standardDeviation 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 }); StandardDeviationCalculator calculator = new StandardDeviationCalculator(); calculator.ValueMemberPath = "Value"; calculator.ItemsSource = data; double standardDeviation = calculator.Value;